본문 바로가기

전체 글59

우테코 Level1 회고록 우테코 시작한 지 엊그제 같은데 벌써 Level1 이 끝났다. 시간이 참 빨리 간다. Level1을 진행하면서 참 많은 감정들을 느꼈다. 내가 느낀 감정들을 잊지 않기 위해 방학 기간 동안 회고록을 작성하기로 결정했다.Level1, 어떤걸 배웠을까? 첫 번째 미션 (로또)  학습 키워드- 어떤 기술을 사용할 때, 나만의 근거를 가지고 사용하기 - DTO란?- Service 계층이란? 어떤 고민을 했었을까?객체에게 적절한 책임을 부여하는 데에 많은 고민을 했다. 기존에는 조금 어려운 비즈니스 로직이 있으면 Service 계층에서 비즈니스 로직을 작성했다. public double calculateProfit (Map rankResult, int purchaseAmount) { Profit pr.. 2025. 4. 7.
유연성 강화 스터디 회고록 유강스 회고록  우아한 테크코스는 프로그래밍 역량뿐만 아니라 소프트스킬에 대한 교육도 제공한다. 여기서 말하는 소프트스킬이란, 살아가는 데 있어 필요한 역량들을 말한다. 예를 들자면 말하기, 글쓰기, 마인드셋을 들 수 있다. 다 중요한 역량이지만, Level1에서는 유연한 마인드셋에 대해 생각하는 시간을 가졌다.유강스란?  유연성 강화 스터디는 본인이 이루고자 하는 목표를 설정 후, 달성하기 위해 여러 시도를 해보는 과정이다. 앞으로는 편의상 유강스라고 말하겠다. 여기서 말하는 목표는 본인이 성장시키고 싶은 역량이다. ‘동료들이 쉽게 다가올 수 있는 친근한 사람 되기’ 와 같은 목표를 예로 들 수 있다. 위와 같은 목표를 세우고, 이를 실천하기 위한 실험 계획을 세운다. ‘동료들에게 자주 웃어주기’, ‘.. 2025. 4. 6.
상속과 합성 우리는 공통 코드를 줄이기 위해 상속을 많이 사용한다. 하지만 상속에는 많은 단점들이 존재한다. 공통되는 로직을 줄이기 위해서 상속이 정말 좋은 방법일까? 상속을 사용하면 캡슐화가 깨지고 결합도가 높아진다.예시 코드를 살펴보자. 1주차 미션에서 진행한 로또 코드를 가져왔다. 미션을 했다면 알다시피 로또는 두 가지 종류로 나뉜다. 1) 당첨 번호2) 구매 번호 당첨번호와 구매번호는 매우 비슷하기에 중복되는 코드를 줄이기 위해 상속을 사용해보자. 두 객체의 차이점은 당첨 번호는 bonusNumber라는 추가 필드를 가지고 있다는 점이다.public class Lotto { private int[] numbers; public Lotto(int[] numbers) { this.numbe.. 2025. 3. 17.
우테코 Level1 미션3(블랙잭) 및 한 달차 회고 세 번째 미션, 블랙잭블랙잭의 난이도는 그리 어렵지 않았다. 오히려 저번 주차인 출석 미션이 훨씬 어렵다는 개인적인 생각이 있다. 다만 딜러와 플레이어의 기능이 매우 비슷했고, 이에 대한 중복 코드를 제거해야 하는 조건이 있었다. 나는 중복을 줄이기 위해 상속을 사용했다.public abstract class Participant { private static final int BURST_UPPER_BOUND = 21; private final String name; private final List cards; protected Participant(String name) { this.name = name; this.cards = new ArrayList(.. 2025. 3. 15.
Java 의 불변 객체 (final, 방어적 복사, unmodifiable) 우리는 불변 객체를 사용한다. 하지만 예상치 못하게 불변을 깨트리는 악당들이 있다. 예시를 통해 상황을 이해해 보자.public class Name { private final String value; public Name(String value) { this.value = value; } @Override public String toString() { return "Name{" + "value='" + value + '\'' + '}'; }} public class Names { private final List names; public Names(List names) { this... 2025. 3. 13.
우테코 Level1 미션2(출석) 회고 두 번째 미션, 출석Level1의 두 번째 미션은 출석이었다. 출석은 우아한 테크코스 최종 코딩테스트의 문제였고, 두 번째 미션에서 다시 한번 구현하게 되었다. 우테코 미션에서는 총 2가지의 step을 거친다step1. 페어와 함께 구현하기 + 구현이 종료되면 리뷰어의 피드백을 토대로 리팩토링 진행하기step2: 혼자서 구현하기 우선 step1에서는 수업 때 배운 TDD를 적용해보기로 결정했다. 다만, 페어와 나 둘 다 TDD를 처음 사용해 봤고 그 과정에서 많은 어려움이 있었다.  정말 기초적인 기능명세서만 작성한 후, 바로 코드를 작성했다. 그 과정에서 설계가 수시로 바꼈고, 리팩토링 하는데 시간을 많이 사용한 것 같다. TDD의 모호성 또한 많이 느꼈다. 예를 들어, 객체 생성에 대한 테스트 코드 .. 2025. 3. 6.