Bank-End Chronicles

「Memory gets GC’d, but this blog stays committed.」

Java - switch to interface

조건분기: 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법

조건 분기가 중첩되어 낮아지는 가독성 개선하는 방법 조기 리턴으로 중첩 제거하기 가독성을 낮추는 else 구문도 조기 리턴으로 해결하기 switch 조건문 switch 조건문 중복이 위험한 이유 같은 형태의 switch 조건문이 여러 개 사용될 수 잇다. 요구사항 변경 시 수정(case문 추가)을 누락할 수 있다. swi...

Spring - spring security filter chain

filter chain 뜯어보기

Spring security FilterChain의 정의 FilterChain은 웹 애플리케이션에서 보안을 처리하는 데 사용되는 필터(또는 인터셉터)의 연쇄이다. FilterChain은 Spring Security가 제공하는 여러 필터들이 순차적으로 실행되도록 구성되어 있다. 각 필터는 특정한 보안 작업을 담당하며, 전체적으로 연결되어...

Spring - RequiredArgsConstructor, ExceptionHandler, ControllerAdvice

annotation 알고 쓰기

annotation 1. RequiredArgsConstructor 속성에 final을 적용하고 롬복의 @RequiredArgsConstructor 애너테이션을 적용하면 해당 속성을 필요로하는 생성자가 롬복에 의해 자동으로 생성된다. (※ final이 없는 속성은 생성자에 포함되지 않는다.) 1 2 3 4 5 6 7 8 9 10 11 12 13...

Spring - 프로젝트 구조 뜯어보기

build.gradle에 대해 알기

SPRING의 구조 src/main/resources 디렉터리 src/main/resources 디렉터리는 자바 파일을 제외한 HTML, CSS, Javascript, 환경파일 등을 작성하는 공간이다. templates 디렉터리 src/main/resources 디렉터리의 하위 디렉터리인 templates 디렉터리에는 템플릿 파일을 저장한다. ...

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...