전체 글
-
팩토리 패턴(factory pattern)디자인 패턴/생성패턴 2022. 7. 22. 10:47
팩토리 패턴(Factory pattern)이란? 객체를 사용하는 코드에서 객체 생성 부분을 때어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴(특정 구현으로부터 객체 생성 분리) 상위 클래스(부모)와 하위 클래스(자식)가 분리 되기 때문에 느슨한 결합을 가짐 상위 클래스에서는 인스턴스 생성 방식에 대해 전혀 알 필요가 없기 때문에 더 많은 유연성을 갖게 됨 객체 생성 로직이 따로 떼어져 있기 때문에 코드를 리팩토링하더라도 한 곳만 고칠수 있게 되니 유지 보수성이 증가 코드 리팩토링이란? 사용하지 않은 코드 또는 중복된 코드를 지우고, 코드의 로직을 깨긋하고 이해하기 쉽게 디자인하는 것 객체 생성과..
-
[CS]의존성 주입(DI,Dependency Injection)디자인 패턴/생성패턴 2022. 7. 21. 16:34
의존성 주입이란(DI,Dependency Injection)? 모듈간의 결합을 조금 더 느슨하게 만들어 해결해 주는 것 의존성이란 종속성이라고도 하며 A가B의 의존성이 있다는 것은 B의 변경사항에 대해 A 또한 변해야 된다는 것을 의미 함. 위 이미지 처럼 Main이 '직접' 다른 하위 모듈에 대한 의존성을 주기보다는, 중간에 Injector로 거쳐서 메인 모듈이 '간접'적으로 의존성을 주입하는 방식이다. 이렇게 하면 메인(상위 모듈)은 하위 모듈에 대한 의존성이 떨어지게 됩니다. 참고로 이를 '디커플링이 된다'라고도 합니다. 디커플링이란? 서비스를 사용하려는 수신객체(클라이언트)가 해당 서비스의 구성방법을 알 필요가 없게 하는 것 종속성(DI) 주입은 컴파일타임이 아닌 런타임에 종석성을 해결하는데 사용..
-
[CS]싱글톤 패턴(Singleton pattern)디자인 패턴/생성패턴 2022. 7. 21. 15:32
싱글톤 패턴(Singleton Pattern)이란? 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 데이터베이스 연결 모듈에 많이 사용함 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용 싱글톤 패턴 장점 인스턴스를 생성할 때 드는 비용이 줄어듬 싱글톤 패턴 단점 의존성이 높아진다는 단점이 있음 TDD(Test Driven Development)할때 걸림돌이 됨 단위 테스트는 테스트가 서로 독립적이어야 하며 테스트를 어떤 순서로든 실행할 수 있어야함 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 '독립적인' 인스턴스를 만들기가 어려움 TDD(Test Driven Development)란? TDD란 '테스트 주도 개발'의 약자로 반복 테..
-
프레임워크(Framework)와 라이브러리(Library) 차이IT 지식 2022. 7. 21. 14:43
나는 항상 내가 공부를 하면서 궁굼한게 있었다. 프레임워크와 라이브러리는 무슨 차이가 있을까? 내가보기엔 똑같은데 왜 둘을 항상 나눠서 부른거지? 라는 궁굼증이 있엇다. 그래서 오늘은 그 둘에 대해 차이점을 알아보려고 한다!! 프레임워크(Framework) 프레임 워크는 뼈대나 기반구조를 뜻한다. 프로그래밍을 진행할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해주기 때문에 프레임워크를 사용하는 개발자는 이 프레임워크의 뼈대 위에서 코드를 작성하여 프로그램 개발 가능 프레임워크 예시 Java는 서버 개발에 사용되는 Spring Python은 서버 개발에 사용되는 Django 라이브러리(Library) 특정 기능에 대한 도구 또는 함수들의 집합 개발자가 어떠한 기능을 수행하기 위해서 도움..
-
[CS]디자인 패턴디자인 패턴 2022. 7. 21. 14:09
디자인 패턴이란? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 그러면 디자인 패턴이 먼지도 알았는데 디자인 패턴을 알면 좋은점이 어떤게 있을까? 장점 개발자 간의 원할한 의사소통 소프트웨어 구조 파악 용이 재사용을 통한 개발 시간 단축 설계 변경 요청에 대한 유연한 대처 야근없이,빠른 퇴근 가능(이게 젤 중요) 불필요한 리소스 낭비 방지 디자인 패턴을 알면 이러한 장점들이 있다(야근 없이 빠르게 퇴근 가능이라는데 이건 정말 중요한것 같다.)그러면 이렇게 장점이 많은데 장점만 있는건 이세상에 있을수 없다.(세상에 완벽한건 있을수가 없어!) 그럼 단점은 머가 있을가? 단점 객체지향 설계/구현 위주로 사용된다 초키 투자 비..
-
[Node] Node.js란?Node 2022. 7. 18. 16:10
Node.js란? Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript런타임이다. 이렇게 말하니끼 무슨말인지 잘 이해가 안간다. 그러면 하나씩 뜯어볼까? Chrome V8? 웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진이다. 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있다. JavaScript런타임? 자바스크립트가 구동되는 환경을 말한다. 즉, 노드를 통해 다양한 자바스크립트의 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용한다. 따라서 노드는 자바스크립트프로그램을 컴퓨터에서 실행하게 만들어 주는것, 즉 쉽게말해서 노드는 자바스크립트의 실행기 입니다. 나는 항상 어떤걸 배우면 이게 왜 생겼지? 라는 의문점이 생기고 ..
-
[서버]REST API란?JavaScript 2022. 7. 10. 21:23
REST 개념 REST란? "Representational State Transfer"의 약자, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 즉 REST란! HTTP URL(Unifrom Resource Identifier)를 통해 자원(Resource)를 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URL)에 대한 CRUD Operation을 적용하는 것을 의미 CRUD Operation이란 CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다 REST에서의 CRUD는 동작은 다음과 ..
-
[Git] Git 초보가 꼭 알아야 하는 Git 용어와 Git동작과정Git 2022. 7. 8. 14:54
오늘 부트캠프에서 Git을 사용하는데 멘토님이 git에 대해 설명을 해주시는데 모르는 용어가 너무 많이 나와서 내가 이해를 하지 못햇다.... 그래서 오늘은 git에 대한 기본 용어와 동작 과정을 조금 정리를 해보려고 합니다. 우선 Git을 이해하기 위해서는 몇 가지 알야할 용어가 있습니다. 원격 저장소(Remote Repository) 로컬 저장소(Local Repository) 클론 (clone) 작업 디렉토리(working Directory) 스테이징 영역(Staing Area) 커밋 (commit) Git은 원격 서버에 위치한 저장소를 의미하는 원격 저장소와 각각의 개발자가 작업하는 개인 PC 저장소 로컬저장소가 있습니다. 만약 새로운 개발자가 프로젝트에 참여를 한다면 어떻게 할까요? 원격 저장소..