[회고] 2025 스마일게이트 Dev Camp 기록
·
회고
💭 들어가며2024년 12월 말부터 2025년 2월까지 약 두 달간 진행된 스마일게이트 Dev Camp!회고가 꽤 늦어졌네요. 바쁘다는 핑계로 미뤄 두기만 했는데, 이제야 짬을 내어 작성하게 되었습니다. 다행히 틈틈이 기록해 둔 것들이 있어, 그 내용을 바탕으로 회고를 작성하고자 해요. 😄 🏃🏻‍♂️ 함께 했던 사람들올해의 첫 스타트를 함께한 Dev Camp 캠프원들! 처음엔 이렇게까지 돈독해질 줄 몰랐는데, 어느새 정말 가족 같은 분위기가 되었어요. 막내였는데, 참 예쁨을 많이 받았던 것 같습니다. 토론할 때 보면 모두가 정말 열정적이고, 배우려는 의지도 강해서 하나 같이 모두 멋진 사람들만 모였다는 생각이 들었습니다. 그리고 이 캠프를 누구보다도 잘 이끌어 주신 인재영입팀 과장님! 정말....
[우아한테크코스] 레벨 1 기록
·
우아한테크코스
💭 들어가며회고가 꽤 늦었다. 방학 기간 동안 부족했던 체력을 보충하고, 오랜만에 부모님도 뵙고... 사실 놀면서 점점 미뤄온 게 가장 큰 이유다. 😅방학 마지막 날에서야 다시 마음을 가다듬고, 레벨 1에서 배운 것들과 고민했던 부분을 복기하며 회고를 남겨보고자 한다. ✅ 미션 1 - 로또▶ PRStep 1: 로또 Step1 PR 링크Step 2: 로또 Step2 PR 링크 ▶ 학습🔽 키워드MVC테스트 코드Object🔽 블로그 정리[Java] 테스트 코드, JUnit & AssertJ ▶ 고민했던 부분1️⃣ 요구사항도 의심하자프리코스를 진행할 때도 그랬듯, 단순히 요구사항을 완벽히 지키는 것에만 집중했던 것 같다. 로또 미션에서도 Getter 사용을 지양하라는 요구사항이 있었는데, 왜 그런 요..
[Java] 불변 객체, 값 객체
·
Programming/Java
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며블랙잭 미션을 진행하던 중, 배팅 금액처럼 의미가 있는 값을 원시값으로 다루지 말고 Money와 같은 값 객체로 리팩터링해 보라는 리뷰를 받았다. 솔직히 "값 객체"라는 용어는 많이 들어봤지만, "왜 굳이 불변이어야 하지?"라는 의문이 들었고, 해소가 되지 않은 상태에서는 억지로 사용하지 말자고 생각했다. 그러다 이번 미션에서 직접 값 객체를 적용하면서 불변 객체의 장점을 알게 되었고, 이에 대해 좀 더 자세하게 정리해보고자 한다.  ✅ 불변 객체불변 객체란 한 번 생성되면 내부 상태가 절대 바뀌지 않는 객체를 말한다. ▶ 불변 객체의 조건객체의 상태를 변경하는 메서드를 제공하지 않는다.클래스를 확장할 수 없도록 한다.모든 필드는 f..
[Java] Optional
·
Programming/Java
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며장기 미션 리뷰로 Optional 관련 피드백을 받았다. 장기 판에 기물이 없는 경우 null을 반환하게 되면 악명이 자자한 NPE의 위험이 있다고 들어, 이를 방지하고자 Optional을 사용했다. 그런데... Optional 관련 피드백이 마구마구 달렸다. Brain Goetz는 Optional을 만든 의도에 대해, "결과 없음"을 명확하게 표현할 수 있는 방법이 필요한 라이브러리 메서드 반환 유형을 위한 제한된 메커니즘을 제공하는 것이라고 말했다. 하지만 실제로는 사람들이 의도와 다르게 사용하는 경우가 많아 주의할 점이 많다고 한다. (이래서 코틀린을 써야 하는 건가...?)찾아보니 안티패턴이란 안티패턴은 다 내가 쓰고 있던 것..
[Java] 상속, 조합
·
Programming/Java
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며코드 리뷰에서 조합을 사용해 보는 것을 권유받았다. 조합..? 조합에 대해서 전혀 몰랐던 나는 관련 아티클을 무작정 찾아보며 도입을 시도하고, 장단점을 직접 분석해보고자 했다. 찾아보니 객체지향 설계 원칙 중에 "상속보다 조합을 우선하라"라는 말을 발견했다. "대놓고 상속보다 조합을 사용하라고 하네?"라는 생각이 들었지만, 왜 조합을 써야 하는지, 어떤 상황에서 조합이 좋은지 정확히 몰랐기 때문에 이를 정리하고, 실제 미션에 적용해 보기로 했다.  ✅ 상속 (Inheritance)상속은 부모 클래스의 속성과 행동을 자식 클래스가 물려받는 방식이다.🔽 장점부모 클래스의 정의된 로직을 자식 클래스가 그대로 사용할 수 있어 코드 재사용성..
[OOP] SOLID
·
Programming/OOP
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며미션을 진행할 때마다 항상 "좋은 설계란 무엇일까?"라는 고민을 하게 된다. 그 물음에 대한 답을 찾기 위해 다양한 시도를 해보지만, 결국은 SOLID 원칙으로 귀결되곤 한다.SOLID 원칙은 객체지향 설계에서 지켜야 할 다섯 가지 핵심 원칙을 말하며, 변화에 유연하고 유지보수가 쉬운 구조를 만드는 데 큰 도움을 준다. 궁극적으로 좋은 설계란 변경 사항이 생겼을 때 영향을 받는 범위가 최소화된 구조라고 생각한다. 이런 구조를 만들기 위해 SOLID 원칙은 좋은 기준점이 되어 준다.SRP (Single Responsibility Principle): 단일 책임 원칙OCP (Open Closed Principle): 개방 폐쇄 원칙LSP..
[Java] 인터페이스, 추상 클래스, 일반 상속
·
Programming/Java
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며미션을 진행하면서 인터페이스와 추상 클래스의 특징을 명확히 이해하지 못한 채, 미션을 완료하기 위해 무작정 사용하곤 했다. 그런데 이번 장기 미션에서 페어였던 포포는 추상 클래스를 깔끔하게 잘 활용하는 반면, 그 차이를 온전히 따라가지 못하는 나를 보며 해당 개념을 다져야겠다고 생각했다. 이를 계기로 인터페이스와 추상 클래스, 그리고 일반 상속의 특징과 차이점 및 사용 시점 등에 대해 정리해 보았다.  ✅ 인터페이스(Interface)interface 키워드로 선언된 구조이다.기능을 정의하는 데 사용한다.메서드 시그니처만을 가진다.자바 8부터 default 메서드(구현 포함)와 static 메서드 선언이 가능해졌다.기본적으로 모든 메..
[Java] 제네릭(Generic)
·
Programming/Java
우아한테크코스 레벨 1에서 학습한 내용을 정리한 글입니다. 💭 들어가며자바의 제네릭은 컬렉션 프레임워크를 사용할 때 자연스럽게 접하게 되지만, 정확한 용도를 깊이 이해하지 못한 채 사용해 왔다는 생각이 들었다. 이번 기회를 통해 학습하면서, 제네릭이 예상보다 복잡한 개념임을 알게 되었다. 따라서, 이번 포스팅에서는 기본적인 내용을 간단히 정리하고, 추가적인 학습이 필요할 경우 심화 내용을 따로 다루고자 한다.  ✅ 제네릭(Generic)이란▶ 정의제네릭(Generic)은 타입을 변수화하여, 클래스나 메서드 선언 시 구체적인 타입을 적지 않고, 사용하는 쪽에서 그 타입을 지정해 줄 수 있도록 하는 기술이다.🔽 예시 코드List genericList = new ArrayList();위 예시에서 List은..
soeun2537
Hello, 소은!