[TroubleShooting] Spring MVC에서 정적 경로가 동적 경로로 인식되어 엔드포인트가 동작하지 않을 때
·
TroubleShooting
👀 현재 상황 및 배경 설명🔽 SecurityConfig API 요청 흐름API 요청은 공개 접근 필터 체인과 인증이 필요한 필터 체인을 순차적으로 거친다.공개 접근 필터 체인: 로그인 없이도 접근 가능한 엔드포인트를 처리한다.인증이 필요한 필터 체인: 로그인이 반드시 요구되는 엔드포인트를 처리한다.🔽 회원 정보 조회 엔드포인트현재 프로젝트에서는 회원 정보 조회를 위한 두 가지 API를 제공한다.동적 경로 API: 특정 회원 정보를 조회하는 API로, @PathVariable을 사용하여 memberId 값을 동적으로 전달받는다.정적 경로 API: 자신의 정보를 조회하는 API로, 문자열 "self"를 정적으로 경로에 사용한다.위 두 경로는 서로 다른 역할을 수행하지만, Spring MVC의 URL ..
[우아한테크코스] 프리코스 4주차 기록
·
회고/우아한테크코스
우아한테크코스 프리코스 4주차 과제 링크 GitHub - soeun2537/java-convenience-store-7-soeun2537: 우아한테크코스 프리코스 4주차 과제우아한테크코스 프리코스 4주차 과제. Contribute to soeun2537/java-convenience-store-7-soeun2537 development by creating an account on GitHub.github.com 🎯 목표 설정 사실 4주차가 시작된 화요일 오후 3시에 요구 사항을 보고 식은땀이 났다. 기존 과제와는 비교도 안 될 정도로 많은 요구 사항이 있었기 때문이다. 개발을 시작한 지 오래되지는 않았지만, 그간 학습한 내용을 정리하고 적용해 온 덕분에, 이전 3주차 과제까지는 기능 요구 사항을 보며..
[Java] Enum
·
Programming/Java
💭 들어가며프리코스 3주차 과제에서 "Java Enum을 적용하여 프로그램을 구현한다."라는 프로그래밍 요구 사항이 있었다. 이전에도 Enum을 사용해 본 적은 있지만, 이번 과제를 진행하면서 Enum을 정확히 이해하지 못한 상태로 사용해 왔다는 생각이 들었다. 단순히 요구사항 때문에 사용하기보다, 제대로 알고 활용하자는 마음으로 Enum을 다시 공부했다. Enum에 대해 잘 정리된 인파님의 글을 참고하여 과제에 적용해 보았고, 이번 글에서는 해당 부분을 정리하고 과제를 진행하면서 느낀 Enum의 장점을 정리하려고 한다. ✅ 이전의 상수 관리 방식▶ static final 상수final 키워드를 사용하여 하드 코딩된 값을 상수로 추출하는 방식이다.🔽 2주차 과제(자동차 경주): static final..
[우아한테크코스] 프리코스 3주차 기록
·
회고/우아한테크코스
우아한테크코스 프리코스 3주차 과제 링크 GitHub - soeun2537/java-lotto-7: 우아한테크코스 프리코스 3주차 과제우아한테크코스 프리코스 3주차 과제. Contribute to soeun2537/java-lotto-7 development by creating an account on GitHub.github.com 🎯 목표 설정2주차 과제에서 TDD의 효과를 느끼고 이를 실천하기 위해 많은 공을 들였다. 당시 내가 진행했던 TDD 방식은 통합 테스트 작성 -> 기능 구현 -> 단위 테스트 작성 -> 클래스 분리의 순서로 진행되었다. 하지만 회고와 프리코스 커뮤니티의 글들을 통해, 내가 해온 방식이 본래의 TDD 방식과 다르다는 것을 깨달았다. TDD는 처음부터 단위 테스트를 작성하..
[우아한테크코스] 프리코스 2주차 기록
·
회고/우아한테크코스
우아한테크코스 프리코스 2주차 과제 링크 GitHub - soeun2537/java-racingcar-7: 우아한테크코스 프리코스 2주차 과제우아한테크코스 프리코스 2주차 과제. Contribute to soeun2537/java-racingcar-7 development by creating an account on GitHub.github.com 🎯 목표 설정1주차 과제에서는 테스트 코드 작성에 집중했으나, 코드 리뷰를 통해 단순히 다양한 케이스를 테스트하는 것뿐만 아니라 단위 테스트를 통해 보다 효율적이고 체계적인 테스트를 작성하는 것이 중요하다는 피드백을 받았다. 이번 주차에는 해당 피드백을 반영하여 TDD 방식을 적용하고, 단위 테스트에 중점을 두어 더 나은 테스트 코드를 작성하는 것을 목표로..
[TroubleShooting] Cascade 옵션은 부모에게만
·
TroubleShooting
👀 현재 상황 및 배경 설명현재 프로젝트에서는 N:M 관계(다대다 관계)가 적용된 Member와 Organization 엔티티 간의 연관관계를 설정하고 있다. 중간 테이블인 OrganizationMember 테이블이 두 엔티티를 연결해주며, 이를 통해 양방향 관계가 관리된다. 중간 테이블을 통해 Member는 여러 Organization에 속할 수 있으며, 반대로 각 Organization도 여러 Member와 연관될 수 있다. 현재는 Organization 엔티티에서만 양방향 관계를 설정하여 컬렉션 필드를 관리하고 있다.또한, CascadeType 옵션을 통해 부모 엔티티 삭제 시 자식 엔티티도 자동으로 삭제되도록 구현했다. 그러나 중간 테이블인 OrganizationMember를 통해 양방향 관계를..
[TroubleShooting] 컬렉션 필드 초기화가 되지 않는 Builder 패턴
·
TroubleShooting
👀 현재 상황 및 배경 설명현재 프로젝트에서 Builder 패턴을 사용하여 엔티티 객체를 생성하고 있으며, 특히 양방향 연관관계를 설정한 Organization 엔티티에서 리스트 형태의 컬렉션 필드를 사용하고 있다. ▶ 구현 코드@Entity@Getter@Builder@NoArgsConstructor(access = AccessLevel.PROTECTED)@AllArgsConstructorpublic class Organization { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ... // 양방향 연관관계 @OneToMany(mappedBy = "organization", cascade ..
[우아한테크코스] 프리코스 1주차 기록
·
회고/우아한테크코스
우아한테크코스 프리코스 1주차 과제 링크 GitHub - soeun2537/java-calculator-7: 우아한테크코스 프리코스 1주차 과제우아한테크코스 프리코스 1주차 과제. Contribute to soeun2537/java-calculator-7 development by creating an account on GitHub.github.com 🎯 목표 설정1주차 과제에서의 목표는 기능 구현뿐만 아니라, 코드의 가독성과 유지보수를 고려한 효율적인 리팩토링을 실천하는 것이었다. 또한, 테스트 코드 작성 경험이 많지 않아서, 이번 과제에서는 테스트 코드에 중점을 두고 진행했다.🔽 진행 계획기능 구현 목록 정리테스트 코드 작성클린 코드 및 SOLID 원칙을 고려한 코드 리팩토링배운 점 정리  💻..
soeun2537
'분류 전체보기' 카테고리의 글 목록 (4 Page)