본문 바로가기

IT 기본지식39

ADAPTER 패턴 정리 Adapter 패턴이란?서로 다른 인터페이스를 가진 객체들을 연결해주는 중간 다리 역할을 하는 디자인 패턴입니다.즉, 코드 A와 B가 있을 때 A가 B의 인터페이스를 그대로 쓸 수 없다면 Adapter라는 중간 클래스를 만들어서 A가 이를 통해 B를 사용할 수 있게 합니다. 언제 사용하는가?기존 코드(A)에서 새로운 코드(B)를 쓰고싶지만 두 코드의 메서드명, 동작 방식이 맞지 않을 때☑️ 라이브러리, 레거시 시스템, 외부 API와 연결할 때 책에서 나온 예제로 Adapter 패턴을 이해해보면,상황 : 우리는 송신기의 하위 시스템을 개발해야하지만, 송신기 모듈 쪽은 아직 인터페이스조차 정의하지 못한 상태입니다.우리가 송신기 모듈에게 원하는 기능은 "지정한 주파수를 이용해 스트림에서 들어오는 자료를 아날.. 2025. 5. 8.
디미터 법칙 정리 : 객체와 자료구조 디미터 법칙(Law of Demeter)이란?잘 알려진 휴리스틱으로, 모듈은 자신이 조작하는 객체의 속사정을 몰라야 한다는 법칙이다.쉽게 말하면, "친구의 친구에게 말하지 마라" 인데, 자신이 직접 알고 있는 객체와만 상호작용해야 한다. 이는 허용된 메서드라고 부르는데, 허용된 메소드는 다음과 같다. 클래스 C의 메서드 f는 다음과 같은 객체의 메서드만 호출해야 한다.- 클래스 C- f가 생성한 객체- f의 인수로 넘어온 객체- C 인스턴스 변수에 저장된 객체 그 외에 허용된 메서드가 반환하는 객체의 메서드는 호출하면 안된다. 필요한 이유는 무엇일까?- 코드의 결합도를 낮추고- 유지보수성을 높이며- 내부 설계 변경에 외부 코드가 휘청이지 않게 만들기 위함이다. 예를 들어, 아래와 같은 코드는 디미터 법.. 2025. 5. 5.
Git Flow vs Github Flow : 브랜치 전략 목차 LIST  새로운 프로젝트를 시작할 때, 브랜치 전략으로 Git Flow와 Github Flow를 자주 접하게 되는데요. 두 전략의 차이에 대해 알아보겠습니다. Git FlowGit Flow 브랜치 전략은 총 5개의 브랜치로 나누어집니다. main (or master) - 현재 릴리즈된 코드의 저장소이며, Production에 나가는 버전과 일치해야 합니다.develop - main 브랜치를 따서, 릴리즈 이후에 발생한 추가적인 변경 사항을 반영합니다.feature - develop 브랜치를 따서, 새로운 기능을 개발하기 위한 feature 브랜치를 생성합니다. main이나 develop과 달리 feature라는 단일 브랜치가 있는 것은 아니고, 변경 사항마다 생성합니다.예를 들면, bug/Stac.. 2024. 5. 3.
Cookie vs LocalStorage vs SessionStorage : 차이점은 무엇일까? 목차 LIST Cookie 최대 4KB 용량을 가진 매우 작은 양의 데이터로 방문한 페이지를 저장하거나 유저의 로그인 정보를 저장하는 것과 같이 다양한 방법으로 사용되며, 문자열만 저장 가능하다는 제한이 있습니다. 많은 사이트들은 최초 로그인 이후에 쿠키를 사용해 유저의 신원을 확인하는 방식을 사용하는데, 이 때문에 유저는 일정 시간동안 다시 인증을 하지 않아도 됩니다. 쿠키는 웹 브라우저와 서버 간의 상태 정보를 유지하기 위해 HTTP 프로토콜을 사용하는 기술입니다. 최초 로그인 이후에 모든 HTTP 요청에 로그인 정보를 담은 쿠키를 서버에 계속 전달해주는 방식으로 동작됩니다. 동작 방식 쿠키와 HTTP 프로토콜 : 쿠키는 HTTP 프로토콜의 일부로 정의되어 있으며, 웹 브라우저와 서버간의 HTTP 요.. 2023. 12. 26.
CORS(Cross-Origin Resource Sharing)에 대하여 목차 LIST Cross-Origin Resource Sharing (CORS) 필요성 및 목적 CORS는 서버의 리소스를 보호하기 위한 메커니즘으로 웹 서버가 어떤 출처(origin)의 웹 페이지가 해당 서버의 리소스에 접근할 수 있도록 허용할지를 결정하는 방법입니다. 서버가 '어떤 출처(origins)로부터의 요청을 허용할지'를 제어함으로써 데이터의 접근을 관리하기 위해 사용하며, 브라우저는 이러한 서버의 결정을 존중하고, 서버의 설정에 따라 클라이언트 측의 데이터 접근을 제한합니다. CORS란 CORS는 HTTP 헤더 기반의 매커니즘으로 origins(domain, scheme, or port) 가 아닌 곳에서 브라우저가 자원을 로드하는 것을 허용할 수 있습니다. 또한, CORS는 브라우저가 cro.. 2023. 12. 8.
JSON Web Token(JWT) 에 대해 살펴보자 목차 LIST JSON Web Token 이란 무엇인가? JSON Web Token(JWT)은 JSON 객체로 정보를 안전하게 전송하는 방법을 정의하는 공개된 표준(RFC 7519)입니다. 이 정보는 디지털로 서명이 되어있기 때문에 신뢰성이 높은 검증된 방법입니다. JWT는 HMAC 알고리즘으로 비밀키를 사용하여 서명될 수 있고, RSA나 ECDSA를 사용한 공개/비공개 키 쌍으로도 서명될 수도 있습니다. JWT는 두 당사자들 사이의 정보를 안전하게 전송하기 위해 "암호화"를 한다는 특징이 있습니다. 그리고 다른 중요한 특징은 "서명된 토큰"입니다. 서명된 토큰(signed token)은 그 안에 포함된 내용의 무결성을 확인할 수 있게 해주며, 암호화된 토큰(encrypted token)은 해당 내용을 .. 2023. 10. 4.
반응형