본문 바로가기

프로그래밍49

팩토리 함수 이름짓기 최근에 이펙티브 코틀린(링크)을 재미있게 읽고 있다. 코틀린 기초가 빈약해서 조금 어려운 감은 있지만, 코틀린 외에도 개발 전반에 대한 이야기가 종종 나와 유용하다. 읽던 도중, 팩토리 함수에 대한 언급이 나와 정리해본다. 출처: 마르친 모스칼라, 『이펙티브 코틀린』 (인사이트, 2022), 206~211pp. (아이템 33 생성자 대신 팩토리 함수를 사용하라) 팩토리 함수 팩토리 함수는 생성자의 역할을 대신 해주는 함수를 뜻한다. 팩토리 함수를 생성자 대신 사용할 경우, 아래와 같은 장점이 생긴다. 생성자와 달리, 이름을 붙여 특별한 객체를 생성하는 경우에 대한 의미를 전달할 수 있다. 함수가 원하는 형태의 타입을 리턴할 수 있다. 예를 들어, listOf는 List 인터페이스 중 적절한 클래스(예: .. 2022. 4. 3.
Spring Cloud OpenFeign 테스트하기 본 글은 이전에 작성된 글 (링크) 에서 이어지는 글입니다. 개요: 테스트의 두 가지 방법 Feign 테스트하기: 직접 요청 보내기 직접 서버에 요청을 보내 테스트하면 다음의 이점을 누릴 수 있다. 테스트용 서버를 통해 통합 테스트처럼 진행할 수 있다. Mock Server를 통해 테스트할 경우, 실제 서버와 충돌이 일어나도 알 방법이 없다. 그러나 서버와 직접 통신하게 되면, 기능 외적인 문제에 대해 미리 대응할 수 있다. 코드는 아래와 같다. (Java로 작성) //테스트용 서버에 맞게 환경을 조절하고, logger Level을 FULL로 지정하여 상세한 로그를 출력한다. @SpringBootTest(properties = {"env=test", "feign.client.config.default.l.. 2022. 3. 7.
Spring Cloud OpenFeign 사용하기 본 글은 아래의 링크를 바탕으로 작성되었다. 우아한형제들 기술 블로그 [우아한 feign 적용기]:https://techblog.woowahan.com/2630/ Bealdung [Introduction to Spring Cloud OpenFeign]: https://www.baeldung.com/spring-cloud-openfeign Bealdung [Defferences Between Betflix Feign and OpenFeign]: https://www.baeldung.com/netflix-feign-vs-openfeign Intro Spring Cloud OpenFeign Docs: https://spring.io/projects/spring-cloud-openfeign about Feign.. 2022. 3. 7.
Travis CI와 github 연동 중 Test Failed가 발생할 때 본 글은 Travis CI 적용 중 겪은 오류와 해결법을 정리한 글이다. 오류를 겪는 분들께 큰 도움이 되기를 바란다. 기본 설정 기본적으로 설정한 .travis.yml의 구성은 아래와 같았다. # 언어 및 jdk 버전 language: java jdk: - openjdk11 # 푸시할때 검사가 수행되는 브랜치 branches: only: - master - develop # Travis CI 서버의 HOME # 디렉토리에 의존성을 캐싱하여 반복작업 개선 cache: directories: - '$HOME/.m2/repository' - '$HOME/.gradle' script: "./gradlew clean build" # CI 실행 완료시 메일로 알람 전달 notifications: email: re.. 2021. 11. 2.
GSLB의 이해와 서비스 예시 이번에 면접에서 인프라 관련 질문을 받았는데, 트래픽이 심한 사이트의 로드 밸런싱에 대한 내용이었다. 그래서 AWS 공부했던 내용을 떠올리고 ELB 얘기를 열심히 했는데... 갑자기 들어온 질문. DNS에서 로드 밸런싱을 하는 방법은 없을까요? 아쉽게도 여기서 더 좋은 대답을 해내지는 못했지만, 면접 후에 GSLB에 대해 공부해 보라는 조언을 받았다. GSLB가 뭘까? 그리고 왜 필요할까? 이 글은 그 대답을 위해 작성되었다. DNS Domain Name System(DNS)은 사람이 읽을 수 있는 도메인 이름(예: kafcamus.tistory.com)을 기계가 읽을 수 있는 IP 주소(예: 192.0.0.1)로 변환한다. 좀 더 자세히 알아보자. 한국인터넷정보센터의 DNS에 대한 설명 이미지를 먼저 .. 2021. 10. 30.
관계형 데이터베이스의 데이터 무결성 얼마 전에 친구와 대화를 하다가 참조 무결성에 대한 이야기가 나왔는데, 개념을 어렴풋하게만 알고 있어 정리해볼 필요를 느꼈다. 이 글은 아래 내용에 대해 다룬다. 데이터 무결성이란 무엇인가? 데이터 무결성의 종류 데이터 무결성의 주요 요소와 예시 물론 정보통신기술용어해설에서 지적하듯, 데이터 무결성은 정보보호 분야나 전자회로 분야에서도 쓰이는 만큼 본문 이상의 의미를 내포하고 있다. 여기에서는 데이터 무결성의 의미를 관계형 데이터베이스의 경우로 한정짓는다. 데이터 무결성 데이터 무결성(Data Integrity)이란 무엇일까? 한국데이터산업진흥원에서는 데이터 무결성에 대해, 아래와 같이 정리하고 있다. 데이터베이스에서 무결성은 무엇으로부터의 무결성일까? 개발 환경일까, 데이터베이스 자체일까? 정답부터 말.. 2021. 10. 29.
반응형