분류 전체보기

· Java
📕 개념 ❌ 교착 상태(Deadlock) 노트북으로 코딩을 하고 싶은 두 사람 A, B(프로세스/스레드) 가 있다. A는 배터리가 0% 인 노트북(자원)을 가지고 있고(점유) 충전기 를 기다리고 있다(대기). B는 충전기(자원)를 가지고 있고(점유) 노트북을 기다리고 있다(대기). 이처럼 서로 자원을 놓아줄 생각은 없고, 자원 요청을 무한정 대기하고 있는 상태 를 말합니다. Critical section(임계 영역) 여기서 노트북과 충전기를 공유 자원이라고 부르고, 공유자원이 속해 있어 교착 상태가 발생할 수 있는 영역을 임계영역이라고 부릅니다. 공유 데이터의 일관성을 보장하기 위해 하나의 프로세스/스레드만 진입해서 실행(상호배제)가능한 영역입니다. 교착 상태가 발생하기 위해서는 네가지 조건을 충족해야 ..
· Spring
🚫 에러 상황 Redis 내의 Refresh token 값을 다루기 위해 CrudRepository 를 사용하고, RDBMS 내의 데이터를 다루기 위해 JpaRepository 를 사용했습니다. 프로젝트를 실행하면 뜨는 여러 로그 중 에러는 아니지만, 반갑지 않은 INFO 로그가 2개의 영역으로 나뉘어 7개 정도 반복되는 것을 확인했습니다. 엔티티 클래스 수 만큼 반복 되었고, 아래처럼 로그가 출력됐습니다. A 영역: Spring Data JPA 2023-06-18 19:10:30.731 INFO 4986 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repos..
· Spring
🤔 적용 이유 프론트엔드 개발자는 백엔드 개발자가 작성한 api 문서를 보고 api 를 매핑합니다. 문서를 작성하는 것은 노동력이 들어가는 것이고, 사람이 작성하기 때문에 변경된 사항을 업데이트를 하지 않는 경우도 존재합니다. spring-rest-docs 는 테스트 코드를 작성해야 하고, 빌드 시 api 문서가 자동으로 생성됩니다. 테스트 코드를 작성하면서 검증된 api 문서를 자동으로 생성할 수 있다! vs Swagger Swagger 도 문서화를 위해 많이 사용된다고 했습니다. 보다 UI 가 깔끔해보이는 장점이 있었습니다. spring-rest-docs 와 달리 테스트 코드가 의무가 아니므로 빠른 시간 내의 문서를 작성할 때 용이할 거라 생각이 듭니다. 단점으로는 컨트롤러 코드 주위에 문서를 위한 ..
· Spring
🚫 에러 상황 builder 패턴을 사용하여 유저 인스턴스를 생성했고, userGroups 필드(List)에 데이터를 추가하자 NullPointException 이 발생했다. java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because the return value of "user.domain.User.getUserGroups()" is null User 엔티티 @Entity @Getter @Builder @NoArgsConstructor @AllArgsConstructor public class User { ... @OneToMany(mappedBy = "user") private List userGroups = n..
devkimc
'분류 전체보기' 카테고리의 글 목록 (10 Page)