전체 글

매일 발전하는 백엔드 개발자
자바

[JAVA] 객체는 객체스럽게(로또 미션 리팩터링)

우테코 3주차 로또 게임 피드백을 토대로 리팩터링을 진행했다. GETTER 대신 메시지를 던져주게 바꿀 것 당첨로또는 로또 상속받고 보너스 번호 따로 저장 비즈니스 로직과 UI 로직 분리(toString) Rank Enum 적용 당첨 수익금을 계산할 때도 Rank Enum을 적용해 불필요한 코드가 많이 삭제됐다. Lotto Enum 도 getter 대신 isRangeIn 으로 메시지 던지기 느낀 점 Enum 클래스 사용 Enum 클래스 및 일급컬렉션으로 새로운 자료구조를 만들어 사용하는 것은 불필요한 코드를 많이 삭제를 할 수 도있고 가독성부분에서도 많은 도움이 되는 것 같다. getter 사용 지양 아직도 습관적으로 Alt+Insert로 getter를 만드는게 습관이 됐지만 이번 리팩터링을 계기로 ge..

자바

[JAVA] 우테코 프리코스 피드백

우테코 프리코스가 끝나고 그동안 배운 걸 정리하기 위해 글을 쓴다. 1주차 요구사항 준수할 것 커밋 메시지 의미있게 작성할 것 이름을 통해 의도를 들어낼 것 2주차 README.md 상세히 작성 기능목록 재검토, 업데이트 값을 하드코딩 하지 않기 3주차 메서드가 길어지면 분리를 고민할 것 발생할 수 있는 모든 예외상항을 고민할 것 비즈니스 로직과 UI로직을 분리할 것 public class Lotto { private List numbers; // 로또 숫자가 포함되어 있는지 확인하는 비즈니스 로직 public boolean contains(int number) { ... } // UI 로직 private void print() { ... } } 현재 객체의 상태를 보기위한 로그 메시지 성격이 강하다면 ..

독서/데일 카네기 인간관계론

3장 상대방에게 욕구를 불러일으켜라

"먼저 다른 사람에게 열렬한 욕구를 불러일으켜라. 이를 할 수 있는 사람은 온 세상을 갖게 될 것이다. 그렇지 못한 사람은 혼자 일 것이다." 우리도 자주 말하는 역지사지의 마음인 것 같다. 인간관계가 끼어있을 때 내가 원하는 결과를 얻지 못했을 때 나만의 관점에서 상대방을 설득하는게 아니라 상대방의 관점에서 생각하는게 중요하다고 한다.

독서/데일 카네기 인간관계론

2장 인간관계의 비결

다른 사람으로 하여금 어떤 일을 하게 만드는 유일한 방법은 다른 사람이 원하는 것을 주는 것이다. 모든사람은 위대한 사람으로 인정받고 싶은 욕구 때문에 살아간다. 사람은 현실 세상에서 진심어린 인정을 받을 수 없을 때 인정을 받기 위해 진짜로 미칠 수도 있다. 이 욕구를 채워주기 위해선 진심 어린 인정이 필요하고 여기서 진심이 빠지면 아첨이다. 칭찬은 고래도 춤추게한다고 하지 않는가? 진심을 담아 칭찬해보자 사람을 다루는 기본방법 2: 솔직하게, 진심으로 인정하고 칭찬하라 Give honest, sincere appreciation

알고리즘/sql

가격대 별 상품 개수 구하기 mysql

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131530 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/131530) 코드 SELECT ( CASE WHEN PRICE < 10000 THEN 0 ELSE TRUNCATE(PRICE,-4) END) as PRICE_GROUP, COUNT(*) AS PRODUCTS FROM PRODUCT GROUP BY PRICE_GROUP ORDER BY..

알고리즘/sql

년, 월, 성별 별 상품 구매 회원 수 구하기 mysql

https://school.programmers.co.kr/learn/courses/30/lessons/131532 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/131532) SELECT YEAR(B.SALES_DATE) as YEAR, MONTH(B.SALES_DATE) as MONTH, A.GENDER as GENDER, count(distinct A.USER_ID) as USERS FROM USER_INFO AS A JOIN ONLINE_SA..

알고리즘/sql

입양 시각 구하기(1)

https://school.programmers.co.kr/learn/courses/30/lessons/59412 [프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/59412) SELECT HOUR(DATETIME) as HOUR, count(*) FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 and HOUr

회고

우테코 프리코스 4주차 회고

22시간전을 마지막으로 우테코 프리코스 과정이 끝났다. 4주차 회고 및 한달 전과 비교해서 어떤 부분이 발전했는지 돌아보고자 한다. 추가된 프로그래밍 요구 사항 메서드 10줄 라인 제한 메서드 파라미터 3개 제한 각 클래스당 요구 사항 제한 InputView 클래스에서만 Console.readLine 사용가능 BridgeGame 클래스에서 InputView, OutputView 사용 불가 고민한 것 1. BridgeMaker, BridgeNumberGenerator Interface, BridgeRandomNumberGenerator InterfaceImpl 관계 눈에 보기 쉽고 의존성 주입을 위한 AppConfig 클래스 전체적으로 모든 클래스를 만들어주는 클래스 생성 메소드에 의존성 주입을 위한 Br..

비오베베
우당탕탕 개발