IT'S DO
article thumbnail
JPA 나만의 정리 (2) - lombok 어노테이션
개발/JPA 2022. 7. 21. 11:14

@Builder 즉 클래스 레벨에서 @Builder 어노테이션을 붙이면 모든 요소를 받는 package-private 생성자가 자동으로 생성되며 이 생성자에 @Builder 어노테이션을 붙인 것과 동일하게 동작한다고 한다. 즉 클래스 레벨도 결국은 중간 단계를 거쳐 생성자 레벨로 변환되어 동작한다는 것이다. @Builder public class BuildMe { private String username; private int age; } 위와 같은 BuildMe 클래스에 @Builder 어노테이션을 붙였을 때 생성된 클래스 파일을 IntelliJ의 도움을 받아 바이트 코드 분석해보면 다음과 같은 클래스로 변한 것을 볼 수 있다. public class BuildMe { private String us..

article thumbnail
JPA 나만의 정리 (1) - Build 패턴
개발/JPA 2022. 7. 21. 09:04

생성자의 단점 생성자에는 제약이 하나 있는데, 선택적 매개변수가 많을 경우에 대응이 어렵다. 예를들어, 받아오는 매개변수에 따라 계속해서 생성되는 생성자의 코드를 보았을때 매개변수의 개수에 따라 호출되는 생성자를 짐작하기가 매우 혼잡해진다. 또는 생성자 호출을 위해서 설정하길 원하지않는 매개변수의 값까지 지정해줘야하는 불편함이 있다. 한 두개 정도는 괜찮을 수 있겠지만, 매개변수의 수가 늘어나게되면 걷잡을 수 없을정도가 된다. 자바빈즈 패턴 자바빈즈 패턴이란, 매개변수가 없는 생성자로 객체를 만든 후, Setter 메서드들을 호출하여 원하는 매개변수의 값을 설정하는 방식이다. 하지만 여기에는 심각한 단점이 있다. 생각해보면 default 생성자를 통해 객체만 생성하고 필요한 매개변수들을 setter 메소..

article thumbnail
application.properties를 application.yml로 변형 사이트 그리고 정적 파일 실시간 변경 방법 intellij
개념 정리 2022. 7. 20. 12:53

application.properties -> yml 변환 사이트 http://mageddo.com/tools/yaml-converter 정적 파일 실시간 변경 application.yml spring: devtolls: livereload: enabled: true freemarker: cache: false 설정 내용은 어려운게 없다. livereload를 enable 하며, freemarker cache 옵션을 false로 변경하여 compile을 다시하지 않아도 반영되도록 하였다. (물론 실서버 배포시에는 이 옵션을 개발서버와 실서버용으로 분리시켜야 한다. 템플릿을 캐시하지 않으면 서버 터지는걸 볼 수 있다) build.gradle developmentOnly 'org.springframework..

article thumbnail
JSP 페이지 localhost에서 거부했습니다.
error/java 2022. 7. 20. 12:26

Security 적용 후에 막 이런게 나옴. 찾아보니 X-Frame-Options 때문이라고 함. spring security를 적용하면 기본적으로 X-Frame-Options Click jacking 공격 막기 설정이 되어있기 때문이었다. https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Frame-Options X-Frame-Options - HTTP | MDN The X-Frame-Options HTTP 응답 헤더는 해당 페이지를 또는, 에서 렌더링할 수 있는지 여부를 나타내는데 사용됩니다. 사이트 내 콘텐츠들이 다른 사이트에 포함되지 않도록 하여 developer.mozilla.org X-Frame-Options 종류로는 아래 3가지가 있는데 이..