목록CS/면접을 위한 CS 전공지식 노트 (6)
엘라의 개발 스케치 Note

# 옵저버 패턴 더보기 ? 옵저버 패턴 - 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 주체 객체의 상태 변화를 보고 있는 관찰자 옵저버 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들 객체 / 주체 분리 옵저버 패턴 객체 - 주체 합체 옵저버 패턴 옵저버 패턴 활용 서비스 예시 - 트위터 옵저버 패턴은 주로 이벤트 기반 시스템에서 사용 MVC 패턴에도 사용됨 모델(주체) -> 변경사항 update() -> 뷰(옵저버) -> 컨트롤러 등 작동 ! 자바에서의 옵저버 패턴 더보기 topic(주체이자 객체) 기반 옵저버 패턴 구현 import java.util.A..

# 전략 패턴 더보기 ? 전략 패턴 = 정책 패턴 - 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴 ! 자바의 전략 패턴 더보기 쇼핑 카트에 아이템을 담아 LUNACard / KAKAOCard로 두 개의 전략으로 결제 cf) 컨텍스트: 상황, 맥락, 문맥. 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보 import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; interface PaymentStrategy { public void pay(int amount); } class KAKAOCardSt..

# 팩토리 패턴 더보기 ? 팩토리 패턴 - 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴 ! 장점과 예시 장점 상하위 클래스 분리 -> 느슨한 결합 상위 클래스 인스턴스 생성 방식 무지 -> 더 많은 유연성 객체 생성 로직 분리 -> 유지 보수성 증가 예시 (하위) 각각 레시피 -> (상위) 바리스타 공장 => 생산 ! 자바스크립트의 팩토리 패턴 더보기 new Object()로 구현 전달 받은 값에 따라 다른 타입의 객체를 생성하며 인스턴스의 타입 등을 정함 const num = new Object(42) const str = new Object('..

# 싱글톤 패턴 더보기 ? 싱글톤 패턴 - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 -> 해당 인스턴스를 다른 모듈들이 공유하며 사용 - 보통 데이터베이스 연결 모듈에 많이 사용 ! 장단점 장점 인스턴스를 생성할 때 드는 비용이 줄어듬 단점 의존성이 높아짐 ! 자바스크립트의 싱글톤 패턴 더보기 자바스크립트에서는 리터럴 {} 또는 new Object로 객체를 생성하게 되면 다른 어떤 객체와도 같지 않기 때문에 이 자체만으로 싱글톤 패턴 구현 가능 obj와 obj2는 다른 인스턴스를 가짐 const obj = { a: 27 } const obj2 = { a: 27 } console.log(obj === obj2) // false 실제 싱글톤 패턴 코드 Singleton.instance라는 하나의 ..

디자인 패턴? 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것 자바스크립트 테스팅 페이지: 플레이코드 https://playcode.io/new 자바 테스팅 페이지: 코딩그라운드 http://https://www.tutorialspoint.com/java/online-java-compiler.php

길벗 "면접을 위한 CS 전공지식 노트 - 주홍철" 요약 공부를 위해 작성한 글들입니다. 저작권 문제시 댓글 부탁드립니다. (관련글 비공개/삭제 등 조치 하도록 하겠습니다.) 디자인 패턴? 라이브러리나 프레임워크의 기본 프로그래밍 패러다임? 크게 보았을 때 어떠한 방식으로 로직을 구성해야하는지에 대한 시각 * 라이브러리? - 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것 - 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유로움 - 예) '도구'인 '가위'를 사용해 '내'가 직접 컨트롤하여 만들기 * 프레임워크? - 공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것 - 폴더명, 파일명 등에 대한 규칙이 있고 라이브러리에 비해 엄격함 - 예) '도구'인 '비행기'를 타고 이동하지만 '..