본문 바로가기

독서51

6. 프로그래밍 패러다임 프로그래밍 패러다임 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 프로그래밍 패러다임이란? 프로그래밍 언어의 특징에 따라 분류를 하는 것이 프로그래밍 패러다임이다 명령형 프로그래밍 : 어떻게 (How) 할 것 인지를 설명하는 방식 선언형 프로그래밍 : 무엇을 할 것 인지를 설명하는 방식 선언형 / 함수형 프로그래밍 순수 함수로 이루어진 프로그램이다 // 그냥 코드를 사용하여 결과값을 출력할 수 있다 for(int i = 1 ; i < 10; i++){ System.out.println(i); } // 선언형은, 위와 같은 코드를 함수화 시키고 // 아래와 같이 함수를 선언해서, 결과값을 추출해 낸다 process(10, print(num)); 함수형 프로그래밍을 사용하게 되면, 함수 안에 들어오는.. 2023. 2. 21.
5. 디자인 패턴 (MVC, MVP MVVM 패턴) 4. 디자인 패턴 (MVC, MVP MVVM 패턴) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) MVC 패턴 Model, View, Controller Model 어플리케이션의 정보, 데이터를 나타낸다 어플리케이션이 무엇을 할 것인지 정의한다 데이터, DB와 상호작용 (CRUD), 알고리즘 등 View 텍스트, 체크박스 등, 데이터를 유저들이 볼 수 있도록 시각화 하는 것이다 (UI) 모델이나 컨트롤러가 보여주려고 하는 모든 것들을 보여 준다 데이터가 존재해도, 유저가 읽을 수 없거나, 볼 수 없으면 무의미하 Controller 데이터와 비즈니스 로직 사이의 상호 동작 관리한다 이벤트, 매인 로직을 담당한다 사용자의 요청에 따라, 모델을 변경할 수 있다 컨트롤러와 관련된 뷰가 있으면, 모델이 어.. 2023. 2. 19.
4. 디자인 패턴 (프록시 패턴) 4. 디자인 패턴 (프록시 패턴) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 프록시 패턴 Proxy : 대변인 클라이언트가 서버에 요청을 하면, 서버 대신, 프록시가 응답을 해준다 즉 클라이언트는 프록시를 통해 서버를 간접적으로 사용하는 것이다 - 프록시 서버 프록시의 기능 클라이언트로부터 요청이 들어오면, 프록시는 실제 서비스 객체를 생성하고, 모든 작업을 생성한 객체들에게 위임한다 보안, 데이터 검증, 캐싱, 로깅 (기록) 보안 클라이언트, 즉 사용자들이 직접적으로 서비스를 사용하는 것이 아닌, 간접적으로 사용하는 것이다 즉, 익명 사용자들이 직접적으로 서비스를 사용하지 못 하게 하여, 실제 서버를 공격하는 것을 차단할 수 있다 CloudFlare은 프록시 서버를 통해 DDOS 공격을 방어.. 2023. 2. 17.
3. 디자인 패턴 (전략 패턴, 옵저버 패턴) 3. 디자인 패턴 (전략 패턴, 옵저버 패턴) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 전략 패턴 (정책 패턴) 캡슐화한 알고리즘을 통해, 서로 교환해서 사용할 수 있는 패턴이다 즉 다양한 메소드들을 캡슐화를 한 후, 필요할 때마다 교환하여 사용하는 것이다 캡슐화는 클래스를 정의할 때, 내부의 속성과 메서드를 묶어서 하나의 단위로 처리하는 것이다. 전략 패턴이 없을 때에는 모든 메서드가 하나의 클래스에 들어간다 메서드가 많이 없을 때에는 괜찮지만, 많아질 경우 에러가 발생할 수 있다 전략 패턴 네비게이션 (컨택스트, context)을 이용할 때에, 다양한 방법으로 경로를 찾을 수 있다 (자동차 경로, 도보 경로 등) 각각의 경로들을 캡슐화를 하여, 각각의 클래스로 만들어 준다 경로 설정 인터.. 2023. 2. 16.
2. 디자인 패턴 (이터레이터 패턴, 의존성 주입) 2. 디자인 패턴 (이터레이터 패턴, 의존성 주입) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 이터레이터 패턴 (iterator Pattern) 이터레이터를 사용하여 콜렉션의 요소들에 접근하는 디자인 패턴이다 즉 순회만 할 수 있다면, 어떠한 자료 구조든 이터레이터라는 하나의 인터페이스로 순회가 가능하다 한번에 여러 자료 구조를 순회할 수 있다 콜랙션 : 컨테이너라고도 불리면서, 배열, 트리 등, 동일한 요소들의 집합을 말한다 이터레이터 프로토콜 : 순회가 가능한 객체들을 순회할 때 쓰이는 규칙 이터러블한 객체 : 반복 가능한 객체로 배열을 일반화한 객체 의존성 주입 참고 의존 관계란, 서로 의존하는 것이다. 즉 하나가 바뀌면, 다른 하나도 꼭 바뀌어 하는 것 의존성 주입 전 A 와 B, A와.. 2023. 2. 15.
1. 디자인 패턴 (싱글톤 패턴 / 팩토리 패턴) 1. 디자인 패턴 (싱글톤 패턴 / 팩토리 패턴) 출처 : 면접을 위한 CS전공지식 노트(책 / 강의) 싱글톤 패턴, 팩토리 패턴 디자인 패턴 디자인 패턴은 프로그램을 설계할 때에 나타났던 문제점들을 객체 (Objects)간의 상호 관계를 이용하여 해결하려고 만든 '규약' 형태이다. 라이브러리, 프레임워크가 있다로직에 따라 반복적인 패턴을 라이브러리와 프레임 워크에 포함 하나의 코드로 프로그램을 설계할 수 있지만, 추후에 유지 보수를 하기 어렵다 한번에 많은 코드를 수정할 때에 번거롭거나, 오히려 에러를 발생 시킬 수 있다 디자인 패턴이라는 규약을 만들어서 모듈화를 했다 프로그래밍을 더 쉽게 할 수 있다 라이브러리 (Library) 공통으로 사용될 수 있는 기능들을 모듈화한 것이다 폴더명, 파일명 등 규.. 2023. 2. 14.