Introduction 회고 프로젝트에서 DB 레코드를 조회하는 로직을 구현했다. 이때, 파라미터로 넘어오는 id를 기준으로 findById()를 작성했다. 해당 메소드에서 Optional을 반환하게 만들었는데, 여기서 예외 핸들링을 제대로 해주지 않아 문제가 발생했다. 어떤 문제였고 어떻게 해결했는지 간단하게 정리하려 한다. Issue publ...
개요 이번 방학 기간 동안 일부 크루들과 회고 프로젝트를 진행하고 있다. 각자 구현하다 논의하고 싶은 사항이 생기면 issue를 등록한다. 오늘 ObjectMapper를 위한 기본 생성자를 사용할 것인지에 대한 이슈가 올라왔다. 나는 우선 아래와 같이 답변을 달았다. 내가 남긴 의견이지만, 아직 Reflection이 무엇인지도 모르는 상태...
L2 Error Handling 오류 탐지(Error Detection) 역할 수행 오류가 있는 데이터 👉 상위단(ex. L3)로 전달할 필요 X 👉 바로 폐기처분하는 게 좋다. 프레임에 오류가 있는지 확인하는 역할은 수행하지만, 오류를 복구하는 역할은 수행하지 X 👉 이는 L4의 역할이다. 만약 L2에서 오류 제어를 하지 않으면, ...
1. 특정 프로세스의 pid를 찾는 명령어 pidof {process_name} 2. 특정 프로세스의 pid를 하나만 찾는 명령어 pidof -s {process_name} 3. 특정 스크립트의 pid를 찾는 명령어 pidof -x {script_name} ./{script_name}으로 실행한 경우에만 -x 옵션으로...
1. 어떤 프로세스가 어떤 포트를 사용 중인지 확인하는 명령어 netstat -ntlp 2. 어떤 프로세스가 특정 포트를 사용 중인지 확인하는 명령어 netstat -ntlp|grep {port} Reference [리눅스] 프로세스가 사용중인 PORT 확인. ( netstat -ntlp )
제가 작성한 원글은 여기서 확인하실 수 있습니다. DTO와 VO는 분명히 다른 개념이다. 그런데, 같은 개념으로 생각해서 사용하는 경우가 많다. 왜일까? ⌜Core J2EE Patterns: Best Practices and Design Strategies⌟ 책의 초판에서는 데이터 전송용 객체를 VO로 정의했다. 그 이후 2판에서는 해당 ...
지하철 경로 조회 미션에서 JWT를 사용해서 로그인 시 토큰으로 인증을 받도록 구현했다. 이때, Interceptor를 이용해서 Controller에 요청이 들어가기 전에 유효한지 확인하게 만들었다. 몇몇 크루가 이 단계에서 CORS 에러를 만나게 됐고, 무엇이 문제인지 원인을 분석했다. 왜 이런 에러가 발생했는지 그 이유와 해결 방안을 정리하려 한다...
Dependency 스프링부트에서 validation을 하기 위해 아래 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-validation' @NotNull 필드 값으로 null을 허용하지 않는다. 👉 "", " "은 허용한다. public cla...
제가 작성한 원글은 여기서 확인하실 수 있습니다. 개발을 하다보면 여러 디자인 패턴을 마주하게 된다. 그 중 가장 자주 보는 디자인 패턴은 MVC 패턴일 것이다. MVC 패턴의 각 컴포넌트(Model, View, Controller)는 담당하는 역할이 있다. 해당 패턴을 사용하기 앞서 어떤 컴포넌트가 무슨 역할을 수행하는지 이해하는 것이 ...
HandlerMethodArgumentResolver? Strategy interface for resolving method parameters into argument values in the context of a given request. 컨트롤러 메소드에서 특정 조건에 맞는 파라미터가 있을 때 원하는 값을 바인딩 해주는 인터페이스 ...