분류 전체보기

메모장

thymeleaf 컨버전 적용

${number}: ${{number}}: ${ipPort}: ${{ipPort}}: 괄호가 {{}} 이렇게 두개가 되어있으면 컨버전이 적용이 된다.. th:field를 적용해도 컨버전이 적용된다.

메모장

LOMBOK으로 클래스를 비교하는 법

@EqualsAndHashCode public class IpPort { private String ip; private int port; public IpPort(String ip, int port) { this.ip = ip; this.port = port; } } 위와 같은 코드가 있을 때 public static void main(String[] args) { IpPort ipPort1 = new IpPort("127.0.0.1", 1234); IpPort ipPort2 = new IpPort("127.0.0.1", 1234); assertThat(ipPort1).isEqualTo(ipPort2); } 를 했을 때 정상적으로 통과되게 하려면 Lombok의 @EqualsAndhashCode를 쓰면 ..

메모장

경상수지에 대한 책 내용 메모

한국은 1997년 외환위기 이후 단 한번도 경상수지가 적자를 기록한 적이 없을 뿐만 아니라 2010년 이후에는 국내총생산(GDP) 대비 거의 4~8%의 흑자가 이어지고 있음을 확인할 수 있다. 문제는 이렇듯 경상수지 흑자가 발생할 때, 내수경기가 악화되는 경우가 많다는데 있다. 이 문제를 이해하기 위해서는 국내총생산에 대해 알 필요가 있다. 식 1 : GDP = 소비 + 투자 + 수출 - 수입 식 1에서 우변에 있는 소비를좌변으로 보내면 식을 식2와 같이 바꿀 수 있다. 식 2 : GDP - 소비 = 투자 + 수출 - 수입 식 2에서 좌변의 'GDP-소비'는 결국 경제의 입장에서 보면 저축이고, 우변의 '수출 - 수입-은 결국 경상수지에 해당하므로, 식3과 같이 식을 바꿀 수 있다. 식 3 : 저축 = ..

메모장

HTML 화면 오류 vs API 오류

HTML 화면 오류 vs API 오류 웹 브라우저에 HTML 화면을 제공할 때는 오류가 발생하면 BasicErrorController 를 사용하는게 편하다. 이때는 단순히 5xx, 4xx 관련된 오류 화면을 보여주면 된다. BasicErrorController 는 이런 메커니즘을 모두 구현해두었다. 그런데 API는 각 시스템 마다 응답의 모양도 다르고, 스펙도 모두 다르다. 예외 상황에 단순히 오류 화면을 보여주는 것이 아니라, 예외에 따라서 각각 다른 데이터를 출력해야 할 수도 있다. 그리고 같은 예외라고 해도 어떤 컨트롤러에서 발생했는가에 따라서 다른 예외 응답을 내려주어야 할 수 있다. 한마디로 매우 세밀한 제어가 필요하다. 앞서 이야기했지만, 예를 들어서 상품 API와 주문 API는 오류가 발생했..

메모장

jackson사용법

build.gradle 에서 dependencies{} 안에 implementation ("cohttp://m.fasterxml.jackson.core:jackson-databind:2.12.3") 를 추가한다. gradle을 다시 빌드한면 jackson을 사용할 수 있게 된다. json 저장 방법 public class SaveService { BoardRepository boardRepository; public SaveService() { boardRepository = new BoardRepository(); } public void save() { ObjectMapper objectMapper = new ObjectMapper(); try { objectMapper.writeValue(new F..

키스샷1104
'분류 전체보기' 카테고리의 글 목록 (31 Page)