ALL
-
[DB] SQL - JOIN문, JOIN 종류 (Inner Join,Natural Join,Outer Join,Cross Join)CS 2021. 8. 9. 04:33
1. Join이란? 두 개 이상의 테이블을 서로 연결하여 데이터를 검색할 때 사용하는 방법 두 개의 테이블을 마치 하나의 테이블인 것처럼 보여준다. 2. 기본 구조 1) 일반 SELECT 테이블.컬럼, 테이블.컬럼 FROM 테이블1,테이블2 WHERE 조건 3. Join 의 종류 Inner Join Natural Join Outer Join Left Join Right Join Cross Join ① 내부 조인 (Inner Join) 1) SELECT 조회할 컬럼 FROM 테이블1, 테이블2 [WHERE 조건문] 2) SELECT 조회할 컬럼 FROM 테이블1 (INNER) JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼 [WHERE 추가조건] 기준 테이블과 조인 테이블 모두에 조인 컬럼 데이터가..
-
[Network] TCP/IP 흐름제어 & 혼잡제어CS 2021. 7. 26. 06:29
>>TCP란? ☑️ 흐름 제어? 혼잡 제어? : 혼잡 상황이 발생하면 네트워크 자원이 낭비되므로 혼잡 상황을 최소화 하기 위한 기법 흐름 제어: 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법. 송신측의 데이터 전송량 제어 혼잡 제어: 송신측의 데이터 전달과 네트워크 상의 데이터 처리 속도 차이를 해결하기 위한 기법. 송신측의 데이터 전송 속도 제어 ✅ 흐름 제어 Flow control 1. Stop and wait 방식 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법 (비효율적) 2. Sliding window 슬라이딩 윈도우 기법 수신 측에서 설정한 윈도우 크기만큼은 송신 측에서 확인 응답ACK를 받기 전에 전송 가능. 송신 버퍼의 범위는 수신 측의 여유 버..
-
[OS] 페이지 교체 알고리즘 - FIFO/LRU/LFU/MFU/NURCS 2021. 7. 18. 05:19
💡 페이지 교체 알고리즘 운영체제는 주기억장치보다 더 큰 용량의 프로그램을 실행하기 위해 프로그램의 일부만 주기억장치에 적재하여 사용한다. 이를 가상메모리 기법이라 한다. 페이징 기법으로 메모리를 관리하는 운영체제에서 필요한 페이지가 주기억장치에 적재되지 않았을 시(페이지 부재) 어떤 페이지 프레임을 선택하여 교체할 것인지 결정하는 방법을 페이지 교체 알고리즘이라고 한다. * 프레임: 물리 메모리를 일정한 크기로 나눈 블록 * 페이지: 가상 메모리를 일정한 크기로 나눈 블록 ✅ 페이지 교체 알고리즘의 종류 OPT - Optimal : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체 FIFO - First In First Out LRU - Least Recently Used : 가장 오랫동안 사용되지 않은..
-
[DB] SQL 인젝션 (SQL Injection )CS 2021. 7. 10. 20:09
✔️SQL 인젝션(SQL Injection)이란? 보안상의 취약점을 의도적으로 이용하여 악의적 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법중 하나. *코드 인젝션의 종류에는 SQL 인젝션, HTML 스크립트 삽입, evaluation 취약점, 객체 삽입, 원격 파일 삽입, 셸 삽입 등이 있다. 1. Error Based SQL Injection 논리적 에러를 이용한 인젝션 방법 가장 많이 쓰이고, 대중적 공격 방법 보통 로그인을 할때 아래와 같은 쿼리문으로 인증한다. SELECT * FROM Users WHERE id = 'aaa' AND password = 'qwer1234@' 이때 id에 admin, 패스워드에 password' OR 1=1 --를 입력하면 ..
-
[NETWORK] TCP와 UDPCS 2021. 7. 2. 03:53
💡 TCP, UDP가 뭘까? 네트워크 계층들 중 전송계층(Transprot Layer)에서 데이터를 보내기 위해 사용하는 프로토콜 🔸TCP(Transmission Control Protocol) 일반적으로 TCP와 IP를 함께 사용 신뢰성을 보장하는 연결지향형 프로토콜 3-way Handshaking 과정을 통해 연결 설정 4-way handshaking 을 통해 연결 해제 가상회선 패킷 교환 방식 패킷을 전송하기 위한 논리적 경로를 배정 흐름 제어 데이터 처리 속도 조절하여 수신자의 버퍼 오버플로우 방지 송신자가 감당 안되게 많은 데이터를 빠르게 보내 문제가 생기는 것 방지 수신자가 윈도우 크기(Window Size)통해 수신량 설정 혼잡 제어 네트워크 내 패킷 수 넘치지 않도록 방지 전이중(Full-..
-
[OS] 세그멘테이션 SegmentationCS 2021. 6. 27. 21:42
페이징 : 프로세스를 정확하게 일정한 간격(페이지)으로 잘라 메모리에 적재하는 방법 세그멘테이션 : 프로세스를 논리적 단위(세그먼트)로 잘라서 메모리에 적재하는 방법 ✔️세그멘테이션 페이징과 같이 가상 메모리를 관리하는 기법 중 하나. 세그멘테이션에서는 프로세스= 세그먼트의 집합 프로세스를 논리적 내용을 기반으로 나눠 메모리에 배치. => 각 세그먼트는 연관된 기능을 수행하는 하나의 모듈 프로그램 한 프로세스는 기본적으로 세가지 segment로 나눌 수 있음 (그 안에서 각각 더 작은 세그먼트로 나눌수도 OO) - Text(=code) segment(Read) - 프로그램의 기계어 명령이 들어있음 - Data segment(Read & write) - 초기화 된 전역변수, 정적 변수 저장 - Stack ..
-
[rxSwift] Swift UItextView 에서 Placeholder설정, DidBeginEditing, DidEndEditingiOS 2021. 6. 3. 01:32
아주아주 간단한 기능들부터 rxSwift 로 하나씩 해보는 중이다. UItextView 에는 Placeholder기능이 없다. 그래서 야매로 textView Placeholder기능을 구현해봤다. 일단 textview가 클릭됐을때 아무 입력이 없는 상태에서도 DidBeginEditing이 호출되기때문에(처음알았다) 이 때 textView안의 내용이 placeholder의 내용과 같으면 지워주는 식으로 구현을 했다. 만약 클릭을 했다가 아무 내용도 쓰지 않은 채 다른 곳을 누르면 다시 placeholder가 채워져야 하기 때문에 didEndEditing 으로 구현했다. 코드 func textSetUp(){ textView.rx.didBeginEditing .subscribe(onNext: { [self] ..
-
[swift] AutoLayout 기초 개념 한번에 정리iOS 2021. 5. 10. 02:53
해당 뷰의 x,가로/ y,세로 가 모두 충족되어야함. (혹은 네 방향 앵커) Add missing constraint 누르면 자동으로 추가해줌. ' constraints 충돌시 width, height 보다 ancohor가 우선 Scroll View AutoLayout 스크롤 뷰는 처음에 앵커잡아도 빨간줄이 뜸 --> content가 없기 때문 처음에 스크롤뷰 바로 아래에 UIView 하나 넣는게 편함 View의 제약조건을 Content Layout Guide에 건다. View와 Frame Laout Guide에 equal width(세로스크롤일 경우)/equal height(가로스크롤) 건다. 그리고 필요한만큼 heigth 설정 화면 넘어가는 부분 작업할때는 view controller누르고 sizei..