반응형 개발96 [JAVA] 정적 팩토리 메소드란? (static factory method) 정적 팩토리 메서드 정적(static), 팩토리(factory), 메서드(method) GoF라는 디자인 패턴 중 팩토리 패턴에서 유래한 단어로 객체를 생성하는 역할을 분리하겠다는 것을 말한다. (하지만 정적 팩토리 메서드와 팩토리 패턴은 명확하게 다르고, 디자인 패턴 중에 이와 일치하는 패턴이 없다고 한다. 이 부분에 대해선 공부를 해봐야겠다..) 좀 더 쉽게 설명하자면 생성자를 통해 객체를 생성하는게 아니라 별도 메소드를 정의해서 객체를 생성할 수 있도록 객체 내에 정적 메소드를 정의해놓은 것! 정확히 어떤 메소드를 얘기하는 건지 예시를 들어보겠다. java.time 패키지에 포함된 LocalDateTime 클래스의 정적 팩토리 메서드를 살펴 보면 생성자를 통해 객체를 생성하는 것이 아니라 of 메소.. 2022. 1. 10. [Web] redirect시 데이터 전달하는 방법 - RedirectAttributes 결론 : RedirectAttributes 클래스를 사용하면 된다! @Controller class TestController { @PostMapping("/buy") public String buy(@ModelAttribute("testForm") TestVo vo , HttpServletRequest request , RedirectAttributes redirectAttributes){ // 결제 처리 로직 //첫번째 방법 redirectAttributes.addAttribute("param", param); //두번째 방법 redirectAttributes.addFlashAttribute("param", param); return "redirect:/buy-result"; } } addAttrib.. 2022. 1. 7. [Web] PRG 패턴 (Post - Redirect - Get) PRG 패턴이란? Post -> Redirect -> Get 패턴으로 만들어지는 것을 말하며, 권장되는 디자인 패턴 중 하나다. PRG 패턴의 필요성 예를 들어 상품 판매 서비스를 운영하고 있다고 하자. 주문 페이지를 호출하고, Post 방식으로 결제를 처리할 경우 결제 완료 페이지에서 실수 혹은 의도적으로 새로고침을 하게 되면 서버에 전송했던 데이터를 다시 전송하게 되어 중복 결제 처리가 될 수 있다. 자세한 프로세스는 아래 포스팅을 참고하자 [WEB] PRG패턴 PRG(Post-Redicet-Get)패턴은 웹 개발시 사용 권장되는 디자인 패턴입니다. 사용자의 뒤로가기, 새로고침으로 인한 중복입력을 방지할 수 있습니다. EX) 상품주문 PRG패턴 적용 전 사용자가 상품 주문 juinor.tistory... 2022. 1. 7. [JPA] Specification을 이용하여 쿼리 조건 처리하기 - 외래키 Specification Repository에 JpaSpecificationExecutor 인터페이스를 상속받으면 Specification을 사용할 수 있다. @Repository public interface GrandChildRepository extends JpaRepository, JpaSpecificationExecutor { } ※참고 : 복합키이기 때문에 JpaRepository를 상속받을 때 ID부분에 Id class를 넣어주면 된다. 관련 내용은 아래 포스팅을 참고하자 [JPA] 복합키, 외래키 Entity 설정하기(@IdClass를 사용하여 식별관계 매핑) 올해 초 복합키, 외래키 사용이 많은 테이블을 JPA Entity로 구현했어야 했는데, JPA 사용이 처음이였어서 익숙하지 않아 복.. 2022. 1. 7. [MyBatis] 반복되는 쿼리 작성하기 <foreach> collection 인자(Map, Array, List, Set 등..) 값으로 반복적인 SQL 구문을 작성하기 위해 사용된다. (OR 또는 IN 구문에서 주로 사용된다.) foreach는 6개의 속성이 있다. collection - 전달받은 인자 (Map, Array, List, Set등과 같은 객체) item - collection 속성에서 전달받은 인자값을 alias명으로 대체 open - 해당 구문이 시작될 때 삽입할 문자열 close - 해당 구문이 종료될 때 삽입할 문자열 separator - 반복되는 구문 사이에 삽입할 문자열 (구문을 분리하기 위한 문자) index - 반복되는 구문 번호. 0부터 순차적으로 증가 예제 a, b, c가 담겨 있는 list가 있고, 해당 list에 해당하는 값.. 2022. 1. 6. [JBoss] 로깅 문제, 자체적으로 사용하는 로그 라이브러리 제외하기 JBOSS는 자체적으로 로그 모듈을 사용한다. 때문에 slf4j 로그 기능을 사용하는 웹 어플리케이션을 deploy하게 되면 충돌이 발생하여 로그가 제대로 남지 않는다. 따라서 개별 Web Application에 JBOSS 로깅 모듈을 사용하지 않도록 제외 시켜야 한다. 해결방법 1. JBOSS 인스턴스 옵션 추가 JBOSS 시작 옵션에 아래 설정을 추가하여 자체 로그 모듈을 사용하지 않도록 한다. Standalone -Dorg.jboss.as.logging.per-deployment=false 도메인 2. Web Application에 jboss-deployment-structure.xml 추가하여 배포 위치 WAR : WEB-INF/jboss-deployment-structure.xml EAR : M.. 2021. 12. 31. [Maven] 윈도우에 메이븐 설치 및 환경 변수 설정 1. Mavne 사이트에서 다운로드 임의의 위치에 다운로드 후 압축 해제 Maven – Welcome to Apache Maven Welcome to Apache Maven Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. If you maven.apache.org 2. 시스템의 PATH 환경 변수에 mavne bin 디렉토리 등록 제어판>시스템 및 보안>시.. 2021. 12. 30. [Linux] netstat 명령어로 네트워크 상태 확인하기(+ TCP 상태 전이) 서버를 운영하다보면 네트워크 상태를 확인해야할 일이 생긴다.. 운영이 아니더라도 개발자라면 할일이 생기는.. netstat란? 전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스, 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. (위키백과 : https://ko.wikipedia.org/wiki/Netstat) 사용방법 netstat [옵션] [ | grep 포트번호 or 서비스 명] 옵션 -l (listen) : 연결 가능한 상태 -n (number port) : 포트 넘버 -t (tcp) : tcp -u (udp) : udp -p : 프로그램 이름 / PID -a : 모두 -i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인 -r : 라우팅 테이블 -s .. 2021. 12. 29. 이전 1 ··· 5 6 7 8 9 10 11 12 다음 728x90 반응형