본문 바로가기
728x90

Programming/하루 일기28

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.
전역변수 테스트가 문제다 Enum 사용시 static 메소드를 사용하게 된다 내부에 필드를 지정해주고 바꾸게 되는데 그렇게 되면 테스트 전체에 영향을 끼친다 어떻게 하면 좋을까... 2020. 6. 16.
쓸데 있는 것만 공부하자 당장 쓸거 아니면 공부해도 다 까먹는 심지어 어디에 적어놔도 어디에 적었는지 까먹는다 당장 사용할 것만 공부해놓으면 앞으로 계속 반복적으로 사용할건데 왜 쓰지도 않을 것을 그렇게 공부해놓고 나중에 까먹고 다시 돌아가서 시간낭비 하는가 시간이 금이다. 쓸 것만 하자 알고리즘은 간단히 알고리즘 풀 때는 최대한 받아온 값들을 사용하여 코드를 최소화하려고 해야겠다. for (int i = 0; i < m; i++) { int x = sc.nextInt(); broken[x] = true; }바로 값을 받아서 검증하는 과정을 넣어서 최대한 코드를 생략 그리고 전체 플로우를 함수의 input과 output을 사용해서 대략적인 그림을 그리고 개별적인 함수들을 구현하는 방식으로 가는 게 좋겠다. 하나에 집중하다보면 전.. 2020. 6. 15.
하고 싶은 것은 많은데 시간은 왜 이렇게 없냐 스프링부트 공식 문서 정독 예전에 만들던 토이프로젝트를 잠깐 보니 스프링부트를 다시한번 정리하고 싶은 마음이 굴뚝같이 들었다. gradle.build에 buildscript가 무엇인지 감만 잡고 만들다 보니 깊이 알고 싶다. 사실 그레이들 공식문서 번역을 어느정도 했었는데 스프링 프로젝트에 도움이 된건지 아닌건지도 모르겠다. 아니면 그냥 번역만 해놓고 다시 한번 안봐서 머리속에 지워진 것일 수도 있다. 리팩토링 해야겠다. (역시 TDD 사이클...) 백기선님이 예전에 스프링부트 공식문서를 정독하셨던데 하루에 1시간씩 30일 조금 넘게 걸리신 것을 보면서 도전의식에 불을 짚혀버렸다. 이번에는 번역한답시고 꼼꼼하게 보기보다는 코드를 따라가면서 중요한 부분만 간단하게 기록하는 식으로 남기는게 좋을 것 같다. .. 2020. 6. 12.
728x90