본문 바로가기

분류 전체보기

(83)
[오류해결] IntelliJ 커스텀 properties 자동완성 안되는 오류 크리티컬 한 오류는 아니지만 IntelliJ에서 작동이 안 되길래 찾아본 오류입니다. 🤔 문제발생 @ConfigurationProperties(prefix = "spring.thymeleaf")를 사용하여 사용자 정의 프로퍼티(spring.thymeleaf3)를 만드는 코드를 작성했습니다. 물론 main 메서드가 있는 클래스에서 해당 프로퍼티를 스캔할 수 있도록 @ConfigurationPropertiesScan도 붙여줬습니다. /* 앞 코드 생략 */ @Getter @RequiredArgsConstructor @ConstructorBinding @ConfigurationProperties(prefix = "spring.thymeleaf3") public static class Thymeleaf3Prop..
[Java] 불변 객체(Immutable Object)와 Record 평소에 늘 JDK11 버전을 사용해서 모르고 있었는데, 최근 JDK16으로 버전을 바꿔보면서 새롭게 사용해 본 기능이 있어서 기록해 볼까 합니다. 추가로 평소에 궁금했었던 불변 객체에 대해서도 조금 찾아서 기록해보려고 합니다. 📖 불변 객체(Immutable Object)란? 생성 후 그 상태를 바꿀 수 없는 객체를 의미합니다. 불변객체는 읽을 수만 있는 Read-Only 메서드만을 제공합니다. Java의 대표적인 불변객체로는 String이 있습니다. # String Class Description 그럼 String은 생성된 후 값을 변경할 수 없다는건가? 그럼 아래 코드는 무엇인가? 값을 변경하는 것이 아닌가? public class Main { public static void main(String[..
[IntelliJ] 인텔리제이 주석 밑줄 제거하기 IntelliJ 사용 중 아래와 같이 계속 주석에 밑줄이 생겼다. 문법적인 오류로 발생한건지... 영어랑 한글이랑 저렇게 붙여서 쓰면 계속 밑줄이 생겨서 거슬린다. 제거해 버리자. 1. Setting으로 들어가기 맥북은 Command + , 을 누르면 들어가진다. 윈도우는 찾아봐야 할 거 같지만, 단축키 없이도 들어갈 수 있다. 2. "Inspection" 검색 3. "Proofreading" 검색 이렇게 Proofreading을 검색하고 들어가서 "Typo"를 누르면 오른쪽에 체크박스가 나옵니다. 그중에서 Process comments의 체크박스를 풀어주면 됩니다. 4. 사라졌는지 확인 밑줄이 사라진 것을 볼 수 있다. 계속 거슬렸는데 이렇게 설정해서 없애니깐 속이 시원해졌습니다. 😤 근데 인텔리제이의..
[오류해결] No serializer found for class (InvalidDefinitionException) 🤔 문제 발생 Request 요청을 위한 DTO로 사용하기 위한 클래스를 생성한 후 해당 객체를 ObjectMapper의 writeValueAsString() 메서드에 넣어 serialize 해서 json 데이터로 mvc에 content에 담아 POST 요청을 하는 테스트를 진행했습니다. # PlaceRequest.java 코드 @AllArgsConstructor public class PlaceRequest { private PlaceType placeType; private String placeName; private String address; private String phoneNumber; private Integer capacity; private String memo; public stat..
[IntelliJ] 여러줄 한번에 수정하기 (Mac) 알면 편리한 기능인 것 같아서 짧게 기록해두려 합니다. 아래 코드가 있습니다. "$.data~~"에서 data뒤에 배열의 인덱스를 나타내는 [0]을 추가하고 싶습니다. 단축키를 찾아보니 "Shift + 아래키"라고 쓰여있어서 했는데, 아래와 같이 모든 줄이 선택됩니다. 이때 "Command + Shift + 8"을 입력하면 인텔리제이 오른쪽 밑 부분에 Column이라는 글자가 나타나면서 모드가 변경됩니다. # 단축키 누르기 전 # 단축키를 누른 후 Column이라는 글자가 생긴 것을 볼 수 있습니다. 이때 다시 "Shift + 아래키"를 눌러 봅시다. 오호 성공입니다. 만약 커서를 다시 원상태로 복구하고 싶다면 Esc를 눌러주시면 됩니다. 이제 동시에 코드를 추가해 보겠습니다. 모든 수정이 끝나면 다시 ..
[패스트캠퍼스] 패스트캠퍼스 백엔드 개발 3주차 회고 3월 17일 날 시작한 후 3주가 지났다. 사실 많으면 매주 회고글을 작성해보고 싶었는데, 아직 초반부라서 그렇게 적을 내용도 많진 않았다. 적응 기간도 조금 필요했고, 3주밖에 안 지났지만 나름 루틴에 적응을 해가고 있습니다. 해당 부분에 대해서 짧은 회고를 조금 남겨보려고 합니다. 🏃🏻 7개월을 꾸준히 참여하기 위해서 필요한 것은 '체력' 월요일부터 금요일까지 오후 1시부터 10시까지 매일 컴퓨터 앞에 앉아있다 보니 몸소 느낀 것이 있다. '체력'을 키워야 개발자도 꾸준히할 수 있겠구나... 처음에는 별로 대수롭지 않게 생각을 했었는데, 요즘은 크게 느껴지고 있는 것 같다. 그래서 하루에 적어도 10분 정도씩은 나가서 뛰는 루틴을 추가해 봤다. 물론...이런 저런 핑계를 대며 안 갔었던 날도 많지만 ..
[Spring] application.yml 설정값 가져오기 application.properties로 사용하는 분들도 계시지만 방법은 동일하기 때문에 저는 application.yml 기준으로 혼자 복습하며 기록해보려고 합니다. 만약 A, B, C라는 클래스가 존재할 때, 이 3개의 클래스 내부에서 companyName이라는 값을 모두 같은 "Fast Company"라는 값을 사용한다고 가정을 해봅시다. 이때 만약 회사 이름이 변경되어서 "Slow Company"로 바뀌었다고 생각해 봅시다. 그럼 우리는 A, B, C 클래스로 모두 이동해서 "Fast Company"라는 값을 "Slow Company"로 모두 변경해줘야 합니다. 물론 클래스가 3개 밖에 없어서 간단하게 할 수 있지만, 만약 클래스가 1000개가 넘는다고 생각하면 어떨까요? 무려 1000번을 변경..
[Spring] ExceptionHandler가 작동안 되는 오류 (컴포넌트 스캔) 🤔 문제 상황 Global Exception 처리에 대한 코드를 작성하는 과정에서 @RestControllerAdvice가 작동되지 않는 오류가 발생했습니다. 프로젝트 구조는 아래와 같이 구성했었습니다. Book을 등록하는 간단한 프로그램입니다. 예상했던 시나리오는 BookController의 "/register"로 POST 요청을 보냅니다. 이때 BookService 로직에서 POST 요청으로 들어온 Book의 name과 같은 name의 Book이 이미 Repositroy에 존재한다면 BookException을 던져주도록 작성했습니다. 그 후 BookController에서 BookException이 발생했을 때, Global 하게 예외를 처리하기 위해서 BookExceptionHandler를 추가해 줬..