Curious Y

「Stay curious, keep learning and keep growing.」

Spring - Test Fixture

Test Fixture의 이해

Test Fixture 여러 테스트에서 같은 데이터를 사용해야 할 때, 코드의 중복을 없애주는 역할을 하는 테스트 전용 데이터 @org.junit.Before로 메소드에 주석을 달고 해당 메소드의 변수를 초기화한다. @Before, @BeforeClass @org.junit.After 로 메서드에 주석을 달아 setUp 에서 할당한...

Spring - Web application의 이해

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Web Server vs Web Application Server (WAS) 웹 서버 Http 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적 리소스 : HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE Client(사용자)로 부터 HTTP Request를 받은 후 HTML, CSS, JS 등과 같은 정...

Spring - HttpMessageConverter, ObjectMapper

Jackson 라이브러리의 ObjectMapper

ObjectMapper란? JSON 컨텐츠를 Java 객체로 deserialization 하거나 Java 객체를 JSON으로 serialization 할 때 사용하는 Jackson 라이브러리의 클래스이다. ObjectMapper는 생성 비용이 비싸기 때문에 bean/static으로 처리하는 것이 좋다. Java 객체를 Json으로 1 ...

Java - static method

응집도와 static method의 상관관계

응집도 모듈 내부에 있는 데이터와 로직 사이의 관계가 얼마나 강한지 나타내는 지표 모듈은 클래스, 패키지, 레이어 등을 모두 포함한다. 응집도가 높은 구조는 변경하기 쉬운 바람직한 구조 응집도가 낮은 구조는 변경시 문제가 발생하기 쉽다. 응집도가 낮아지는 이유 1. static method의 오용 static 메서드로 정의...

Spring - MockMvc

Spring MVC 테스트 프레임워크

MockMvc란? Spring MVC 테스트 프레임워크 MockMvc는 웹 어플리케이션을 애플리케이션 서버에 배포하지 않고 테스트용 MVC환경을 만들어 요청 및 전송, 응답기능을 제공해주는 유틸리티 클래스 MockMvc를 사용하면, API를 실제로 호출하지 않고도 API의 동작을 시뮬레이션하여 API의 동작을 검증할 수 있다. Moc...

배포하기 - Heroku

Heroku 입문

Heroku 사용하기 1. Heroku에서 앱 생성 2. API key 설정 account setting 에서 API key를 복사해서 github repository의 Settings > Secrets > Actions secrts > New secret > Name : HEROKU_DEPOLY_KEY Value...

Oracle - index, explain plan

성능 개선을 위해 튜닝을 하며

최근 속도 개선 이슈 튜너와 상의 후 몇 가지 쿼리의 explain plan을 확인하고 인덱스를 추가할 일이 있었다. 비교적 많은 테이블들을 join해야하는 조회 서비스에서 table full search가 발생하고 있었기 때문이다. INDEX 오라클의 인덱스 종류는 4가지 이다. B-TREE INDEX (가장 일반적) BIT...

Spring - application.yml

application.yml

application.yml 유용한 설정 모음 1. debug: false 디버그 로그를 찍을 건지 여부를 선택 true 이면 spirng boot의 디버깅 로그를 다같이 볼 수 있음 false 이면 logback만 확인 가능 2. manage.endpoints.web.exposure.include: “*” Spring b...

Docker - docker-compose.yml

docker-compose.yml

docker-compose.yml Docker Compose는 docekr-compose.yml파일에 생성할 컨테이너들을 정의한다. 위치: app 디렉토리 아래에 docerk-compose.yml 파일 저장 내용 : mysql 컨테이너 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 version: '3.8' service...

Spring - lib config

ModelMapper, abstractController 등

ModelMapper 객체 매핑 라이브러리다. 서로 다른 클래스의 값을 한 번에 복사하게 도와주는 라이브러리다. 어떤 Object에 있는 필드 값들을 자동으로 원하는 Object에 매핑시켜준다. 클래스 내부에 있는 변수들의 이름을 분석하여 자동 매핑시켜주는 방식 매핑해줄 클래스에는 setter가 있어야 하고 매핑이 되는 클래스에서...