0523-Like-Haruki

Intro

하루키처럼

  • 기초 체력 기르기 달리기 하루에 1시간씩 하기
  • 1 day 4->5시간 프로젝트 코딩 후 -> 마음에 들 때가지 리팩토링 무한 반복 :D

단순하네
이걸 계속 꾸준히 하면 장난 아니겠다 !!!

0523

오늘 할 일
매일 하는 일 과 같이 nextCamp pr날리고 리뷰 후 리팩토링 진행
Daily Algorithm 잠시 정체 되었는데 … 사람들에게 어떻게 할지 물어봐야겠다.

그리고 지금 수준에서 점점 어려워지고 있어서 아직은 프로그래머스도 level4 부터 어려워지는 것 같다….
다른 사이트 문제로도 비슷한 수준으로 한 번 돌려봐야겠다.

오늘부터 타입스크립트로 nextCamp level2과정 복습 겸 step다시 진행 시작

nextCamp 크롱이 해 준 리뷰

MVC 각각의 역할을 잘 알고 있어야 한다 !

지금 구조의 아쉬운 점 ?

지금 구조의 아쉬운 점

뷰나 컨트롤러가 복잡해짐으로써 기능이 더 추가될 수록 너무 장황해질 수 있다

예상 해결 방안
모델을 분리한 것처럼
walletView -WalletController-WalletModel
vendingMachineView -vendingMachineController-VendingMachinetModel -
두개가 연결 되어야 하는 상황에서는 CenterController 을 통해서 접근
이런식으로 나누면 다소 해결되지 않을까 생각이 듭니다.

이렇게 답하긴 했는데 더 개괄적인 mvc의 구조적 문제를 얘기 하신 건 아니겠지 내 코드의 구조적 문제겠지
보는 김에 MVC패턴의 장 단점도 알아봅시다.

mvc장단점
단점
기본 기능 설계를 위해 클래스들이 많이 필요해서 복잡해질 수 있다.
설계 기간이 오래 걸림 숙련된 개발자 필요
모델과 뷰의 완벽한 분리가 어렵다

다시 검색해서 알아본 결과 내가 짠 코드 부분은 mvp패턴에 가깝다
mvc mvp mvvm 데이터 흐름 및 컨트롤러에 역할에 따라서 이렇게 3가지로나 분리되는 구나
이렇게 분리된 패턴 mvc에서는 controller로 입력이 들어오고 view가 모델을 바꾸고
그런데 뷰가 아닌 부분에서 입력이 들어올 수 있나?.?
mvp는 내가 생각한 모델-뷰가 컨트롤러를 통해서만 서로 왔다갔다 하는 부분

mvp의 단점은
뷰와 프레젠터가 1:1로 강한 의존성을 가지게 된다.
강한 의존성 <->
모델 뷰 뷰모델
컨트롤러가 뷰모델을 현재 프레임워크가 가지는 패턴이라고 한다.
두가지 패턴이 사용된다고 한다 커맨드 패턴과 data Binding

작게 본 개선사항으로는 비슷한 메소드들이 데이터만 달라지고 같은 처리를 하는 경우들이 많아서 수정해야 될 것 같습니다.

지금은 스스로 고민하는 과정이 중요하다고 함 !!!
디자인에 대한 고민을 많이 하고 리팩토링 고우!
약간 짬이나 생각하기 어려워서
<->
좋은 케이스들을 많이 익혀보고 그것을 토대로 생각해보는 것
적절히 섞어서 해야지 뭐:D 뭐든지 적당히가 중요함

커맨드 패턴

커맨드 패턴(Command pattern)이란 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다.

커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client)의 네개의 용어가 항상 따른다. 커맨드 객체는 수신자 객체를 가지고 있으며, 수신자의 메서드를 호출하고, 이에 수신자는 자신에게 정의된 메서드를 수행한다. 커맨드 객체는 별도로 발동자 객체에 전달되어 명령을 발동하게 한다. 발동자 객체는 필요에 따라 명령 발동에 대한 기록을 남길 수 있다. 한 발동자 객체에 다수의 커맨드 객체가 전달될 수 있다. 클라이언트 객체는 발동자 객체와 하나 이상의 커맨드 객체를 보유한다. 클라이언트 객체는 어느 시점에서 어떤 명령을 수행할지를 결정한다. 명령을 수행하려면, 클라이언트 객체는 발동자 객체로 커맨드 객체를 전달한다.

