내배캠/프로젝트, 개인과제 트러블슈팅 9

[내일배움캠프/백엔드] JPA 심화 개인과제 트러블 슈팅

1. @DynamicInsert 사용1)개요DynamicInsert를 통해 DB의 기본값을 적용하려고 했지만, ItemEntity 테스트 코드를 작성 했을 때 nullable = false의 조건을 확인하는 과정에서 테스트 코드가 정상적으로 동작하지 않는 문제 발생 2)문제상황기본 값 설정을 @PrePersist를 사용해 처리하는 방식으로 수정을 했는데, 테스트 환경에서 DB에 직접적인 기본값 적용 확인이 어려워 DynamicInsert와 중복으로 인하여 여전히 동작하지 않는 문제 발생 DynamicInsert는 SQL INSERT 문을 생성할 때 null 필드를 제외시켜 DB의 기본값을 적용하지만, 코드에서 설정된 값과 충돌하거나 테스트에서 null 처리가 누락이 되면 동작하지 않는 문제 발생 3)해결..

[내일배움캠프/백엔드] Spring 심화. 아웃소싱 프로젝트 트러블 슈팅

1. 코드 구현 전 원활하고 구체적인 의사소통 필요1) 개요프로젝트 진행이 아직 미숙하여 초기에 팀원 간의 충분한 의사소통이 이루어지지 않아 프로젝트 진행 중에 기본 구조 및 코딩 규칙 등이 통일 되지 않았다. 이로 인해 코드 merge 후 여러 문제점 발생 2) 문제 상황기본 구조와 의존성 정의 X문제팀원이 각각 다른 방식으로 프로젝트의 기본 구조를 설계BaseEntity를 포함한 예외 처리 방식, 의존성 추가 등에 대한 사전 합의가 부족결과중복된 의존성이 추가됨 (ex. spring-boot-starter-validation 중복 추가)예외 처리가 전역 예외처리와 Service 계층에서 각각 처리되어 일관성 부족 및 혼란용어 정의 및 타입 불일치문제가게 주인과 관련된 용어를 각각 다르게 정의(Owne..

[내일배움캠프/백엔드] Spring 심화 개인과제 트러블 슈팅

- 어떤 현상을 발견했는가?1. @RequestParam으로 Enum 값 처리 postman 오류 2. @NotNull과 Bean Validation이 작동하지 않음 3. @PostMapping 어노테이션 사용 불가 오류 4. Project JDK is not defined 이런 장애가 생길 수 있다는 것을 인지1. @RequestParam으로 Enum 값 처리 postman 오류-@RequestParam이 enum 타입 값을 처리하지 못하거나 올바르게 매핑되지 않으면 400 Bad Request 오류가 발생한다는 것을 인지-클라이언트가 enum 문자열 값을 정확히 전달하지 않거나, 서버가 enum을 변환하지 못할 시에 발생 2. @NotNull과 Bean Validation이 작동하지 않음-Dto에서 ..

[내일배움캠프/백엔드] Spring 숙련. 뉴스 피드 프로젝트 트러블 슈팅

1. Git 충돌 해결1) 개요develop 브랜치에서 동시에 작업을 진행하면서 push, pull 하는 과정에서 다른 팀원이 작성한 내용을 pull로 가져올 때, 현재 작업하고 있던 내용과 충돌이 발생 2) 문제상황-모든 작업을 develop 브랜치에서 직접 진행을 하면서 문제가 생김-작업 중 서로 다른 파일을 수정하면서 충돌이 발생 3) 해결-작업을 개별 브랜치 feature에서 진행하도록 변경-작업 완료 후, 로컬에서 develop 브랜치로 병합하고, 충돌이 있다면 로컬에서 해결한 후에 git push-develop이 최신화되면 브랜치를 pull 받아 최신으로 유지하고 다시 feature에서 개발1. feature 브랜치 생성git checkout -b feature/2. 로컬에서 작업 후 병합gi..

[내일배움캠프/백엔드] Spring 숙련 개인과제 일정 관리 앱 develop 트러블 슈팅

