분류 전체보기 127

[파이썬]-백준(BOJ)12852 _ 1로만들기 ver 2

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 해설 정답을 위한 배열을 만들어 주고 인덱스를 돌면서 1+, 2*, 3* 인덱스에 자기 연산 더하기 1을 저장해주는데 이미 들어가 있는 값보다 작을 경우에만 해준다. 그리고 경로배열은 점화식으로 저장해준다 처음에 무식하게 윗줄부터 3 나누고 2나누고 1 빼서 구하려고했지만 불가능했다. 그다음 Deep Copy 를 이용해 경로들을 저장해 주었지만 소용이 없었다. Deepcopy는 새로운배열을할당해 시간이 오래 걸리고 얕은 복사를 하니 다른경로들도 다 저장되는 오류가 생겼다 12345678910111213..

백준/DP 2021.06.07

TLS

네트워크와 보안 명령어 : trecert 호스트까지 도달하는 경로를 알려준다 무엇이 문제 일까? 모든 지점에서 나의 데이터를 큰 노력없이 볼수 있다. -> 악의적으로 공격시도, 훔쳐 볼수도 있다, -> 중간에 요청을 가로채서 속일수 있다 -> 요청을 가로채서 변조할수 있다 TLS? Transprot Layer Sercurity, 전송 계층 보안 응용 계층 데이터 암호화/복호화 상대 피어의 신원 확인, 메시지의 무결성을 보장한다 암호화된 전송 계층 대이터의 복호화 TCP 443 HTTPS 기반 기술 암호화(Encryption) 정해진 피어만 메시지의 내용을 확인할수 있음 인증(Authentication) 메시지 발신자의 신원을 확인 무결성(Integrity) 메시지가 위/변조 되지 않았음을 보장 SSL? ..

Foward Proxy, Reverse Proxy

What is Proxy? 서버와 클라이언트 사이에 중계기로서 클라이언트 대신 서버와 댈리로 통신을 수행하는 서버 Proxy Server's Role? 클라이언트 대신 서버에게 요청을 받아 응답을 해줘요 캐시를 통해 자원들을 저장할 수있어요 프록시 서버를 거치는 요청 및 응답을 확인할 수 있어요 프록시 서버로 넘어온 데이터를 조작할 수 있어요 Cache 캐리를 통해 자원들을 저장 할 수 있다. -> 네트워크 비용 감소 -> 응답속도 향상 Filter 프록시 서버를 거치는 요청 및 응답을 확인할 수 있어요 -> 보안성 향상 -> 프록시를 통한 모든 요청/응답 로깅 TransCoder 프록시 서버로 넘어온 데이터를 조작 할 수 있다(데이터 압축, 언어 변환 ) -> 네트워크 비용감소 -> 원 서버의 역할 감..

Connection Pool& Keep-Alive

Connection Pool DB에 접근하는 서비스 요청 처리 과정 1. 매번 요청마다 connection이 필요하다. 2.매번 요청마다 connection을 생성한다. 3. connection을 통해 요청을 처리한다. 4.connection을 닫는다. 결론 1. 애플리 케이션이 느려진다. 2.사용자 수가 많아져 커넥션 수가 너무 많아지면 서버가 죽을 수 있다. 고려사항 1. Connection Pool이 너무 작다면, 대기하는 요청이 많아진다. 2. Connection Pool이 너무 크다면, 메모리 낭비가 심해진다. 3. 접속자 수, 서버 부하 등을 고려해 적절한 크기로 조정한다. HTTP(TCP) 소프트웨어 개발시 고려 사항 1. TCP handshake 설정 2. 인터넷 혼잡을 제어하기 위한 TC..

MVC

