Study Record

1. 객체 지향 설계 5원칙: SOLID 1) SRP (Single Responsibility Principle, 단일 책임의 원칙): 1개의 클래스는 1개의 method만을 갖는다 2) OCP (Open Closed Principle, 개방 폐쇄의 원칙): 수정에는 폐쇄, 확장에는 개방 / 직접 수정 x -> 상속을 통한 수정 3) LSP (Liskov Substitution Principle, 리스코프 치환의 원칙): 자식 객체가 부모 객체를 완전히 대체 가능 4) ISP (Interface Segregation Principle, 인터페이스 분리의 원칙): 사용자 별로 다른 인터페이스 / 범용 인터페이스 x 5) DIP (Dependency Inversion Principle, 의존성 역전의 원칙)..
1. What is a CPU? = processor = microprocessor - CPU is short for Central Processing Unit. - Inside a CPU there are thousands of microscopic transistors *transistor: a tiny switch that controls the flow of electricity - CPU is located on a computer's motherboard. *motherboard: main circuit board inside a computer that connects all hardware components together. - CPU performs every single action ..
1. 소프트웨어 설계 원리 분할과 정복 원리 (Divide and Conquer) *서브시스템: 상위레벨에서 분할한 시스템 구성 요소, 독립적으로 기능 수행 가능 1) 추상화 (Abstraction) 자료(Data) 추상화, 제어(Control) 추상화, 과정(Procedure) 추상화 *엔지니어링: 추상화 -> 구체화 2) 정보 은닉 (Information Hiding) (1) 내부 내용 감추고 (2) 인터페이스 통해서만 메시지 전달 -> 모듈 사이 독립성 유지 -> 변화에 쉽게 적응, 유지보수 용이 3) 단계적 정제 (Stepwise Refinement) 추상화 -> 구체화 4) 모듈화 서브루틴, 프로시저, 함수 등 -> 복잡도 문제 해결 -> 유지보수, 수정 용이 5) 구조화 시스템을 어떻게 분할하..
1. Cross-Site Request Forgery (XSRF) - forging the user's requests with a malicious website - to steal personal data or perform malicious actions 2. Same-Origin Policy (SOP) - to address the XSRF problem, all browsers have adopted this policy, by default * Origin: - the source of the request = who is making the request - the combination of the scheme, domain, and port (e.g. https://www.cors.org:..
1. 알고리즘이란? 문제 해결 방법 추상화 2. 알고리즘의 조건 1) 입력: 0개 이상 2) 출력: 1개 이상 3) 명확성: 각 명령어들을은 명확하게 명세되어야 함 4) 유한성: 반드시 종료돼야 함 5) 효과성: 실행 가능해야 함 3. 알고리즘 분석 기준 1) 정확성 2) 작업량 3) 기억 장소 사용량 4) 최적성: 시스템의 사용 환경 기준 (수행량, 메모리 사용량 등) 5) 단순성 4. 알고리즘 표현 방법 1) 자연어 기술 2) 순서도 표현: 그래픽 (Flowchart, NS 차트 등) 3) 의사코드 (Pseudo Code): 프로그래밍 언어와 유사 5. 알고리즘 성능 분석 1) 공간 복잡도: 실행 완료까지 필요한 총 저장 공간 = 고정 공간량 + 가변 공간량 - 고정 공간량: 프로그램, 변수, 상수 ..
1. 분류 1) 선형 vs 비선형 (1) 선형구조: 배열, 선형리스트, 연결리스트, 스택, 큐, 데크 (1:1 관계) (2) 비선형구조: 트리, 그래프 (1:다, 다:다 관계) 2) 순차 vs 연결 (1) 순차자료구조: 배열 (논리적 순서 = 물리적 순서) (2) 연결자료구조: 포인터 (논리적 순서 != 물리적 순서) 2. 스택 (Stack) LIFO (Last In First Out) 출입구 = top - top(): 반환 - push(): 삽입 - pop(): 삭제 및 반환 - isempty() - isfull() 3. 큐 (Queue) FIFO (First In First Out) 입구 = rear 출구 = front - enQueue: 삽입 - deQueue: 삭제 4. 트리 (Tree) 계층형 ..
1. 역공학이란? 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 자료를 얻어내는 것 소프트웨어 유지보수 단계에 수행 2. 역공학이 필요한 경우 1) 가동중인 시스템의 유지보수 어려운 경우 2) 변경이 빈번하여 시스템 효율이 저하된 경우 3) 파일 시스템으로 개발된 업무를 관계형 데이터베이스로 재구축하려는 경우 4) 기본 메인 프레임을 다운사이징하는 경우 *메인 프레임: 대규모 데이터 처리와 다중 사용자 지원을 위해 설계된 컴퓨터 시스템 (HW + SW) *메인 프레임 다운사이징: 기술의 발달로 더 작은 규모의 하드웨어로도 높은 성능을 얻을 수 있기에 3. 역공학의 장점 자료와 정보를 설계 수준에서 분석 가능 -> 유지 보수성 향상 4. 역공학 종류 1) 논리역공학: 원시코드(소스코드)로부..
1. 소프트웨어 재사용이란? 기존의 SW or SW 지식 (e.g., 설계, 요구명세, 검사, 아키텍처 등)을 활용해, 새로운 SW를 구축하는 일 -> 개발 관련 지식 표준화 -> 생산성 향상 2. 목적 신뢰성, 확장성, 생산성 3. 대상 1) 일반적인 지식: 환경정보, 외부지식 2) 설계 정보: 기본, 상세 3) 데이터 정보: 시스템 데이터, 시험 사례 4) 프로그램 코드: 모듈 (데이터+함수), 프로그램 5) 기타: 투자 대 효과 분석정보, 사용자 지침서, 타당성 조사방법 및 결과, 프로토타입 (초기 모델), 인력 4. 원칙 1) 범용성 2) 모듈성: 정보은닉, 추상화 -> 최소한의 결합도, 최대한의 응집력 3) 하드웨어 독립성: 하드웨어 기종 무관 4) 소프트웨어 독립성: OS, DBMS 무관 5)..
HTTP methods HTTP is a protocol for fetching resources such as HTML documents. HTTP defines a set of request methods to indicate the desired action to be performed for a given resource. *Status code: indicates whether a specific HTTP request has been successfully completed 1. GET Data request method Passing data through a query string (=query parameter) (e.g. GET/members/100?username=sungyeon&he..
1. 소프트웨어 공학의 배경과 목적 가) 소프트웨어 공학 소개 SW 개발 전 과정 관리와 업무 수행에 필요한 기술 지원 3가지 핵심 요소: Process (procedures & methods), People, Technology 나) 소프트웨어 공학 배경 1950s - HW 공학과 유사 1960s - SW 수요 급증, 인력의 미성숙 -> "소프트웨어의 위기" 1970s - SW 수요 급증, 인력 수 부족 -> 비전공자 대거 투입 -> "선코딩-후수정" 기법 선코딩-후수정 기법의 많은 결함 -> 구조적, 정형적 기법 등장 (e.g., 폭포수 모델) -> 사용성, 비용 문제 1980s - 재사용성 강화에 집중 1990s - 경쟁우위 선점에 집중 -> 제품 시장출시 시간 단축의 필요성 대두 -> 동시공학 활..
1) Unconstrained optimization Steepest gradient descent를 보통 gradient descent라고 많이 부름 -> x에 조건이 달려있지 않을 때만 사용 가능 (1) Stochastic gradient: mini-batch가 batch를 잘 근사하도록 (2) mini-batch gradient: sub-set만 고려 (3) Batch gradient: 모든 데이터 전부 고려 * Momentum: 직전에 업데이트한 방향을 고려하자!!! -> 지그재그로 수렴하는 걸 좀 더 가속화 2) Constrained optimization x에 조건이 있을 때!! 어떻게 쉽게 풀까 Lagrange multipliers: x, 람다, v의 function L Lagrange du..
1. Determinant Laplace expansion = 3*3 matrix의 determinant를 2*2 matrix의 determinant로 정의할 수 있다. det(A) != 0 -> A is invertible (역행렬 존재x) det(AB) = det(A)det(B) det(A) = det(AT) det(A^-1) = 1/det(A) 2. Trace matrix의 diagonal 다 더한 형태 tr(A + B) = tr(A) + tr(B) det(A) = eigenvalue들의 곱셉 tr(A) = eigenvalue들의 덧셈 3. Cholesky Decomposition A = L LT for a symmetric, positive definite (all eigenvalues > 0) ..