[우아한테크코스] Java Enum 활용기
·
우아한테크코스
💭 들어가며프리코스 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 원칙을 고려한 코드 리팩토링배운 점 정리  💻..
[우아한테크코스] 우테코 코드 스타일 포매터 적용
·
우아한테크코스
👀 배경 설명프리코스 과제에서 요구하는 프로그래밍 요구 사항 중 하나는 자바 스타일 가이드를 준수하는 것이었다. 처음에는 간단해 보였지만, 코드를 커밋하기 전에 스타일에 맞게 일일이 수정하는 일이 점점 번거로워졌다. 특히, 들여쓰기나 공백 같은 세세한 부분을 계속해서 맞추다 보니 작업 흐름이 끊기는 느낌이 들었다. 그래서 검색을 해보니, 코드 포매터라는 도구를 발견하게 되었다.코드 포매터는 미리 정의된 형식에 따라 코드를 자동으로 정리해주는 도구이다. 포맷팅 단축키(Command + Option + L)를 누르면 지정된 스타일로 코드가 정리되며, 코드를 저장할 때마다 자동으로 포맷팅되도록 설정할 수도 있어 일일이 수동으로 수정하는 수고를 덜 수 있다.또한, 우아한테크코스 스타일 가이드가 자바 기본 스타..
[우아한테크코스] 프리코스 시작 전, 목표 설정 및 클린 코드 원칙 정리
·
우아한테크코스
🎯 목표 설정우아한테크코스에서의 목표: 개발자로서 추구할 가치를 설정하기 위해 끊임없이 도전하며 나 자신을 깊이 알아가는 것이다. 이를 위해 다양한 문제에 부딪히고, 프로젝트에 애정을 가지며 단순한 구현을 넘어 집요하게 리팩토링하는 경험이 필요하다고 느꼈다.프리코스에서의 목표: 따라서 이번 프리코스에서의 목표는 효율적인 리팩토링을 고민하며 이를 코드에 녹여내는 것이다. 이 과정에서 새로운 기술을 적극적으로 도입해 보고, 배운 점을 체계적으로 정리하려고 한다. 또한, 이러한 배움에 우선으로 집중하기 위해 처음부터 클린 코드 원칙을 준수하여 유지보수가 용이한 코드를 작성하고자 한다.  ✏️ 주차 별 회고 기록 방법목표 설정: 요구사항을 분석하고 명확한 학습 목표를 세운다.진행 과정: 고민의 흔적이 드러나는..
soeun2537
Hello, 소은!