-> MVC에 대한 설명 What is MVC? Model - 평벙한 자바 객체 POJO - 도메인 객체 또는 DTO로 화면에 전달할 또는 화면에서 전달받은 데이터를 담고 있는 객체(@Entity), Database와 강하게 연관 View - HTML, JSP, THYMELEAF - 데이터를 보여주는 역할, 다양한 형태: HTML, JSON, XML Controller - UserController, ArticleController - 사용자 입력을 받아 모델 객체의 데이터를 변경하거나 뷰에 전달하는 역할, 예) 입력값 검증, 모델 객체 변경, 변경된 모델 개체 뷰에 전달 MVC 장점 동시다발적개발 : 백엔드 개발자와 프론트엔드 개발자 독립적으로 개발 진행 높은 응집도: 논리적으로 관련있는 기능을 하나의..

Back-end/Spring 2021.05.16

Interrupt, Context Switching

IntellJ 파일 자동 저장 과정 저장 공간 확인 - 저장 경로 확인 - 저장 파일 확인 - 저장 Interrupt 일시 정지, 방해하다, 가로막다,중단하다 프로세스가 하던 일을 멈추고 이미 정해진 코드에서 요청에 대한 처리를 수행한다. 인터럽트 서비스 루틴(Interrupt Service Routine, ISR) = 인터럽트 핸들러(Interrupt Handler) 인터럽트 벡터(Interrupt Vector) 위치를을 관리 1. 저장 경로 확인 로직 실행 2. 키보드 입력 인터럽트 발생 3. 현재 실행중인 프로세스 정보(문맥)를 저장 4. 인터럽트 벡터에서 해당 ISR을 찾음 5. 키보드 처리를 위한 ISR 주소로 변경 6. 키보드 인터럽트 처리 7. 저장된 저장 경로 확인 로직 주소로 돌아감 Co..

요청 응답 흐름 과정

정보의 전송 과정 요청 응답 흐름 처리 Browser 웹서버에 원하는 정보를 쌍방향으로 요청을 하고 응답을 받아 사용자에게 보여준다 요청 흐름 1. URL해석 : URL을 입력했을 때 브라우저에서 처음 하는 일을 URL을 해석해 요청을 만드는 일! *URL : 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약, 웹서버에 '무엇을 요청할 것인가' 내용 2. http method get : 조회 post : 입력 put, patch: 수정, 새로운 자원이면 입력 delete : 삭제 응답흐름 1. 요청한 도메인의 서버에서 path를 파악해 response를 생성한다! 잘못된 컨텐츠 타입이 들어오면 해석을 못한다! Domain vs Host Domain : 한 네트워크(서비스)를 대표하는 이름 Host..

Process VS Thread

Program 실행되기 전! 상태의 명령어, 코드 및 정적인 데이터의 묶음 Process 실행 중인 Program!, 운영체제로부터 시스템 자원을 할당 받는 작업의 단위 PCB (Process Control Block) 각 프로세스는 운영체제에서 PCB로 표현 PID : 프로세스 식별자 프로세스 상태 : new, ready, running, waiting, halted 등 프로그램 카운터 : 당므 실행할 명령어의 주소 스케줄링 정보 : 우선순위 Multi Process 하나의 작업을 여러개의 프로세스가 처리 프로세스간 통신 (IPC, Interprocess communication) Context switching 비용이 큼 자식 프로세스 중 하나가 문제가 생겨도 다른 프로세스에 영향이 없음 예) Goo..

Hash Function

배열 원소 하나를 저장하고 검색하는데 평균 O(n)의 시간 소요 트리 원소하나를 저장하고 검색하는 데 평균 O(log n)의 시간 소요 저장된 자료의 양에 상관없이 원소 하나를 저장하고 검색하는 것을 상수 시간에 가능하게 할수는 없을까? 해시테이블?! 임의의 원소를 해시테이블에 저장하려면 1. 해당 원소의 해식밧을 해시 함수를 이용하용 계산한다. 2. 이 해시값을 주소로 하는 위치에 원소를 저장한다. 3. 저장 후에 검색을 할때도 원소의 해시값을 계산해 바로 해당 위치로 이동한다. 해시테이블은 원소의 저장된 위치를 상수시간에 계산할 수 있다. 해시 함수 임의의 길이를 데이터를 고정된 길이의 데이터로 매핑하는 함수 좋은 해시 함수의 조건 계산이 간단해야 한다 입력 원소가 해시테이블 전체에 고루 저장되어야 ..