CS 지식
-
(4) MVC 패턴CS 지식/▷ Software Engineering 2021. 10. 5. 00:54
1. MVC 패턴이란? 1-1) 정의 MVC패턴은 디자인패턴 중 하나 - 자주 사용되는 기준을 3개(Model, View, Controller)로 분리하여 개발하여 유지보수 및 가독성을 높이는 것 - 비지니스 처리 로직 + 사용자 인터페이스 요소로 분리하여 개발 a) 디자인 패턴이란? 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것 ex) Build Pattern, Factory Pattern, Strategy Pattern, Observer Pattern... 내글 참조 : https://korshika.tistory.com/37?category=9..
-
(3) 테스트 주도 개발(TDD)CS 지식/▷ Software Engineering 2021. 8. 15. 12:14
1. TDD란? 1-1) 정의 테스트 주도 개발, 테스트가 개발을 이끌어 나가는 것 1-2) 기존 방식과의 대비 (a) 기존 보통 설계(디자인)을 한 이후, 코드 개발과 테스트 과정을 거치게 됨 (b) TDD 설계(디자인)을 한 이후, 테스트 과정을 먼저 작성한 이후 코드를 개발하고 다시 디자인을 수정하는 리팩토링 과정을 수행하며 개발을 하는 것 (c) 디자인 위에서 언급된 디자인은 여러 예시가 있지만 DDD(Design Driven Desgin/Developent) 등이 있음 추가 참조 : https://ppiyo5.tistory.com/21 도메인 주도 설계(Domain Driven Development) 이해 * 도메인 주도 설계(Domain Driven Development) 도입 배경 Befor..
-
(2) 시큐어 코딩CS 지식/▷ Software Engineering 2021. 8. 8. 23:42
1. 시큐어 코딩이란? 1-1) 정의 안전한 소프트웨어 개발을 위해, 소스코드 등에 존재할 수 있는 잠재적 보안 약점을 제거하는 것 1-2) 사례 SQL 인젝션 취약점으로 개인유출 사고 발생 URL 파라미터 조작 개인정보 노출 무작위 대입공격 기프트카드 정보 유출 2. SQL 인젝션 내글 참조: https://korshika.tistory.com/162?category=970464 (3) SQL Injection 1. SQL Injection이란? 1-1) 정의 해커에 의해 쿼리문이 서버영역까지 그대로 전달되어 비정상적인 명령을 실행시키는 공격 기법 1-2) 공격 방법 (a) 인증 우회 참조 6-1)에 Authentication 이후 Authorized되어 korshika.tistory.com 3. GE..
-
(1) 클린코드와 리팩토링CS 지식/▷ Software Engineering 2021. 8. 4. 18:33
1. 클린코드란? 1-1) 정의 클린코드는 가독성이 높은 코드, 잘 읽히는 코드 1-2) 구현 방법 네이밍이 잘 되어야 함 오류가 없어야 함 중복이 없어야 함 의존성을 최대한 줄여야 함 클래스 혹은 메소드가 한가지 일만 처리해야 함 1-3) 예시 public int AAA(int a, int b){ return a+b; }public int BBB(int a, int b){ return a-b; } (a) 문제점 (1) 함수 네이밍 : 무슨 역할을 하는 함수인 지 알 수 있는 이름을 사용 (2) 함수와 함수 사이의 간격 : 간격을 나누지 않으면 시작과 끝을 구분하는 것이 매우 힘들고, 결과적으로 잘 읽히지 않음 (b) 개선후 public int sum(int a, int b){ return a+b; } ..
-
(7) 로드 밸런싱 Load balancingCS 지식/○ Network 2021. 8. 4. 16:56
1. 로드 밸런싱이란? 1-1) 정의 둘 이상의 CPU/저장장치/주메모리 등의 자원을 분배하여 작업을 나누는 것 1-2) 어디서 동작하는가? (a) 배경 근래 웹사이트 접속이 급격히 늘며 Scale-up / Scale-out 의 두가지 대응방식 중, Scale-out이 더 장점이 있는 서버 업그레이드 방식인데, 이때, 여러 서버에 균등하게 트래픽을 분산시켜주는 것이 로드 밸런싱의 역할 Scale-Out과 함께 동작하여 매우 효율적인 방식 2. 로드 밸런싱 서버 선택 방식 2-1) 방식 라운드 로빈 - CPU 스케줄링의 라운드 로빈 방식을 활용 - 내글 참조 : https://korshika.tistory.com/145 1) 선점 알고리즘 2) 라운드로빈(Round-Robin)스케줄링: 각 프로세스는 같은..
-
(6) HTTP / HTTPSCS 지식/○ Network 2021. 7. 27. 14:24
1. HTTP / HTTPS 통신규약 1-1) HTTP 정의 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약 1-2) 특징 HTTP는 텍스트 교환이므로, 네트워크 spoofing등 신호를 가로채면 내용이 노출되는 보안 이슈가 존재함 1-3) 해결 1-2)의 해결에 대해 보안 문제를 해결해주는 것이 HTTPS 1-4) HTTPS 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용하여 클라이언트와 서버가 자원을 주고 받을 때 사용하는 통신 규약 HTTPS는 텍스트를 공개키-SSL 암호화 방식으로 암호화를 함 2. HTTPS 통신 과정 2-1) 흐름 애플리케이션 서버(A)를 만드는 기업은 HTTPS를 적용하기 위해 공개키와 개인키를 만든다. 신뢰할 수 있는 CA 기업을 선택하고, 그..
-
(5) 대칭키 & 공개키(비대칭키) & SSLCS 지식/○ Network 2021. 7. 27. 14:08
1. 대칭키란? 1-1) 정의 암호화와 복화에 같은 암호키(대칭키)를 사용하는 알고리즘 1-2) 특징 (a) 장점 동일한 키를 주고 받기 때문에 매우 빠르다는 장점이 있음 (b) 단점 대칭키 전달 과정에서 해킹 위험에 노출될 수 있음 2. 공개키(비대칭키) 2-1) 정의 암호화와 복호화에 사용하는 암호키를 분리한 알고리즘 2-2) 특징 자신이 가지고 있는 고유한 암호키(비밀키)로만 복호화할 수 있는 암호키(공개키)를 대중에 공개 관용 암호(대칭 키) 공개키 암호(비대칭 키) - 암호/복호에 동일한 키와 동일한 알고리즘이 사용 - 암호/복호에 동일한 알고리즘 사용하지만 서로 다른 키를 이용 - 수신자와 송신자는 키를 교환(이 과정에서 해킹 당할 수도 있음) - 수신자와 송신자는 키 교환이 필요없음 (공개키..
-
(4) UDP & DNSCS 지식/○ Network 2021. 7. 25. 15:58
> 내글 참조 https://korshika.tistory.com/134?category=974498 (2) 인터넷 통신 - IP / TCP,UDP / PORT 1. 인터넷 통신 복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨 이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임 1-1) IP (internet protocol) 통신하기 위한 규약의 총칭 통신규약을 따 korshika.tistory.com https://korshika.tistory.com/136?category=974498 (3) 인터넷 통신 - PORT, DNS 1. Port 란? 1-1) 정의 한 IP에 여러 연결이 필요한 경우 사용하게 되는 것, 패킷이 Port로 구분 됨 받을 때와 전송할 때 마찬..
-
(3) TCP/IP (흐름제어 & 혼잡제어)CS 지식/○ Network 2021. 7. 23. 16:19
> 내글 참조 https://korshika.tistory.com/134 (2) 인터넷 통신 - IP / TCP,UDP / PORT 1. 인터넷 통신 복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨 이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임 1-1) IP (internet protocol) 통신하기 위한 규약의 총칭 통신규약을 따 korshika.tistory.com 1. TCP 통신이란? 1-1) 정의 네트워크 통신에서 신뢰적인 연결방식 TCP는 기본적으로 unreliable할 수 있는 network에서 reliable network를 보장할 수 있도록 하는 프로토콜 TCP는 network congestion avoidance algorithm 사용 1-2) ..
-
(2) 3 way handshake - 연결CS 지식/○ Network 2021. 7. 22. 22:48
> 내글 참조 - 3way https://korshika.tistory.com/134 (2) 인터넷 통신 - IP / TCP,UDP 1. 인터넷 통신 복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨 이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임 1-1) IP (internet protocol) 통신하기 위한 규약의 총칭 통신규약을 따 korshika.tistory.com 1. 3 way handshake 란? 1-1) 필요성 오늘날의 서버 - 클라이언트 연결은 논리적인 연결방식(물리적으로 direct하게 직접연결과 대비) 이를 검증하기 위한 절차가 있어야 하고 이를 위해 필요함 1-2) 과정 추가 참조 : https://mr-zero.tistory.com/36 [정..