본문 바로가기

TIL

(18)
[TIL] 🌱 2023.05.11 - TestContainer 🛹 목표 목표 난이도 달성 여부 패스트 캠퍼스 강의 듣기 中 ✔️ 알고리즘 문제풀이 中 ✔️ 📋 공부 내용 & 기록 스프링의 TestContainers TestContainer 로 멱등성있는 integration test 환경 구축하기 By 박성은 medium.com Testcontainers를 이용한 테스트 환경 구축하기 Testcontainers를 이용해 Production 환경과 동일한 테스트 환경 구축하기 dealicious-inc.github.io 1. TestContainers란 테스트를 위해 Java 언어만으로 docker container를 실행시켜주는 자바 라이브러리 도커를 이용하여 테스트할 때 컨테이너를 직접 관리해야 하는 번거로움을 해결해주며, 운영환경과 유사한 스펙으로 테스트 가능 ..
[TIL] 🌱 2023.05.09 - spock 🛹 목표 목표 난이도 달성 여부 패스트 캠퍼스 강의 듣기 中 ✔️ 알고리즘 문제풀이 中 ✔️ 📋 공부 내용 & 기록 Spock 프레임워크 class SpockTest extends Specification { def "address 파라미터 값이 null이면, requestAddressSearch 메서드는 null을 리턴한다." () { given: String address = null when: def result = kakaoAddressSearchService.requestAddressSearch(address) then: result == null } } Spock란 Groovy 언어를 이용하여 테스트 코드를 작성할 수 있는 프레임워크이면 JUnit과 비교하여 코드를 더 간결하게 작성 가능 Gr..
[TIL] 🌱 2023.05.03 - Feign Client 🛹 목표 목표 난이도 달성 여부 패스트 캠퍼스 강의 듣기 中 ✔️ 알고리즘 문제풀이 中 ✔️ 📋 공부 내용 & 기록 스프링 FeignClient Spring Web, RestTemplate, Feign은 Http Client의 모듈이다. Http Client는 Http 프로토콜을 사용하여 서버와 통신하기 위해 클라이언트 측에서 사용되는 소프트웨어를 말한다. 서버와 요청과 응답을 주고받으 mysterlee.tistory.com Feign Client의 특징 Connection / Read Timeout : 외부 서버와 통신 시 Connection / Read Timeout 설정을 할 수 있다. Feign Interceptor : 외부로 요청이 나가기 전에 만약 공통적으로 처리해야하는 부분이 있다면 Inte..
[TIL] 🌱 2023.04.26 - Async 🛹 목표 목표 난이도 달성 여부 IT 관련 기사 읽기 下 ✔️ 패스트 캠퍼스 강의 듣기 上 ✔️ 알고리즘 문제풀이 上 ✔️ 📋 공부 내용 & 기록 @Async에 대한 이해 GitHub - lmw7414/practice-async Contribute to lmw7414/practice-async development by creating an account on GitHub. github.com 알고리즘 문제풀이 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 임의의 숫자를 포화 이진트리로 만들 수 있는지에 관한 문제이다. 이 문제를 해결하기 위해 알고 있어..
[TIL] 🌱 2023.04.25 - 상속과 컴포지션 🛹 목표 목표 난이도 달성 여부 이펙티브 자바 ITEM 17, 18, 19 - 변경 가능성을 최소화하라 - 상속보다는 컴포지션을 사용하라 - 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라 中 ✔️ 패스트 캠퍼스 강의 듣기 中 ✔️ 알고리즘 문제풀이 中 ✔️ 📋 공부 내용 & 기록 이펙티브 자바 불변 클래스를 만들기 위한 규칙 객체의 상태를 변경하는 메서드를 제공하지 않는다. 모든 필드를 final로 선언한다. - 설계자의 의도를 명확히 드러낼 수 있다. 모든 필드를 private으로 선언한다. 자신 외에는 내부의 가변 컴포넌트에 접근할 수 없도록 한다. 불변 클래스의 장점 Thread-Safe 하여 따로 동기화할 필요 없음 불변 객체는 자유롭게 공유할 수 있음은 물론, 불변 객체끼리..
[TIL] 🌱 2023.04.24 - 멀티 모듈 🛹 목표 목표 난이도 달성 여부 패스트 캠퍼스 강의 듣기 😘 ✔️ 알고리즘 문제풀이 🥺 ✔️ 📋 공부 내용 & 기록 스프링 Mutil Module 개념 학습 ▶ Multi Module 필요한 기능별로 Module을 생성하여 서로 결합하여 사용 중복된 기능들을 모듈화하여 하나로 관리함으로써 리스크를 줄일 수 있음 멀티 모듈 구조에서는 원하는 모듈을 골라서 빌드, 배포 가능 ▶ 모듈간 의존성 설정 방법 root 프로젝트의 settings.gradle에 생성할 모듈을 작성 include {'참조하려는 모듈 이름'} 각 모듈의 settings.gradle은 제거(각 모듈에 존재한다면 루트의 settings.gradle보다 우선순위를 높게하여 확인) 현재 사용 중인 모듈에서 다른 모듈을 참조하려면 build.gr..
[TIL] 🌱 2023.04.19 - ControllerAdvice, Actuator 🛹 목표 목표 난이도 달성 여부 이펙티브 자바 ITEM 15, 16 - 클래스와 멤버의 접근권한을 최소화하라 - public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 😘 ✔️ 패스트 캠퍼스 어드민 서비스 마무리 😘 ✔️ 📋 공부 내용 & 기록 이펙티브 자바 핵심정리 ITEM 15 프로그램 요소의 접근성은 가능한 한 최소한으로 하라. 꼭 필요한 것만 골라 최소한의 public API를 설계하자. 그 외에는 클래스, 인터페이스, 멤버가 의도치 않게 API로 공개되는 일이 없도록 해야한다. public 클래스는 상수용 public static final 필드 외에는 어떠한 public 필드도 가져서는 안된다. public static final 필드가 참조하는 객체가 불변인지 확인하라. ..
[TIL] 🌱 2023.04.10 - 스프링 시큐리티 세션 🛹 목표 목표 난이도 달성 여부 이펙티브 자바 ITEM 12, 13, 14 - toString을 항상 재정의하라 - clone 재정의는 주의해서 진행하라 - Comparable을 구현할지 고려하라 😘 ✔️ 패스트 캠퍼스 강의 듣기 😘 ✔️ 📋 공부 내용 & 기록 1. 스프링시큐리티 Session 관리 세션 : 일정 시간(클라이언트가 웹브라우저를 통해 웹 서버에 접속한 시점부터 종료할 때까지) 동안 동일한 클라이언트로부터 들어오는 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술. 클라이언트가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라 칭한다.[참고] 쿠키 : 클라이언트의 정보를 컴퓨터 메모리에 저장 세션 : 클라이언트의 요청에 따른 정보를 컴퓨터 메모리가 아닌 웹 서버에서 저..