봤는데 .. 레스토랑에서 종업원이 메뉴 전달 하는 거랑 비슷하다고 하는데… 근데
기존에 컨트롤러가 전달하는 거랑 그렇게 큰 차이가 있는 것인가?.?

웹 자판기 리팩토링

todo 체크리스트

[]
[]
[]

타입스크립트

타입스

회고

오늘 할 일

  1. 웹 자판기 pr리뷰 받은 내용 정리 하고 리팩토링 후 다시 pr (0.5) 조금 고치는 중
  2. ArrayParser 다른 사람들 코드 보고 공부
  3. TIL (ㅇ)
  4. cs50 1시간 듣기
  5. 타입스크립트 인강 및 코드스피츠 인강 듣고 공부하기 (0.5) 타입스크립트 인강만 반 정도 들음
  6. daily Algorithm

벌써 밤 10시인데 지킨 것이 거의 없는데?.?
알고리즘이랑 cs50얼른 들어서 조금이라도 높여야겠다…

WHY?

오늘 계획만큼 못 한 원인 분석

  1. 구조 분석하라는 부분을 잘 못 이해 + 어떤 문제가 있을까 생각해보고 대답했으나.. 음 뷰-컨트롤러가 비대해지는 것은 그리 큰 문제가 아니였다. 그래서 검색 -> 기존 패러다임에 문제점을 분석 ->내가 짠 것은 mvp와 유사 -> mvvm ?.?…

본질은

  • M,V 를 어떻게 의존하지 않고 잘 나눌것인가?
  • 각각 테스트 가능한 코드를 만들려면 어떻게 해야할까? 내가 만든 구조가 테스트 가능한가?
  • 가장 변화가 심할 예정인 부분은 무엇인가? 그것은 다른 클래스(mvc끼리나 v끼리등)를 의존하지 않고 있어서 수정이 용이한가?
    요런 것들등을 고민해보라는 것이 의도였다.

왜 => 크롱 의도 잘 못 파악 + => MVC 패턴 공부 중 -> mvvm에서 databinding & command패턴 읽어봤으나… 글쎄요
대략적으로 이런 패턴들이 발전해왔구나 정도 이해지 아쉬움 그런데 여기에 시간을 너무 많이 투자했다.
질문이 너무 늦었다. 질문 할 까 말까? 무엇을 해야 하지 … 이렇게 고민 하는 시간이 …내가 찾아봐도 모르는 건가 더 찾아봐야 되는 거 아닌가 + /

  1. 늦잠… 어제 너무 늦게 잤으니 할 말은 없다 => 오늘 일찍 자자

4-10시 -> 11시반 학원 도착
그래도 한 번 더 빨리 깼었는데 아쉽

  1. 집중을 잘 못했다. 이거했다 저거했다… 하나 할 때는 하나만 집중해서 끝내고 다음 것을 처리하려고 하자

  2. 키보드를 안 가지고 와서 듀얼을 쓸 때 좀 많이 불편했다. 매인 화면을 맥북으로 보고 가끔 보는 화면을 더 큰 모니터에 놓고 해야 된다니 _= 키보드 안 가지고 옴 생산성

결론 의도 잘 못 파악 삽질 + 잘 모르는 어려운 개념에 시간 너무 많이 쏟음
그리고 키보드 안 가지고 오고 집중력 + 늦잠으로 인한 공부시간 부족 끝

내일은 이런 점은 좀 덜하도록 화이팅 하:3

dailyAlgorithm

고우+_+고우

etc

다행이도 mysql 배점이 높지 않았나 보다 배민 2차를 볼 수 있게 되엇다. 야호 !
토요일 근데 티켓까지 사노은 약속이 있는데 에효 ‘ㅁ’;;; 늦게 가는 수 밖에
수/목/금/토 알고리즘 2시간 이상 면접에 나왔던 좋은 문제들 위주로 풀어보는 연습을 해보자