
유닛 테스트를 작성하다 보면, 내 코드가 테스트 불가능한(혹은 어려운) 경우가 있다. 이럴 때면 당혹감과 함께 여러가지 의문이 밀려든다. '왜 내 코드는 테스트하기 어려울까?' '어떻게 수정해야 테스트가 쉬워질까?' '근데 테스트를 위해 구현부를 수정하는 게 좋은 선택일까?' 이 의문들을 해소하고자 구글링을 해보았고 유명인사 향로님의 블로그에서 좋은 글들을 발견했다. 1. 테스트하기 좋은 코드 - 테스트하기 어려운 코드 2. 테스트하기 좋은 코드 - 제어할 수 없는 코드 개선 3. 테스트하기 좋은 코드 - 외부에 의존하는 코드 개선 위 글들을 나의 언어로 조금 더 간결하게 정리해보고자 한다. (참고로 여기서 다루는 테스트는 '유닛 테스트'이다) 목차는 다음과 같다. 1. 테스트하기 어려운 코드 2. 테스..

많은 사람들이 스스로 결정을 내리기 어려워 한다. 중요한 결정일수록 쉽게 결정을 내리지 못하고 우유부단하게 행동하거나 타인에게 결정을 맡긴다. 삶에서 마주하는 많은 문제들이 명확한 정답이 존재하지 않는 문제여서 그런 듯하다. 난생 처음만난 상황도 있고, 어느 쪽도 시원한 해결방안이 될 수 없는 상황도 있기 때문이다. 그럴 때면 결정권을 포기하고 제3자에게 결정을 떠넘기곤 한다. 모든 사람들이 처음부터 이런 성향이었던 건 아닌 것 같다. 원인을 추측하자면, 초등교육부터 (혹은 그 전부터) 겪게 되는 한국의 획일적인 분위기가 사람들로 하여금 스스로 결정하지 않고 정해진 하나의 정답을 찾는 태도를 갖게 한 것이라 생각한다. 한강의 기적이라 불리는 빠른 경제 성장의 배경에는 학생과 노동자들을 단기간에 압축 교육..

1. 내 꿈은 뭘까? 🤔 "라이언은 꿈이 뭐예요?" 나를 항상 긴장하게 만드는 질문이었다. 나는 평소에도 혼잣말을 중얼거리며 이 질문에 대한 대답을 준비했다. 이 질문에 확고한 신념과 목표를 드러내지 못하면 내 밑천이 드러나는 느낌이 들어서였다. 이렇게 꿈에 무게감을 느끼게 된 건 창업 시절의 영향이었다. 내가 속했던 창업 팀의 대표는 인생에서 만난 사람 중 꿈이 가장 크고 확고했다. 처음 만난 자리에서 그는 당당히 "에어비앤비를 뛰어넘는 기업을 만들겠다"는 꿈을 이야기했다. '뭐? 에어비앤비를 넘겠다고?' 놀람 반 의심 반의 마음이 들었다. 아니, 솔직히 처음엔 의심이 90이었다. 그런데 한 시간이 넘는 커피챗 내내 반짝이는 안광을 보고, 그의 꿈이 진짜임을 알 수 있었다. 대표가 굉장한 꿈돌이여서인지..

공부를 하던 중 실행 컨텍스트와 관련된 개념이 쉽사리 정리되지 않았다. 실행 컨텍스트, 스코프, 렉시컬 환경 등 비슷해 보이는 개념들 사이에서 혼란에 빠졌다. 실행 컨텍스트 개념을 한번은 확실히 이해하고 넘어가고 싶다는 마음에 모던 자바스크립트 Deep Dive 책을 바탕으로 관련 내용을 정리하고자 한다. 용어 정리 실행 컨텍스트(Execution Context) 실행 컨텍스트란 무엇일까? 공신력이 있는 글들에서 실행 컨텍스트에 대한 정의를 발췌해 정리해봤다. 코어 자바스크립트: "실행할 코드에 제공할 환경 정보들을 모아놓은 객체” 모던 자바스크립트 Deep Dive: "식별자(변수, 함수, 클래스 등의 이름)를 등록하고 관리하는 스코프와 코드 실행 순서 관리를 구현한 내부 매커니즘으로, 모든 실행 컨텍..

