2022-03-21-TIL TIL Today I Learned Software Release 릴리즈 버전은 보통 3개의 구간으로 나누어서 표시한다. [Major].[Minor].[Patch] Semantic Versioning 2.0.0은 각 자리를 올리는 기준을 이렇게 정한다. 하위 호환이 깨지는 API 변경이면 MAJOR, 하위 호환을 유지하며 기능을 추가하면 MINOR, ... 2022/03/21 2022-TIL
2022-03-18-TIL TIL Today I Learned 개발자들의 은어 찌르다 : HTTP 요청을 날리거나 네트워크 상의 요청을 날려서 응답을 받아보는 것을 말함. 바라보다 : ‘찌르다’의 수동형, 또는 Consume할 대상 메시지 큐를 가리킬 때의 표현 등으로 사용. 업데이트 치다 : ‘업데이트를 하다’의 은어적 표현. upsert : 없으면 insert, 있으면 새... 2022/03/18 2022-TIL
2022-03-17-TIL TIL Today I Learned Database Case-Insensitive Oracle은 기본적으로 문자열을 이진 비교하므로 대소문자를 구분한다. 링크된 Oracle 블로그 글과 Oracle 문서가 설명하는 방법은 다음과 같다. UPPER(name) = UPPER(:keyword)처럼 함수로 맞춘다. 인덱스를 쓰려면 UPPER(name) 함... 2022/03/17 2022-TIL
2022-03-15-TIL TIL 2022-03-15-tIL Today I Learned JPA Entity Without Setters 우선 JPA가 내부적으로 처리할 때 getter나 setter를 사용하는 동작은 없다. 자바 리플렉션 등을 이용해서 직접 접근이 가능하기 때문이다. 그렇다면 getter는 어느정도 사용한다고 하더라도(리팩터링 하기전에 빠른개발을 위해), set... 2022/03/15 2022-TIL
2022-03-14-TIL TIL Today I Learned Edge Cases 엣지 케이스는 입력값이나 상황이 허용 범위의 끝에 있을 때를 말한다. 빈 문자열, null, 빈 리스트, 원소가 하나인 리스트, 정수의 최댓값과 최솟값, 0과 음수, 중복 값, 경계 날짜(월말, 윤년, 타임존) 같은 것들이다. 정상 흐름만 테스트해서는 드러나지 않는 경우가 많아 따로 찾아 나열해야 한... 2022/03/14 2022-TIL
2022-03-13-TIL TIL Today I Learned 빌더 패턴 사용 장단점 빌더 패턴은 생성자 파라미터가 많을 때 Member.builder().name("kim").age(20).build()처럼 이름 붙은 메서드로 값을 하나씩 지정해 객체를 만드는 방식이다. 파라미터 순서를 외울 필요가 없고 같은 타입의 인자를 뒤바꾸는 실수를 줄이며, 선택적 값이 많을 때 생성자를 ... 2022/03/13 2022-TIL
2022-03-12-TIL TIL Today I Learned Microservice 마이크로서비스 아키텍처는 하나의 큰 애플리케이션(모놀리스)을 업무 기능 단위의 작은 서비스로 나누고, 각 서비스가 독립적으로 배포되며 API나 메시지로 통신하게 하는 구조다. 서비스별로 배포와 확장을 따로 할 수 있고 장애가 한 서비스에 갇히는 장점이 있지만, 네트워크 호출, 분산 트랜잭션, 서비... 2022/03/12 2022-TIL
2022-03-11-TIL TIL 2022-03-11-TIL Today I Learned Spring에서 application.yml 환경변수 사용하기 @Valid 애너테이션을 통해서 설정 파일에 지정된 환경변수를 로딩할 수 있다. https://velog.io/@ewan/What-is-Spring-YML-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98%... 2022/03/11 2022-TIL
2022-03-10-TIL TIL Today I Learned 연관관계 테이블 연관관계를 맺는 테이블이 있는게 나을까? 아니면 그냥 외래키를 두어서 참조하는 형태가 나을까? 관계의 다중성에 따라 답이 갈린다. 일대다 관계는 “다” 쪽 테이블에 외래 키를 두는 것으로 충분하고, 별도 관계 테이블을 두면 조인만 하나 늘어난다. 다대다 관계는 관계형 테이블 두 개로 직접 표현할 수 없... 2022/03/10 2022-TIL
2022-03-08-TIL TIL Today I Learned @OneToOne with @PrimaryKeyJoinColumn vs @MapsId 일대일 관계를 매핑하는 방법은 외래 키 컬럼을 두는 방법, 조인 테이블을 쓰는 방법, 그리고 자식 테이블의 기본 키를 부모의 기본 키와 공유하는 방법이 있다. 마지막 방법(shared primary key)을 JPA에서 표현할 때 @P... 2022/03/08 2022-TIL