본문 바로가기

반응형

기본 프로그래밍 지식

(5)
[기본 지식] 4. 의존성 주입(DI, Dependency Injection) 의존성 주입 싱글톤 패턴은 사용하기가 쉽고 굉장히 실용적이지만 모듈 간의 결합을 강하게 만들 수 있다는 단점이 있습니다. 이때 의존성 주입(DI, Dependency Injection)을 통해 모듈 간의 결합을 조금 더 느슨하게 만들어 해결할 수 있습니다. 의존성이란 종속성이라고도 하며 A가 B에 의존성이 있다는 것은 B의 변경 사항에 대해 A 또한 변해야 된다는 것을 의미합니다. 앞의 그림처러 메인 모듈(main module)이 '직접' 다른 하위 모듈에 대한 의존성을 주기보다는 중간에 의존성 주입자(dependency injector)가 이 부분을 가로채 메인 모듈이 '간접'적으로 의존성을 주입하는 방식입니다. 이를 통해 메인 모듈(상위 모듈)은 하위 모듈에 대한 의존성이 떨어지게 됩니다. 참고로 이..
[기본 지식] 3. 디자인 패턴 - 싱글톤 패턴(Singleton Pattern) 디자인 패턴 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것을 의미. 싱글톤 패턴 싱글톤 패턴(singleton pattern)은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴입니다. 보통 데이터베이스 연결 모듈에 많이 사용합니다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있습니다. 하지만 의존성이 높아진다는 단점이 있습니다. 자바스크립트의 싱글톤 패턴 Javascript에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴을 구현할..
[기본 지식] 퀴즈 1 - 프로그래밍 기초, 인코딩, Java 프로그래밍 기초 값 호출 (Call by Value)와 참조 호출 (Call by Reference)의 차이는 무엇인가요? Call by Value: 호출 시 인자에 값을 복사해 넘기는 것 메서드 내에서 값을 변경해도 본래 변수는 영향 받지 않음. Call by Reference: 호출 시 인자에 참조자를 넘기는 것 메서드 내에서 오브젝트를 변경하면 본래 오브젝트도 변경됨. 얕은 복사 (Shallow Copy)와 깊은 복사 (Deep Copy)는 어떻게 다른가요? Shallow Copy: 오브젝트 참조자를 복사. 따라서 같은 오브젝트를 포인터가 가리키고 있음. Deep Copy: 메모리에 오브젝트를 따로 복사. 따라서 2개의 오브젝트가 생성. Stack overflow 에러를 만나본적이 있나요? 있다면 ..
[기본 지식] 2. HTTP 이해 HTTP란? HyperText Transfer Protocol의 약자. HyperText를 전송하기 위한 통신 규칙 체계 클라이언트-서버 프로토콜. Stateless하다. Session이 있다. Request 요청 & Response 응답 Request: 클라이언트가 서버로 데이터 및 액션을 받기 위해 전달. HTTP 메소드를 사용하여 서버의 액션을 지정해줌. GET: 주로 읽거나, 검색할 때 사용. POST: 주로 새로운 리소스를 생성할 때 사용. Multi-part Request: 하나의 body에 하나 혹은 그 이상의 데이터 셋을 합쳐놓은 것. 보통 파일 업로드나 여러 타입의 데이터 통신 요청들을 할 때 사용됨. Response: 서버가 클라이언트로부터 받았던 요청에 대한 결과값. Header: R..
[기본 지식] 1. 프로토콜 Protocol 프로토콜 Protocol 컴퓨터 내부 혹은 컴퓨터 간에 데이터를 교환하는 방식을 정의하는 규칙 체계. 상태 유지 Stateful 서버가 클라이언트의 상태를 보존/저장하고 있는 것을 뜻함. 예를 들어, 사이트를 나갔다 와도 로그인 정보가 남아있음. 보통 브라우저의 Cookie에 저장되거나, 서버의 Session 메모리에 저장됨. Stateful Protocol - TCP 통신 클라이언트가 서버에 SYN (Synchronize - TCP 패킷)을 전송하여 요청. 서버에서 SYN을 확인하고 SYN/ACK (Acknowledgement)를 전송하여 요청 수락. 클라이언트가 서버에 ACK를 전송하여 수락 확인. Stateful Protocol의 문제점 서버 메모리 과부화 가능성 서버와 클라이언트 간의 종속성 새로..

반응형