본문 바로가기

전체 글33

SOLID : 객체 지향 프로그래밍과 설계에 대한 원칙 SOLID : 객체 지향 프로그래밍과 설계에 대한 원칙 SOLID는 객체 지향 프로그래밍과 설계에 대한 원칙을 나타내는 콘셉트이다. 이 원칙들은 코드의 유지보수성, 유연성, 테스트 가능성을 증대시키는 데 중요한 역할을 한다. Single Responsibility Principle (SRP, 단일 책임 원칙) 각 클래스나 모듈은 하나의 책임만을 가져야 한다. 이 원칙을 따르면 코드의 복잡성을 줄이고, 변경에 더 유연하게 대응할 수 있다. Open-Closed Principle (OCP, 개방-폐쇄 원칙) 소프트웨어의 엔티티(클래스, 모듈, 함수 등)는 확장에는 열려있고, 수정에는 닫혀있어야 한다. 즉, 기존의 코드를 변경하지 않고도 기능을 추가하거나 변경할 수 있어야 한다. Liskov Substitut.. 2024. 2. 7.
[Spring] @Configuration과 CGLIB의 관계 @Configuration과 CGLIB의 관계 @Configuration @Configuration 어노테이션이 붙은 클래스는 스프링 설정 클래스다. 이 설정 클래스는 보통 빈(Bean) 정의와 같은 애플리케이션 컨텍스트의 구성 정보를 담고 있다. @Bean 어노테이션이 붙은 메서드들은 해당 메서드의 반환값을 빈으로 등록한다. CGLIB CGLIB(Code Generation Library)는 런타임에 클래스의 바이트코드를 조작하는 라이브러리이다. 이 라이브러리를 이용해 프록시 객체를 생성하거나 메서드 호출을 가로채는 등의 작업을 수행한다. @Configuration 어노테이션과 CGLIB의 관계 @Configuration 어노테이션이 붙은 클래스는 CGLIB를 이용해 클래스의 프록시가 생성된다. 이 프.. 2024. 2. 4.
프레임워크(Framework)와 라이브러리(Library)의 차이 프레임워크(Framework)와 라이브러리(Library)의 차이 프레임워크(Framework) 프레임워크는 애플리케이션의 전체적인 흐름을 제어하며, 개발자는 프레임워크가 정의한 틀 안에서 필요한 코드를 작성한다. 즉, 프레임워크가 흐름의 주도권을 가진다. 개발자는 그 안에서 필요한 부분을 구현한다. ex> Spring 라이브러리(Library) 라이브러리는 개발자가 필요할 때 호출하여 사용하는 함수나 메소드의 집합이다. 즉, 개발자가 직접 제어 흐름을 관리하며 필요한 기능을 라이브러리에서 가져와 사용한다. ex> math 라이브러리 2024. 2. 4.
HTTP HTTP HTTP이란? HTTP(HyperText Transfer Protocol)은 웹 서비스와 상호 작용할 수 있도록 하는 애플리케이션 프로그래밍 인터페이스(API)이다. 주로 웹 브라우저와 웹 서버 간의 통신에 사용되며, 웹 페이지를 로드 하는데 사용된다. HTTP의 특징 클라이언트-서버 구조: 클라이언트가 서버에 요청을 보내면, 서버는 그에 대한 응답을 보내는 구조 클라이언트는 UI에 집중 + 서버는 비즈니스 로직이나 데이터를 관리 => 클라이언트와 서버가 독립적으로 발전가능 무상태성(Stateless): 각 요청이 서로 독립적이며, 서버는 클라이언트의 상태 정보를 저장하지 않는다. 비연결성(Connectionless): 클라이언트가 서버에 요청을 보내고 응답을 받으면 연결이 종료된다. 단순성: .. 2024. 1. 30.
REST API REST API REST API가 무엇인가? REST(Representational State Transfer)는 소프트웨어 아키텍처 스타일로, 웹 아키텍처 디자인의 가이드 REST 설계 원칙을 따르는 모든 API(Application Programming Interface)를 RESTful 이라고 한다. 간단히 말해서, REST API는 클라이언트와 서버가 통신하는 것과 동일한 방식으로 두 컴퓨터가 HTTP(Hypertext Transfer Protocol)을 통해 통신하는 매체이다. REST API 디자인 JSON(JavaScript Object Notation)을 데이터 전송 및 수신 형식으로 사용 endpoints에서 동사 대신 명사 사용 GET, POST, PUT, PATCH, DELETE등 의.. 2024. 1. 30.
깃 컨벤션 | Git Convention Feat: 새로운 기능 추가 Fix: 버그 수정 Docs: 문서 수정 Style: 코드 포맷 변경, 세미콜론 누락, 코드 수정 없음 Refactor: 코드 리펙토링 Test: 테스트 코드 추가 (리펙토링 테스트 코드 포함) Chore: 빌드 업무 수정, 패키지 매니저 수정 Design: UI 디자인 변경 (CSS 등) Rename: 파일명 또는 폴더명 수정 Remove: 코드 또는 파일 삭제 (Clean 또는 Eliminate 사용 가능) Add: 코드, 테스트, 예제, 문서 등 추가 Improve: 향상된 내용, 호환성, 검증 기능, 접근성 등 Implement: 주목할 만한 구현체 추가 Move: 코드 이동 Updated: 계정이나 버전 업데이트 관련 (주로 문서, 리소스, 라이브러리 등) Comme.. 2024. 1. 28.
728x90
반응형