전체 글

Running Experiments on Myself
우테코

[Lv1] 출석부 미션 회고

출석부 미션 회고10줄 요구사항10줄 제한 요구사항을 지키기 위해 충분히 명확함에도 불구하고 메서드를 분리하는 경우가 있었다. 페어와 함께 이 메서드를 분리하면 좋을지, 10줄 제한 요구사항을 지키지 않을지 토론했다. private void process(final Crews crews, final Command command) { if (command.equals(Command.CHECK_ATTENDANCE)) { checkAttendance(crews); } if (command.equals(Command.MODIFY_ATTENDANCE)) { modifyAttendance(crews); } i..

우테코

[Lv1] 로또 미션 회고

로또 미션 회고페어프로그래밍페어 프로그래밍을 진행하며 페어의 시야에서 문제를 바라보고, 부족한 부분을 깨달으면서 배울 수 있었다.그런데 의견 조율을 하다보니 혼자 개발할 때보다 같은 기능을 구현할 때 시간이 훨씬 많이 걸리게 되었다.그래서 페어 프로그래밍이 성장에는 도움이 되지만, 실제 프로덕트를 만들 때에도 도움이 될지 궁금했다. 따라서 리뷰어에게 실무에서도 페어 프로그래밍을 진행해보신 적이 있는지, 페어 프로그래밍에 시간이 많이 걸리는 부분에 대해 물어보았다. 실무에서도 페어프로그래밍을 진행한다고 하셔서 놀랐다. 페어 프로그래밍은 시간이 많이 걸리는 작업이지만, 버그나 장애발생률이 현저히 감소하는 장점이 있다. 또한 페어의 성향과 자신의 성향이 얼마나 잘 맞느냐도 중요한데, 성향 차이로 인해 페어 프..

우테코

[블랙잭 미션] MVC 패턴, 서비스가 콘솔 애플리케이션에서 필요한가?

MVC 패턴, 서비스가 콘솔 애플리케이션에서 필요한가?MVC 패턴Model : 애플리케이션의 데이터와 비즈니스 로직 담당View : 사용자에게 보여지는 부분 (데이터의 시각화)Controller : Model로부터 데이터를 받아 View로 전달하는 작업 수행 콘솔 애플리케이션 (블랙잭)화면 요구사항게임에 참여할 사람의 이름을 입력하세요.(쉼표 기준으로 분리)pobi,jason딜러와 pobi, jason에게 2장을 나누었습니다.딜러카드: 3다이아몬드pobi카드: 2하트, 8스페이드jason카드: 7클로버, K스페이드pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)ypobi카드: 2하트, 8스페이드, A클로버pobi는 한장의 카드를 더 받겠습니까?(예는 y, 아니오는 n)njason는 한장의..

우테코

[Lv1] 중간 회고

Lv1 중간회고우테코를 다닌지 한달이 되었다. 지금까지 생활을 돌아보자. Lv1 기존 목표 : 많은 것을 도전하자우테코에 들어오면서 기존에 내가 가지고 있던 생각을 유연하게 만들고, 아직 도전하지 못한 부분들을 마음껏 도전하고 싶었다.설명회에서 도전하더라도 지지해주고, 응원해주는 환경을 조성해준다고 하였기 때문이다.한달동안 도전을 하고 많은 것이 바뀌었다. 공개적인 곳에서 의견 말하기낯선 크루들과 개발 주제로 이야기할때, 나도 내 의견을 제시할 수 있는 사람이 되고 싶었다. 모두 백엔드 개발이라는 공통점을 가지고 있기 때문이다. 다른 크루들도 의견을 공유하는 것을 좋아하고, 다른 의견을 환영하고 토론하는 분위기였기 때문에 의견을 나누는 과정이 즐거웠다.의견을 말하면서 좀 더 의견을 설득력있게 말할 수 있..

설계

함수형 프로그래밍과 객체 지향 프로그래밍의 교집합

함수형 프로그래밍과 객체 지향 프로그래밍의 교집합경계의 구분 관점내부 세계와 외부 세계를 구분한다.함수형함수형은 데이터, 순수 함수, 비순수함수로 나눠지며, 순수 함수와 비순수 함수의 경계를 구분한다.비순수 함수는 외부 세계라고 볼 수 있고, 순수 함수는 내부 세계라고 볼 수 있다.이는 비순수 함수는 같은 입력에도 실행 시점이나 호출 횟수에 따라 다른 결과가 나오기 때문이다.함수형 프로그래밍은 외부 세계와의 상호작용을 비순수함수에 격리한다. 객체지향핵심 로직 : 순수 함수를 포함한 비즈니스 로직인프라스트럭쳐(외부 시스템 연동) : 비순수 함수를 포함한 외부 세계와의 상호작용비순수 부분을 인터페이스로 추상화public class OrderService { private final OrderReposi..

설계

함수형 프로그래밍이란?

함수형 프로그래밍수학 함수를 사용하고 부수 효과(side effect)를 피하는 것이 특징인 프로그래밍 패러다임부수 효과 : 함수에서 결과값을 주는 것 외에 하는 행동순수 함수 : 부수 효과 없이 결괏값이 인자에만 의존하는 함수부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일 실용적 측면에서의 함수형 프로그래밍부수 효과는 필요하다.상태에 따라 결과가 달라질 필요가 있다.함수형 프로그래밍은 부수 효과를 잘 다룰 수 있다.함수형 프로그래밍은 순수하지 않은 함수도 사용하지만 순수하지 않은 함수를 다룰 수 있는 기술도 많이 있다.함수형 프로그래밍은 실용적이다.함수형 프로그래밍은 객체 지향 프로그래밍이나 절차적 프로그래밍을 다루지 않고 모든 프로그래밍에서 사용가능하다. 함수형 프로그래밍에서 순수하지 않은 함..

설계/디자인 패턴

[디자인패턴] 구조 패턴 - 어댑터 패턴

구조 패턴 - 어댑터어댑터 패턴호환되지 않은 인터페이스가 있는 객체들이 함께 협업할 수 있는 구조 설계 패턴기존 인터페이스를 구현하여 호환이 필요한 객체를 감싸 호환되게 만든다.중간 다리 역할(ex) 전압변환기)을 한다. 문제개발한 주식 시장 모니터링 앱은 XML 형식의 주식 데이터를 다운로드하여 차트와 다이어그램을 표시한다.새로운 데이터 형식을 지원하기 시작한다고 가정할 때 (ex) JSON) 기존 코드를 중단시키지 않고 동작시킬 수 있는 방법이 필요하다. 해결방법 : 어댑터(Adapter) 만들기어댑터 : 다른 객체가 이해할 수 있도록 인터페이스를 변환한다.작성 방법기존 객체 중 하나와 호환되는 인터페이스를 가져온다.어댑터는 새로운 객체를 감싸고 기존 인터페이스를 구현한다.클라이언트는 어댑터가 동작하..

설계/디자인 패턴

[디자인패턴] 생성 패턴 - 싱글톤 패턴

스터디 발표 영상 https://www.youtube.com/embed/B2irvGasOHU?si=FMO2-s0UFkROi9Nx YouTube www.youtube.com