오늘부터 우테코 안드로이드 코치 제이슨이 열어주신 북 스터디가 시작됐다. 스터디 이름은 제이슨의 가르침을 받아 무럭무럭 자라나자는 뜻을 담아 '제이슨의 방울토마토들 🍅'이라고 지어졌다. 오늘 방울토마토 크루들과 함께 논의하고 학습했던 내용을 정리하려 한다. 사실 나는 이 스터디에 들어가기에 앞서 고민을 좀 했다. '프론트엔드 관련해서 공부할 것도 이미 차고 넘치는데, 객체지향을 공부하는 게 사치가 아닐까' 하는 생각 때문이었다. 그럼에도 스터디를 시작한 이유는 다음과 같다. 1. 객체 지향을 공부하는 일은 단순히 방법론을 익히는 게 아니라, 좋은 구조를 보는 시각을 기르는 것이라 생각했다. 2. 객체지향에 더 능숙한 안드로이드 크루들에게 혼나가면서 빠르게 배우고 싶었다. 3. 재밌어 보였다. 스터디 첫 ..

SEO란?SEO는 Search Engine Optimization의 약자로, Google과 같은 검색 엔진에서 상위 노출될 수 있도록 사이트를 최적화하는 일을 의미한다. 쉽게 말해 사용자가 특정 검색어를 쳤을 때, 우리 서비스가 최대한 상단으로 노출될 수 있도록 최적화하는 작업이다. 수많은 웹사이트를 돌아다니며 정보를 수집하는 웹 크롤러에게 적절한 정보를 제공함으로써 최적화를 이뤄낼 수 있다. 구현 배경숙박 예약 서비스는 SEO 중요도가 높다. 예약할 숙소에 대한 검색 결과를 따라서 자연 유입되는 케이스가 많이 발생하기 때문이다.그렇기 때문에 우리 서비스에서도 SEO가 중요했다. 특히 숙소 상세 페이지에 대해서 SEO를 구현하는 일이 중요했다. 처음엔 SEO가 단순히 Meta 태그를 통해 페이지에 대한..

서론 우아한테크코스 7기, 8기, 그리고 이후의 기수에 지원하는 분들께 도움이 되고자 글을 작성한다. 이번 6기를 준비하면서 이전 기수 지원자분들의 글들을 많이 참고했다. 내가 도움을 받았던 만큼 나도 다른 분들께 도움을 드리고 싶었다. 사실 나는 합격한 특정 지원자의 케이스를 그대로 따라 간다고 합격 가능성이 올라간다고 생각하진 않는다. 각 케이스가 성공했던 본질적인 이유를 학습하는 것만이 도움이 될 수 있다 생각한다. 그렇기에 이 글을 읽는 지원자분이 계신다면, 여러가지 후기 글들을 그대로 믿고 따라하기보다는 취사선택하여 설득력 있는 부분만 잘 챙겨가셨으면 좋겠다. 우테코 6기 선발과정은 지원서 작성 - 4주 간의 프리코스 - 최종 코딩테스트 순으로 진행됐다. 지원서를 제출한 뒤 모든 인원이 프리코..
- Total
- Today
- Yesterday
- 우테코 6기
- 객체지향원칙
- SEO
- 예고르
- 회고
- 레벨 1
- 브라우저
- 이벤트 전파
- 우테코 프론트엔드
- dom
- 자소서
- testable
- 엘레강트 오브젝트
- observer
- 우테코
- 우아한테크코스
- 프리코스
- 옵저버 패턴
- 컴포넌트
- 레벨2
- 프론트엔드
- 객체지향
- 디자인 패턴
- 유닛테스트
- 테스트코드
- next js seo
- 조영호
- next js
- 우아한테크코스 6기
- 5월2주차
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |