본문 바로가기

Study27

생성패턴 - 싱글톤패턴/팩토리패턴 싱글톤패턴 하나의 클래스에 단 하나의 인스턴스만 가지는 패턴 I/O bound(데이터베이스 연결 모듈 등)에 많이 사용 ex) mysql pool instance 사용 장점 : 인스턴스를 생성할 때 드는 비용이 줄어들음 단점 : 의존성이 높아지고 TDD 단위테스트 시 걸림돌이 됨 (모듈의 순서를 변경하여 테스트할 때 다른 인스턴스에 영향을 미침) 싱글톤패턴 구현방법 단순한 메서드 호출 인스턴스 생성여부를 확인하고 없으면 인스턴스 생성하여 반환 원자성이 결여되어 멀티스레드로 돌아갈 때 문제가 생길 수 있음 synchronized 위를 보완하기 위해 순서보장 로직 추가 인스턴스를 호출할 때 마다 스레드에 락이 걸리기 때문에 성능저하가 됨 정적 멤버/정적 블록 위를 보완하기 위해 static을 사용 클래스 로.. 2024. 1. 7.
디자인패턴/라이브러리/프레임워크 디자인패턴 프로그램 설계시 발생한 문제를 해결할 수 있는 규약 이런 상황에서는 이런 방식으로 코드를 짜자! 라이브러리나 프레임워크를 만들 때의 기초 원리로 작동 ex) passport 로그인 라이브러리 (전략패턴) 디자인패턴의 의의 문제 해결의 영감 협업시 빠른 의사소통 가능 디자인패턴의 종류 생성패턴 객체 생성 방법이 들어간 패턴 싱글톤, 팩토리 구조패턴 객체, 클래스로 큰 구조를 만들 때 유연한 패턴 프록시 등 행동패턴 객체, 클래스 간의 알고리즘과 책임 할당에 대한 패턴 이터레이터, 옵저버, 전략 등 이 외에도 많은 패턴이 존재함 MVC, flux 등 라이브러리 공통으로 사용되는 특정한 기능을 모듈화 한 것 폴더명이나 파일명 등에 대한 규칙이 없음 프레임워크에 비해 자유로움 프레임워크 공통으로 사용.. 2024. 1. 7.
Backend의 이해 - POSIX 1. POSIX Portable Operating System Interface의 약자 이식 가능한 운영 체제 인터페이스 다양한 유닉스 계열 운영 체제에서 호환성을 확보하고 이식성을 높이기 위해 개발된 표준 인터페이스 규격 운영 체제 간의 이식성을 높여주는 중요한 역할을 하며, 오픈 소스 커뮤니티와 산업 환경에서 널리 사용 유닉스와 유사한 운영 체제에서 동작하는 프로그램의 이식성을 보장하기 위해 여러 가지 기능과 API를 정의 유닉스 시스템 콜, 라이브러리 함수, 헤더 파일 등을 정의하여 운영 체제와 프로그램 사이의 상호 작용을 규정 주요 기능 시스템 콜(System Calls): 파일 관리, 프로세스 관리, 메모리 관리 등과 같은 운영 체제의 기본적인 기능을 프로그램이 호출할 수 있도록 제공 라이브러리.. 2023. 8. 31.
Backend의 이해 - Version Control Systems, Repo hosting Service 1. Version Control Systems (VCS) - 버전 관리 시스템 개발 프로젝트에서 소스 코드와 같은 파일을 관리하고 추적하는 데 사용되는 도구나 시스템 여러 개발자가 협업하면서 코드 변경 내역을 추적하고 관리 과거 버전과 현재 버전을 비교하거나 원하는 버전으로 돌아갈 수 있게 해줌 Git 가장 인기 있는 분산 버전 관리 시스템 소스 코드의 변경 내역을 브랜치로 나누고 병합하는 등의 기능을 제공 Subversion (SVN) 중앙 집중형 버전 관리 시스템 클라이언트-서버 구조를 사용하여 코드를 관리 2. Repository Hosting Services (저장소 호스팅 서비스) 개발자나 개발 팀이 코드를 저장하고 관리하기 위해 인터넷을 통해 제공되는 온라인 플랫폼 소스 코드를 저장하고, 다.. 2023. 8. 24.