본문 바로가기

Dev97

[WEB] 로그인 클라이언트 IP 를 정확하게 알기 (XFF) 문제 인식 기본적으로 HttpServletRequest 를 이용하여 객체 내 함수로 클라이언트 IP를 가져올 수 있다. 기본 클라이언트 IP 를 가져오는 방법은 아래와 같다. import javax.servlet.http.HttpServletRequest; request.getRemoteAddr(); 하지만 이 코드를 실 운영에서 이용할 경우 문제가 있다. 대부분의 회사에서는 보안 관련 방화벽이나 클라우드로 운영하는 경우가 많은데, 이 경우 클라이언트의 원 IP주소를 가져올 수 없다. 클라이언트가 요청을 하면 Web Server에서 프록시나 로드 밸런서를 통해 WAS에 요청하기 때문에 프록시나 로드 밸런서의 IP 주소를 반환하게 된다. 그래서 원 IP를 못가져오는 현상이 발생한다. 해결 아래와 같이 샘플.. 2023. 9. 1.
[비사이드] 비사이드 후기 - 중간 회고 비사이드 11기에 참여하여 어느덧 10주차 개발일지를 작성하게 되었고, 중간 회고를 한번 해볼 필요성을 느껴 중간 회고록을 작성해 보았다. 나에겐 너무 의미있었던 프로젝트였고, 마무리까지 잘 되어서 끝까지 좋은 경험으로 남았으면 하는 마음에 이 포스팅을 작성하게 되었다. 비사이드 시작하게된 동기 내가 처음으로 사이드 프로젝트에 관심을 가졌던 시기는 웹에 어느정도 익숙해지기 시작하면서부터였다. 그 때 당시의 나는 JPA와 Spring Boot에 대해 공부하고 간단히 프로젝트를 만들 수 있을 정도의 실력이 된다고 생각했었는데, 과정이 너무나도 재미있었다. 또한, 빠른 시일 내에 더 멋진 백엔드 개발자가 되는 것이 꿈인 나에게 멋진 포토폴리오를 만들고 싶다는 생각이 들기 시작했을 때이다. 사람은 보고싶은 것만.. 2022. 8. 26.
[Next Step] 자바 웹프로그래밍 2.3 정리 요구사항 전달하는 문자를 구분자로 분리하자 각 숫자의 합을 구해 반환하자 쉼표(,) 또는 클론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환하 커스텀 구분자를 지정하자 "//", "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용하자 문자열 계산기에 음수를 전달하는 경우 RuntimeException으로 예외처리하자 요구사항을 더 작은 단위로 쪼개보자 개발자의 역량을 키우기에 좋은 연습이다 String 클래스를 활용하자 2.3.2를 보기 전 내가 구현한 테스트 코드 및 구현 코드 알고리즘이랑 유사하다고 느꼈다. 상당히 자세하고 요구사항이 쪼개지며, 예외에 대한 테스트도 꼼꼼히 작성하게 되는 느낌이었다. 음수가 있으면 예외처리를 던지는 로직을 추가하였다. 테.. 2022. 8. 24.
[Next Step] 자바 웹프로그래밍 2.1,2.2 정리 2.1 main() 메소드를 활용한 테스트의 문제점, 2.2 Junit을 활용해 main() 메소드 문제점 극복을 정리해보았습니다. 학습 목표 문제점과 해결방식에 초점을 맞추어 정리했습니다. 문제점이 무엇인지 아는 상태에 도달하기 위해 노력했습니다. 1. 프로덕션 코드와 테스트코드(main()) 이 같은 클래스에 위치하고 있다. public class Calculator{ ... } public static void main(String[] args){ Calculator cal = new Calculator(); cal.add(1,2); cal.sub(1,2); } 프로덕션 코드와 테스트 코드를 분리하자 public class Calculator{ ... } 분리! public static void m.. 2022. 8. 22.