1.1.5 프록시 패턴 앞에서 옵저버 패턴을 설명할 떄, 객체의 상태변화를 감지하면 옵저버들에게 변화를 알려주는 객체를 프록시 객체라고 하였는데, 이를 이용해 대상 객체에 접근하기 전 흐름을 가로채 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다. 프록시 패턴은 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용한다. 프록시 서버는 실제 서버와 사용자 간의 중개자 개념으로, 사용자로부터 요청받는 정보들을 먼저 처리한다. 캐싱을 하여 네트워크 비용을 절감할 수 있고, 비정상적인 접근을 감지하여 DDOS를 방지할 수도 있다. 실제로 Node.js 앞단에 설치하는 Nginx를 프록시 서버로 주로 둔다. 이를 통해 본 서버의 포트를 숨길 수 있고, 버퍼 오버플로우를 방지할 수 있다. ..
1.1 디자인 패턴 디자인 패턴? 프로그램 설계간 발생했던 문제점들을 객체 간의 상호 관계 등을 따져 해결할 수 있게 만들어 놓은 규약 1.1.1 싱글톤 패턴 하나의 클래스에 하나의 인스턴스만 가지는 패턴. 보통 DB 연결 모듈에 사용된다. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에 인스턴스를 생성할 때 드는 비용을 줄일 수 있다. 단 의존성이 높아진다는 단점이 있다. 자바스크립트에서의 싱글톤 패턴 class Singleton { constructor() { if (!Singleton.instance) { Singleton.instance = this } return Singleton.instance } getInstance() { return this } } ..
1학기 중에 진행한 C++ 테트리스 프로젝트입니다. 직전 방학 때 C++ 강의를 수강하면서 마무리를 짓는 느낌으로 진행하게 되었습니다. 학과 동기 1명과 같이 진행하였고, Git을 통해 실무에서 어떻게 협업이 이루어지는지 느껴보려 했지만 후반에는 카카오톡으로 열심히 코드를 주고받는 저희를 발견할 수 있었습니다...ㅎㅎ 1. 초기 기획과 구현 방식 초기 기획입니다. 머릿속으로 그려보았을 때 막힐 만한 것들, 디테일이 필요한 것들을 필기해 놓았습니다. 병행 중인 수업이 많았던 관계로 일정은 넉넉하게 잡았습니다. 처음 맵을 구성할 때는 0과 1로 된 메모장을 읽어와 그 안에서 진행할 계획을 잡았지만, 그렇게 불러온 파일 위에서 값들을 수정하고 구분하는 것이 비효율적이라 느껴 30x15 배열을 만들고 그 위에서..