- 어떤 현상을 발견했는가?1. deleteSchedule 반환 타입 오류 2. Entity 이름 중복 3. Auditing 설정 문제  이런 장애가 생길 수 있다는 것을 인지1. deleteSchedule 반환 타입 오류-deleteSchedule은 삭제 메소드이기 때문에 삭제만 수행하고 데이터를 반환하지 않아도 되는데 반환타입을 Schedule로 잘못 설정함. 2. Entity 이름 중복-Hibernate에서 @Entity를 사용할 때 클래스 이름이 중복되는 경우 두 entity를 동일한 이름의 테이블로 인식함.-이때, entityManagerFactory의 bean 생성 중 BeanCreationException이 발생.-애플리케이션 실행 실패 3. Auditing 설정 문제-Spring Data ..

[내일배움캠프/백엔드] Spring 입문 개인과제 일정 관리 앱 만들기 트러블슈팅

- 어떤 현상을 발견했는가?1. IntelliJ 내부에서 Database 를 작성하는 중에 오류 발생2. 설정오류2-1. interface expected here2-2. cannot find symbol method2-3. method does not override or implement 3. ERROR 49429 4. properties 오류 5. Internal Server Error6. Not Found  이런 장애가 생길 수 있다는 것을 인지1. IntelliJ 내부에서 Database 를 작성하는 중에 오류 발생-database 라는 것을 생각을 못하고 Long id 라고 적어서 오류 발생 2. 설정오류2-1. interface expected here2-2. cannot find symbo..

[내일배움캠프/백엔드] Java 개인과제2. 숫자 야구 게임 만들기 트러블슈팅

1. cannot find symbol2. non-static method play() cannot be referenced from a static context3. incompatible types : java.util.setcannot be converted to java.lang.Integer 1. 해당 식별자의 의미를 이해하지 못함. => 식별자 오류 2. 정적 메서드나 블록에서 정적이 아닌 메서드를 호출하려고 할 때 오류 발생 3. 자료형 변환이 잘못되서 그렇다...? 1. 몇시간 동안 하다보니 선언해놓은 이름을 헷갈려서 잘못 적어서 오류가 났다. 2. play를 호출하려고 하는데 계속 안돼서 이것저것 찾아봤더니 play()로 해야했다.....이걸 놓치다니..!! 3. 제일 어려웠던 부분 .a..

[내일배움캠프/백엔드] Java 개인과제. 계산기 만들기 트러블슈팅

배경: 어떤 현상을 발견해서발단: 이런 장애가 생길 수 있다는 것을 인지했고전개: 장애를 대응, 해결하던 와중에위기: 또 다른 장애 발견 또는 간단하게 해결할 수 없다는 것을 알게 되어서절정: 근본적인 해결을 위해 이런 방법으로 접근하였다.결말: 따라서 이런 방법을 통해 근본적으로 해결 및 앞으로 유지, 보수에 용이하게 개선하게 되었다.1. Cannot find symbol2. variable - is already defined in method 이렇게 두개의 현상이 발생하였다. 1. 해당 식별자의 의미를 이해하지 못함. => 식별자 오류----오타가 있거나 변수선언을 하지 않거나 new 키워드를 작성하지 않았을 경우 등등에 발생한다는 것을 알게 되었다. 2. 한 변수를 두번 선언할 경우 발생----변..

[VS Code] VS Code에서 한글이 깨지는 현상

VS Code를 처음 사용할때, 실행 화면에서 한글이 깨지는 현상을 해결하는 방법. 스켈레톤 코드를 가져왔을 때, 실행화면이 이런식으로 깨지는 현상이 있어서 해결하는 방법을 찾아보았다.  이 현상은 기본적으로 인코딩 불일치 문제로 발생하는 오류로, vs code의 기본값과 컴퓨터가 지원하는 한글 인코딩 값이 달라서 일어나는 현상이라고 한다.   - 소스파일 인코딩을 korean으로 설정하기이렇게 화면 깨짐 현상을 해결하기 위해서는 인코딩 방식을 바꿔주는 방법이 있다. 먼저 vs code 화면 하단 오른쪽에 보면 UTF-8이라고 적힌 부분이 있는데, 이 값이 vs code의 기본 값으로 지원하고 있는 인코딩이라고 보면 된다. 1. vs code 화면에서 UTF-8이라고 적힌 부분을 클릭하면, 화면 윗부분에..