SNAPSHOT 아직 개발 중인 버전 언제든지 기능이 추가되고 삭제될 수 있기 때문에 가장 불안정한 버전 M(Milestone build) 완전하지 않은 기능이 포함된 버전 SNAPSHOT보다는 안정적이나 여전히 문제가 있을 수 있음. 기능이 완성되자마자 공개되는 편 RC(Release Candidate) 출시 후보 기능이 가능하면 완전하고 안정적이여야 함 후보 버전이기 때문에 여전히 문제가 있을 수 있음 RC에서의 기능들은 대부분 그대로 GA로 배포 됨 GA(General availability) 최종 릴리즈 버전 기능이 완전하고 안정적 SR(Service Release) Major 버전 이후에 제공되는 후속 유지보수 릴리즈 버전
백엔드
Batch Insert란? # insert INSERST INTO TABLE_A(name, phone) VALUES ('test1', '01000000001') # batch insert INSERST INTO TABLE_A(name, phone) VALUES ('test1', '01000000001'), VALUES ('test2', '01000000001'), VALUES ('test3', '01000000001'), VALUES ('test4', '01000000001'), VALUES ('test5', '01000000001') 만약 10,000 건의 insert가 필요한 경우, 1건 씩 DB에 요청을 하게되면 10,000 건의 커넥션을 맺게 된다. 서버에서 DB서버로 요청과 응답을 10,000번..
1. 순환 참조를 방지할 수 있다. - 애초에 이렇게 코딩을 하는 경우는 드물겠지만....... 순환 참조가 발생하는 경우 애플리케이션이 구동되지 않는다. 2. 테스트 코드 작성이 편리하다. - 단순 POJO를 이용한 테스트 코드를 만들 수 있다. > bean으로 등록하지 않아도 됨. 3. immutable 하다. - 실행 중에 객체가 변하는 것을 막을 수 있다. (final 사용)
Gradle 프로젝트 빌드 시 모듈 별로 빌드 하는 법 ./gradlew :모듈명:빌드명령어 모듈 명은 각 모듈 명에 맞게 치환하고 빌드명령어는 gradle이 지원하는 빌드 명령어로 치환

얼마전 logback에서도 취약점(CVE-2021-42550)이 발견됐다. 하지만, 하단 전제조건이 성립 되어야 하기 때문에 사실상 해킹을 하려면 이미 해킹을 당한 상태(?) 여야 한다. - 공격자는 사전에 로그백 설정 파일(logback.xml)에 접근 및 쓰기 권한이 있어야 함 - 공격자가 변조한 설정 파일(logback.xml)이 시스템에 적용되어야 함(변조된 설정 파일 배치 후 시스템 재기동 or Scan="true"로 설정 필요) - 1.2.9 이전 버전 사용 이미 서버의 logback.xml에 접근하여 쓰기 권한이 있을 정도면...🙄 1.2.9 버전은 2021-12-21 현재 alpha 버전이라고 한다. 해결법으로는 1.2.9로 업데이트 하여 alpha 버전 감안 or 접근 및 쓰기 권한을 탈..
1. 브라우저에서 정적자원을 빠르게 다운로드할 수 있도록 큰 파일의 용량을 줄인다. spring boot에서 정적자원 압축하기 (웹 서버 설정으로도 가능.) server.compression.enabled (기본값 : false) : 응답 압축을 사용할지 여부 server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript : 압축할 mime-types 기본 목록에 application/json이 없음 server.compression.min-response-size : defualt2048byte (2kb) 서버의 최대전송단위(MTU)에 맞게 잘 설정할 것 2. js, css..