이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Emunerate란`emunerate()`는 Python에 내장되어 있는 함수로서 반복 가능한 객체를 인자로 받아, 해당 객체의 인자들을 순회하면서`index`와 `요소`를 쌍(Pair)로 반환한다. 편의성과 가독성을 높일 수 있는 좋은 내장함수이다.👍 파이썬에서 일반적으로 `for`문을 사용할 때에는 `for {원소} in {목록}:` 혹은 `for {인덱스} in range({범위})`와 같은 형태로 많이 사용된다.`{목록}`에는 주로 list, tuple, string, iterator, generator와 같은 순회가 가능한 타입들을 넣어 사용할 수 있다. 그런데 가끔 코드..
분류 전체보기
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ API versioning의 필요성팀 프로젝트를 Local에서 개발할 때에는 `BE`-`FE` 팀원들끼리 즉각적인 피드백을 진행하다보니, API에 버그가 발생하거나 구조를 변경해도 바로바로 적용했었다.AWS에 올려 서비스 운영을 시작한 직후에도 FE 팀과 이야기를 해서 API 변경에 대해 동시에 작업을 진행했기 때문에, API 버전 관리의 필요성을 느끼지 못했었다. 1차 개발 및 배포 이후, `성능 테스트` 및 `리팩토링`을 진행하는 과정에서 `기존에 사용되고 있던 API는 유지`하면서, `새로운 API를 개발`해야 하는 상황이 발생했다. 이럴 때 필요한 것이 API versioning(..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ Layer 4 Transport Protocol`TCP(Transmission Control Protocol)`과 `UDP(User Datagram Protocol)`은 모두 Transport layer(Layer 4)에서 작동한다. Transport layer는 Network layer와 Application layer 사이에 있어, 네트워크 구조의 핵심 역할을 수행한다.End-to-End data 전송을 위한 논리적 통신(logical communication) 역할을 하며, IP 및 port 번호를 통해 식별한다. 내가 이해한대로 설명을 해보자면, 어떤 End에서 출발한 데이터가 ..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!✅ OSI 7계층? TCP/IP 5계층? 4계층?네트워크를 공부하다보면 제일 처음으로 네트워크의 계층 구조를 접하게 된다.학부 수업에서 네트워크와 관련된 강의를 들었는데, 해당 강의에서는 5계층으로 이루어진 네트워크 계층 구조를 배웠었다. 최근에 네트워크 공부를 다시 하다보니 `OSI 7계층`, `TCP/IP 4계층`, `TCP/IP 5계층`이라는 키워드를 많이 보게되었다.내가 알던 네트워크 계층은 5계층인데... OSI랑 TCP/IP의 차이는 뭐고, 4계층은 또 무엇이란 말인가... 이번 기회에 이들의 특징과 차이점에 대해 알아보려고 한다!✅ OSI Model - 7 LayersOSI mo..
Item 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라1. 싱글턴(Singleton)이란?싱글턴(singleton)이란 인스턴스를 오직 하나만 생성할 수 있는 클래스를 말한다. 싱글턴의 전형적인 예로는 설계 상 유일해야 하는 시스템 컴포넌트나 무상태(stateless) 객체(Spring bean component)가 있다.싱글턴 객체에도 단점이 있는데, 바로 싱글턴 객체를 이용하는 클라이언트를 테스트하기 어렵다라는 것이다. 만일 해당 타입을 `interface`로 정의한 다음 그 `interface `구현해서 만든 싱글턴인 경우,싱글턴 인스턴스를 `mock(가짜 객체)`으로 구현하여 대체할 수 있지만, 그렇지 않은 경우에는 테스트 하는데에 어려움을 겪을 수 있다. 2. 싱글턴을 만드는 세..
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다! 1. 생성자와 정적 팩터리 메서드의 한계🤔 생성자와 정적 팩터리 메서드가 가지고 있는 제약으로 인해 Builder 패턴이 탄생했다!객체를 생성할 때, 선택적 매개변수가 많은 경우 적절히 대응하기가 어렵다.예를 들어 `영양 성분` 클래스에 `1회 제공량`, `칼로리`, `총 지방`, `트랜스 지방`, `포화 지방`, `단백질`, `나트륨` 이라는 멤버 변수가 있다고 가정하자.public class NutritionFacts { private final int servingSize; private final int calories; private final int transF..