ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20.04.20 ~ 20.04.24 TWIL
    개발 일기장/TWIL 2020. 4. 26. 23:48

    @Builder.Default 애노테이션

    기본값을 넣어주고 싶다면 @Builder.Default를 사용하면 된다.

    
    // Before
    @Builder
    public class BookStore {
        // 바뀌지 않을 고정값이었기에 final을 선언했었다
        private final String name = "조르바의 서점";
    
        private String address;
    
        private int bookCount;
    
    }
    
    // After
    @Builder
    public class BookStore {
    
        @Builder.Default
        private String name = "조르바의 서점";
    
        private String address;
    
        private int bookCount;
    
    }

     

    Spring RestTemplate 사용 시 모든 요청에 동일한 query parameter 심어주기

    query parameter로 api key 값을 매번 보내주어야했는데, 모든 url마다 query parameter로 api key를 심어주어야 하나 고민하면서 너무 비효율적인 것 같아 구글링을 해보니 방법을 찾았다.

     

    모든 요청에대해 api key를 query paramter에 담아주는 방법으로 RestTemplate의 Interceptor를 사용했다.

    RestTemplate restTemplate = new RestTemplate();
    
    // do.....
    
    
    restTemplate.setInterceptors(singletonList(
                    (request, body, clientHttpRequestExecution) -> {
                        URI uri = UriComponentsBuilder.fromHttpRequest(request)
                                .queryParam("key", "api 키 value")
                                .build().toUri();
    
                        HttpRequest modifiedRequest = new HttpRequestWrapper(request) {
                            @Override
                            public URI getURI() {
                                return uri;
                            }
                        };
                        return clientHttpRequestExecution.execute(modifiedRequest, body);
                    }
            ));

     

    개인적으로 약어는.... 안쓰는 방향으로 개발해야겠다.

    다른 사람의 코드를 수정할 때 약자로 되어있으면 의도를 파악하기가 어려웠다.

     

    내가 그렇게 짜면 남도 똑같이 느낄 것이다. 조금 길어지더라도 의도를 파악할 수 있는 변수명 짓기! 우리팀이 추구하는 방향이기도 하다.

     

    의도가 보이는 변수명을 짓자! 아니라면 주석이라도 남기자.

    회사 코드 중에 유추조차 어려운 변수명이 있었고 외부에 제공하는 필드였기에 용도를 찾을 수 없었다. 결국 그 필드를 사용하고 계시는 다른 서비스 담당자분에게 문의를 해야했다.ㅠ

     

    변수명 짓기가 어렵긴 하지만, 의도를 표현하기 어렵다면 주석이라도 남겨두자.

     

    새로운 언어를 배워보자


    주 언어로 써온 건 java뿐이지만, 첫 회사에서 프론트, 백엔드가 나눠져있지 않았기에 운 좋게도(?) html, css, javaScript, jQuery 등을 경험해볼 수 있었다.

     

    그러나 프론트는 걷핥기 수준이었어서 언어를 깊게 파보진 않았다. 주력해야 할 java도 약했기에... 인턴을 하면서 kotlin을 써봤지만, java와의 연관성이 크기에 완전히 새로운 언어를 배워보고 싶었다.


    새로운 언어를 배워두면 시야를 넓히는데 큰 도움이 된다는 조언을 듣고 더욱 새로운 언어 하나를 배워야겠다는 마음이 생겼다.


    후보는 파이썬과 Go였다. Go가 내게 마음에 더 끌리는게 있어(캐릭터가 더 귀여워서..?) Go를 배우기로 정했다. 알고 지내는 개발자분의 추천과 노마드 코더의 니콜라스 형님의 추천이 컸다 ㅎㅎ


    인프런 강의를 끊고 hello world 찍어보고 if, else 찍어본게 현재까지 진행상황이지만 재밌다!

     

    인프런 JPA 기본강의 수강완료

    Spring Data Jpa를 생각했는데, JPQL을 중심으로 JPA 기본에 대한 강의였다. 기초를 잡는데 좋았지만, 다른 인프런 강의 대비 싼 가격은 아니라서 사람마다 부담이 될 순 있을 것 같다.

     

    이건 코틀린을 조금은 써볼겸, 코틀린으로 작성하면서 학습한 내용을 깃허브에 정리했다.


    기초는 강의를 통해서 들었지만, 더 필요한 지식에 대해서는 책(자바 ORM 표전 JPA 프로그래밍 - 김영한 저)을 통해 습득할 생각이다.

     

    '개발 일기장 > TWIL' 카테고리의 다른 글

    20.05.04 ~ 20.05.08 TWIL  (0) 2020.05.09
    20.03.30 ~ 20.04.03 TWIL  (0) 2020.04.04
    20.03.23 ~ 20.03.27 TWIL  (0) 2020.03.30
    20.03.16 ~ 20.03.20 TWIL  (0) 2020.03.21
    20.03.09 ~ 20.03.14 TWIL  (0) 2020.03.15
Designed by Tistory.