본문 바로가기
728x90

하루일기11

역시 좋은 회사는 좋은 geek을 원한다 최근 규모가 큰 회사들의 인터뷰 후기들을 보면서 공통적으로 느끼는 것은 어느 한 분야를 끝장내는 geek을 원한다는 것이다. 심지어 네이버의 후기를 보면 문제해결을 위해 커널까지 분석하는 것을 종종 볼 수 있다. 예전 처음 코딩을 시작했었을 때 읽었던 coding-interview-university로 유명한 John Washam의 Why I studied full-time for 8 months for a Google interview라는 글이 생각이 났다. 내용을 보면 대부분이 데이터구조와 알고리즘 그리고 컴퓨터 사이언스에 대한 내용을 깊이 있게 학습했다는 것을 알 수 있었다. 어느정도 깊이 팠느냐하면 자기만큼 공부할 필요가 없다고 할 정도로 경고할 정도였다. 제목에서 보다시피 8개월간의 시간을 투자.. 2020. 7. 9.
클린코드 8기가 끝났다 8주간의 기간이 드디어 끝났다 결론만 얘기하자면 혼자서 이룰 수 없었을 많은 것들을 배웠다 한편으로는 그런 현실이 슬펐다 회사에서는 코드 리뷰를 하지 않는다 이번에 처음으로 코드 리뷰를 받으면서 도대체 나와 같은 경력동안 코드리뷰를 받는 사람들은 얼마나 많은 것들을 배웠을까 라는 생각에 잠이 오지 않았다 실제로 이번과정을 하면서 두달동안 잠을 4~5시간 정도 잔 것 같다 20살때부터 입버릇처럼 해왔던 말이 잠은 죽어서자면 된다 였다 그만큼 잠안자고 투자하는 것에 익숙해있었다 하지만 이번에는 달랐다 미션 하나하나 진행하면서 내가 다른 사람들보다 얼마나 부족한지 뼈저리게 느꼈다 두달동안 오브젝트, 리펙토링, 테스트주도개발, 클린 소프트웨어, 이펙티브 자바를 샀다 그리고 그 중 테스트주도개발과 리펙토링을 다보.. 2020. 7. 4.
테스트에 static으로 mock을 만들어서 사용하면 편하네 마지막 미션 중 Test 케이스를 보니 static 으로 mock 데이터를 만들어놓고 사용하는 방법이 참 좋았다 자칫 여러 개를 여기저기 만들어 놓으면 헷깔리는데 한꺼번에 사용할 수 있으니 좋지 아니한가. 잠깐 전역적으로 사용할 데이터가 있으면 이렇게 사용하는게 좋겠다 public class AnswerTest { public static final Answer A1 = new Answer(UserTest.JAVAJIGI, QuestionTest.Q1, "Answers Contents1"); public static final Answer A2 = new Answer(UserTest.SANJIGI, QuestionTest.Q1, "Answers Contents2"); } 2020. 6. 27.
null == undefined? 자바스크립트 내용을 검증하는 과정에서 null이 undefined까지 커버 할 수 있다는 것을 보았다. (그전에는 그렇게 크게 생각해보지는 않았다) class Assert { static notNull(data) { if (data == null) { throw "Null point exception" } } }위의 코드는 아래의 테스트를 모두 통과한다 describe("assert integration test", function () { it("notNull", function () { expect(() => Assert.notNull()) .toThrow(); }); it("notNull with undefined", function () { expect(() => Assert.notNull(und.. 2020. 6. 26.
@JsonNaming이 편리하네 기존 POJO에서 Jackson 바인딩 시, snake_case를 @JsonProperty로 필드마다 매번 변경하는 것이 번거로웠다. 뭔가 클래스 레벨에서 바로 바인딩 할 수 있는 옵션이 있을 것 같다 해서 찾아보니 stackoverflow에 @JsonNaming이라는 어노테이션에 관련된 내용이 있었다 한마디로 아래의 코드를 public class OAuthToken { @JsonProperty("access_token") private String accessToken; @JsonProperty("refresh_token") private String refreshToken; @JsonProperty("token_type") private String tokenType; private String na.. 2020. 6. 25.
테스트는 주요 로직을 먼저 해도 괜찮네? TDD를 하면서 항상 의존성의 제일 하단에 있는 클래스 먼저 테스트를 했었다 그 이유는 의존하는게 없는 가장 구현하기 간단한 녀석이었기 때문이다 하지만 사다리 타기 게임을 하면서 느낀 것은 핵심 비즈니스 로직을 먼저 구현하는게 더 나을 수도 있겠다 다는 것이었다 사다리 한점을 나타내기 위해 Point 라는 객체를 놓고 그 위에 두 점을 이은 Line 이라는 클래스와 Line들로 이루어진 Ladder를 생성하였다. 하지만 만들면서 느끼점은 각각의 상위의 의존성으로 올라갈 수록 의존하고 있는 객체의 데이터를 자꾸 의식한다는 것이었다. 모름지기 객체의 응집도를 높히고 결합도를 낮추려면 책임주도개발 (일단은) 최고라고 생각한다 객체의 일괄된 행동에 따라 클래스를 작성하게 되면 그 행위들을 하나의 일괄적인 응집도.. 2020. 6. 25.
728x90