우아한형제들 14

[우테코] Lv. 1 런치 구현 - 2단계

배경지식! 01. 점차 체력이 떨어져간다. 02. 추가되는 기능/ 선호목록 만들기, 선호-비선호, 세부정보 모달 03. 꼬여버린 임포트 1. PR 메세지 + 리뷰(답변) Q. 대략적인 파일 임포트 : 위에서 보실 수 있다시피 굉장히 파일이 엉켜있습니다. 이를 해결하기 위해서 붙잡고 있었지만 도저히 해결할 수 없었습니다. 이렇게 된 원인을 제 생각대로 말하자면, 컴포넌트의 불명확한 정의라고 생각합니다. 컴포넌트를 재활용이 가능한 엘리먼트 단위정도로 생각했습니다. 때문에 파일 안에 템플릿과 그 엘리먼트 용도에 맞는 함수들을 넣었습니다. 그 결과 다른 곳에서 그 함수를 필요로 한다면 그 파일을 임포트하게 되고, 이것이 상하관계 없이 이어지며 결국 서로가 서로를 임포트하는 상황에 이르렀습니다. 이 상황이 굉장히..

[우테코] Lv. 1 런치 구현 - 1단계(2차)

배경지식! 01. 여기서부턴 나혼자 리팩토링! 02. 악 테스트 어려워 1. PR 메세지 1. 구상 * 템플릿 분리: 일단 동적 컴포넌트로 따로 변경되지 않을 컴포넌트는 템플릿 파일에 따로 저장하였습니다. 파일로 분리해 놓는 것이 좋을 수 있지만, 적어도 지금은 분리되어있으면 가독성만 해친다고 생각하였습니다. 다만, 모달창을 하나의 폼으로 다시 정의한 과정에서 템플릿이 너무 길어졌다는 문제가 있습니다. 거슬리기는 하지만 따로 빼는 것은 다른 컴포넌트와의 통일성을 해친다고 생각해 동일하게 넣었습니다. * 컴포넌트: 일전에 했던 것처럼 컴포넌트 안에 이벤트리스너를 추가하는 함수를 구현했으나 로직들을 다른 파일에 만들어 불러오는 식으로 만들었습니다. 다만 이런 경우에 다른 파일에 종속된다고도 생각이 들었습니다..

[우테코] Lv. 1 런치 구현 - 1단계(1차)

배경지식! 01. 컴포넌트란 무엇일까. 컴포넌트 중심 개발이 미션 목표 02. 주어진 탬플릿으로 보다 원활한 css but 많아진 기능구현 03. 지금까지 중 제일 시간이 부족. 3일 중 마지막날에 이르기까지 못한 기능구현 04. 설계.. 했다고 생각했는데 어디까지가 도메인이죠? 1. PR 메세지 1. 구상 * 컴포넌트 분리: 컴포넌트를 처음 접했습니다. 때문에 컴포넌트가 무엇인지를 익히는 것이 가장 우선이었습니다. 페어와 이야기한 끝에 컴포넌트를 html 태그 중 기능을 가지는 것으로 정의하고 이를 하나의 파일로 만들었습니다. 해당 컴포넌트 파일은 컴포넌트를 랜더링할 수 있게 템플릿을 가지고 있고, 이벤트-모달창을 키거나, 필터를 하는 등-를 가지고 있는 경우 이벤트를 부여하는 함수를 포함했습니다. *..

[우테코] Lv. 1 로또 구현 - 2단계(웹) 2차 PR 후기_최종

배경지식! 01. 2단계는 1차 PR을 보내고 리뷰를 받고 그에 수정을 하고 2차 PR을 보내 머지까지 된 과정을 적었다. 02. 기술적인 부분에서 많은 아쉬움이 남는다. 03. 해야할 것들이 눈에 보이는데도 시간이 없고 내 마음의 여유가 없어 구축하지 못했다. 04. 해야할 것들과 배워할 것들이 쌓여있는데 코드도 짜기에도 바쁘고, 짠다고 해서 배움이 없으니 맘에 들지도 않는 상태이다. 지난 PR 때 작성한 질문에 대한 리뷰에 대한 리뷰 Q. 인터페이스와 상호작용하는 경우가 처음이라 이걸 여러 파일로 나누어도 되는 것인지, 이벤트 별로 나누는 것이 좋을지, 화면 별로 나누는 것이 좋을지, 혹은 다른 기준이 있을지 궁금합니다. A .크게 화면(페이지)에 따라 나누기와 컴포넌트에 따라 나누기가 있을거 같습니..

[우테코] 어쩌다 면담

고민이 많은 날이 계속 되었다. 구조적으로 어느 것이 좋은 건지 모르겠고, 사람들은 이렇게 하고 있다고 말하는데 그걸 동의할 수 없었다. 사람들은 나름의 근거를 대며 그렇게 이어가고 있었고, 나는 그런 근거도 없이 일단 그게 아닌거 같은데, 하는 마음만 들었다. 그래서 일단 여러가지를 따라 이미 만든 코드를 분리해보고자, 리팩토링해보고자 했지만 손을 댈수록 이상해졌고, 이게 맞는 방법인지 의문이 들었다. 그러다가 코치분들이랑 이야기를 할 기회가 생겼다. - 내가 가장 고민을 하던 구조에 대해 질문을 했고, 왜 그걸 고민하는 지에 대해 물어보셨다. 결국 이야기의 종합적인 결론은 다른 사람을 너무 의식하지 말고 맞다고 생각하는 것을 하라는 것이다. 전공자이니 뭐니 해도 물어보면 사실 정답이 없는 부분도 많고..

[우테코] Lv. 1 로또 구현 - 2단계(웹) 1차 PR 후기

배경지식! 01. 2단계는 웹으로 인터페이스를 만들어야해서 html, css를 연결해야 했다. 02. 기간은 길었고 많은 리뷰를 받으려면 빠르게 했어야 했다. 03. 바닐라 자바스크립트로 한 경험이 적어서 일단 index.js로 몰아넣었는데 후에 이걸 분리하기가 어려웠다. 04. 다른 사람들은 뷰를 만들거나 기능 단위로 구분하거나 했는데.. 나느.. 1단계 PR 리뷰의 리뷰 일단 1단계를 페어 끝내고 받은 피드백들과 질문에 대한 답변은 아래와 같다. 1. 작성 의도 1) mvc패턴에 대한 고민 : 코치님은 본 미션에서 나눈다면 어떤식으로 나누실지 궁금합니다. > M (모델): 데이터와 비즈니스 로직을 관리 V (뷰): 레이아웃과 화면을 처리 C(컨트롤러): 명령을 모델과 뷰 부분으로 라우팅이라는 기준에 ..

[우테코] Lv. 1 로또 구현 - 1단계(페어) 후기

배경지식! 01. 로또는 프리코스때 했었다. 02. 인덴트(깊이)가 하나로 제한되었고, 인수도 2개로 제한되었다. -크게 상관은 없었다.- 03. 1단계는 페어로 이루어져 하나의 컴퓨터로 같이 코드를 짠다. 04. 기간은 총 3일이며 야근도 했다. 05. 하나의 컴퓨터로 돌아가며 진행하며 이번에는 시간을 기준으로 했다. 이번 미션은 이미 해봤던 거라 괜찮을 줄 알았는데 여전히 같이 하는건 에너지가 많이 소모된다. 이전에는 미션이 어떻게 진행되는 지에 대해 적응하는 기간이었다면, 이번에는 생각해보던 것들을 조금이나마 시도해보는 시간이었다. 저번 교육때 말씀하시기로 pr에는 코드 작성에 대한 내용을 담으라고 해서 이번에는 내가 의도한 바와 궁금한 점을 적었다. 아래가 그것이다. 1. 작성 의도 1) mvc패..

[우테코] Lv. 1 자동차 경주 구현 - 1단계(페어) 후기

배경지식! 01. racing은 비슷한 요구사항으로 최종 코테를 준비할때 구현해본 경험이 있다. 02. 기존에는 우테코에서 제공하는 유틸..어쩌구를 쓸 수 있었고 이번엔 사용하지 못한다는 것 빼고 다 동일 조건이었다. 03. 1단계는 페어로 이루어져 하나의 컴퓨터로 같이 코드를 짠다. 04. 기간은 총 3일이며 오전에는 교육/팀미팅이 있어 못했고 오후에만 했다. 05. 따지자면 17시간정도 짠 거 같다..ㅎ (이렇게 오래 걸릴 일이 아니었는데..?) 06. 누가 노트북을 잡고 쓸지는 커밋하면 체인지하기로 했는데 둘이 의견도 잘 내고 말도 잘 해서 크게 상관은 없었다. 악! 첫 미션이었다. 어려운 미션은 아니었다. 하지만 어려웠다... 일주일 제한시간에서 3일로 줄은 상황이었고 같이 해야 하니 혼자 계속 ..

[우테코] 코딩테스트

대망의 코딩테스트이다. 우테코 코테는 잠실에서 보았다. 예전 직장의 출근길과 동선이 겹쳤는데 그래서 그런가 마음이 이상하게 들뜨었다. 이제 정말 마지막 관문이라는 기분이 함께 들어서인가. 분위기는 굉장히... 편안했다. 다들 웃어주시며 안내를 해주었고 잠실 캠퍼스 안에가 엄청 잘 꾸며져있었다. 확실히 싸피랑 대조적이었는데 무엇이 더 낫다는 건 없고, 그 기업만의 문화, 분위기는 확실히 있는 것 같았다. ---- 코테 문제 코딩테스트...는 아마 찾아보면 사람들이 이미 많이 올려놓았을 것 같은데 메뉴 추천 시스템을 만드는 것이었다. 기능 조건으로는 뭐 일주일의 카테고리가 3번이상 겹치면 안된다거나 각 코치의 일주일 식단에 동일메뉴가 있어서는 안된다거나, 중요한건 못먹는 음식을 input받아서 이를 제외시켜..

[우테코] 프리코스를 마치고 코테를 준비하며

프리코스가 끝이 났다. 혹시 가게될 코테까지 시간이 남아있기 때문에 공부를 해야지 싶었다. 그리고 싸피를 준비하는데에 너무 시간을 쓴 나머지 공부는 못했다... (속상). 그래도 하나도 안한 것은 아니었는데, 코테까지의 목표는 세 개였다. 1. 새로운 파일 구성법 익숙해지기 더보기 1.은 내가 프리코스가 끝나고 처음으로 피어리뷰를 요청했는데, 2분께서 리뷰를 해주셨다. 그 중 한 분의 코드를 보면서 ' 와,,, 이렇게 짤 수 있구나,,' 싶은 생각이 들었다. 소소하게 객체를 require할 때 { 객체, 객체 } 이런식으로 받아오는 거나, boolean을 return값으로 내보내서 그걸 다음 함수에 바로 이용하는거, constant의 존재.. 같은거..를 처음 알았다. 그래서 더 아쉬웠는데, 이런걸 처음..