본문 바로가기

전체 글43

정적 팩토리 메서드(Static Factory Method) 맛보기 이번에 프로젝트를 진행하면서 정적 팩토리 메소드를 도입해보았는데, 동료들에게 꽤 좋은 평가를 받아 이번 주제로 글을 작성해보려고 한다..!! 이번 글을 한줄 요약하자면 정적 팩토리 메소드란 무엇이고 도입 배경을 소개하는 것이다. 정적 팩토리 메소드 정적 팩토리 메소드는 23개의 디자인 패턴을 수록한 'GoF' Design Patterns에서 소개하고 있는 팩토리 메서드를 응용한 디자인 패턴이라고 생각하면 된다. 오호라.. 그렇다면 팩토리 메소드를 이해하지 않고는 정적 팩토리 메소드를 이해하기란 어렵다는 말씀?! 꼭 그렇지는 않지만 완전한 이해를 위해 GoF 디자인 패턴 책에서 소개하고 있는 "팩토리 메서드"를 먼저 알아보고 "정적 팩토리 메서드"에 대해 설명하겠다. 팩토리 메서드(Factory Metho.. 2024. 2. 25. 더보기
Naver Open API 연결 어렵나? 요즘 프로젝트가 끝나서 여러가지 삽질을 하고 싶어졌다!! 그러다 문득, 학부생 때 네이버 지도와 연결하는데 실패한 경험을 떠올렸다. 그래서 이번 기회에 Naver Open API를 사용해보면서 네이버 지도 api까지 연동해보고자 한다. 오늘은 가장 쉬운? papago API를 연동해보고자 한다. 별로 어렵지 않으니 블로그 내용만 보고도 바로 적용 가능할 것이다!!! Naver Open API Setting 프로젝트에 적용하기 전에 Naver Open API 세팅을 먼저 진행해보자~ https://developers.naver.com/main/ NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 .. 2023. 11. 7. 더보기
Java 8 Functional Interface에 대해 알아보자. c++로 코딩 테스트를 해왔는데, 이제는 주로 사용하는 java로 바꿔야겠다고 다짐했다..!! 그런데, java로 코딩 테스트를 준비하면서 처음보는 구조의 코드를 보았다. 바로 정렬 함수인데 1 2 3 4 List testList = new ArrayList(); testList.add(3); // testList.sort((e1, e2) -> e2 - e1); 위 코드처럼 List를 정렬을 하고 있는 것이다!! 그런데 sort 함수를 자세히보면 1 2 3 4 5 6 7 8 9 default void sort(Comparator c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator i = this.listIterato.. 2023. 10. 31. 더보기
[Spring] 서비스에 인터페이스를 구현하는 이유는 뭘까? (ServiceImpl) 최근 회사에서 프로젝트를 진행한다고 글을 많이 못썼다 ㅜㅜ 그럼에도 킹명주의 백엔드 일지가 벌써 조회수가 4000회가 넘었다!! 정말 감사드립니다 ~~~ 요번 주제는 프로젝트를 진행하면서 궁금했던 부분을 다루고자 한다. 레거시 코드들을 보면 진짜 100에 99는 요런식으로 서비스를 구현할 때는 인터페이스를 항상 선언해주는 패턴을 사용하고 있었다. 그래서 나도 따라쓰긴 했는데,, 왜 인터페이스를 상속하는지 궁금해졌다. 사전 지식 해당 내용을 확실하게 이해하기 위해서는 사전 지식이 조금 필요하다. 만약 알고 있는 내용이라면 본문으로 쭈욱 스크롤!! Proxy 일단 proxy에 대해서 알고 있어야한다. proxy는 어떤 일을 대신 시키는 것! 이라고 생각하면 된다. 약간 회사버전으로 표현해보았는데, 약간은 개.. 2023. 10. 13. 더보기
[정적 코드 분석] sonarQube 사용해보기 "구글 엔지니어는 이렇게 일한다" 라는 책을 읽고 있는데, 정적 분석에 대한 중요성을 강조하고 있었다. 그래서 호기심이 생겨 정적 분석을 해보고 싶었는데,, 현재 우리 팀에서는 사용하고 있지 않다.. ㅜㅜ 그래도 포기할 수 없어서 팀 몰래 코드 정적 분석 툴을 도입해보고자 한다!!! (로컬에서 나만 사용할 예정~~) 정적 분석이 뭐야? 정적 분석이란 소프트웨어 개발 단계에서 소스 코드를 실행하지 않고도 코드의 구조, 문법, 품질 등을 분석하는 것을 의미한다!! 그렇다면 굳이 소스 코드를 돌려보지 않고 분석을 하는 이유는 무엇일까? 1. 버그와 결함의 조기 발견이 가능하다. 코드를 실행하기 전 상태이기 때문에 버그를 조기에 발견하여 수정할 수 있고, 이후 소프트웨어 개발 과정에서 발생할 수 있는 비용과 시.. 2023. 8. 1. 더보기
[Spring] Static Class, Custom Builder 소개 요즘 날이 너무 더워서 사망 직전까지 가고있다.. 근데,, 비까지 많이 오니 최악이다.. 그러니 블로그라도 활기차게 써야겠다 ^ 3^ 요번에는 Static Class와 Custom Builder 패턴에 대하여 소개하겠다. 이 부분도 현업에서 가장 많이 사용하고 있는 부분인데, 가독성 좋은 코드를 짜기에 매우 좋다고 판단하여 이번에 소개하고자 한다. Static Class 현업에서 Static class는 클래스 내부에서 클래스를 지정할 때 사용하고 있다. 아 !! 그러면 Static Class는 Inner Class를 구현하기 위해 활요하는 것!! 이라고 생각하면 쉽다. 그렇다면 어떤 장점이 있을까? 개인적인 경험을 바탕으로 가장 좋았던 장점 두 가지를 간단하게 소개하자면 1. Package 정리 저~~.. 2023. 7. 22. 더보기