본문 바로가기

프로그래밍

(57)
connection/read timeout Connection Timeout: client가 server에 연결을 요청했으나 어떠한 사유로 시간이 지연되는 경우를 대비하여 시간 제한을 두게 되고,그 시간이 경과한 후 Connection Timeout이 발생한다. 비유: 맛집에 갔는데 대기줄이 길다. 그 줄이 길어서 10분만 기다리다 나간다. Read Timeout:client가 server로의 연결은 성공 했으나 그 요청에 대한 로직을 수행하는 시간이 지연되는 경우를 대비하여 시간 제한을 두게 되고, 그 시간이 경과한 후 Read Timeout이 발생한다. 비유:맛집에 들어가서 주문을 했는데 요리가 도저히 나오질 않아 나간다.
TCP/IP & TCP & UDP TCP/IP: Transfer Control Protocol / Internet Protocol인터넷 표준 프로토콜컴퓨터 간 데이터 전송 시 알맞게 나누어 전송/수신 및 정보 규격 약속 TCP: 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당IP: 패킷 전송 TCP: Transfer Control Protocol 연결이 성공해야 통신이 가능하도록 함데이터 경계를 두지 않음(Byte stream)신뢰성 있는 데이터 전송1:1 통신 UDP: User Datagram Protocol연결없이 통신 가능데이터 경계 구분함(Datagram Service)신뢰성 없는 데이터 전송(재전송이 없음)1:1, 1:N, N:N 통신
암호화(양방향, 단방향, 대칭키, 비대칭키) 양방향 알고리즘암호화된 암호문을 복호화 할 수 있다. 알고리즘: 대칭키 방식, 비대칭키 방식 단방향 알고리즘암호화 하되 복호화는 할 수 없다.알고리즘: Hash 방식 HASH는 단방향 암호임. MD5, SHA 등의 해쉬 함수가 있음. 근데 MD5, SHA-1, HAS-180은 보안이 뚫렸기 때문에 SHA-256, 512를 써야 함. 참고로 안좋은 HASH는 중복이 있기 때문에 중복이 적을수록 좋은 해시임.보안을 더 철저히 하려면 salt값을 적용하는 방법 또는 Hash 함수를 여러번 돌리는 방법 등이 있음. 여튼 개발자는 어떤걸 잘 쓰면 될지를 알면됨pbkdf2 : 솔트값과 해시함수의 반복횟수등을 지정할 수 있다. bcrypt : 패스워드를 위해 탄생해서 아주 강력한 해시 알고리즘이 적용됨. 마찬가지로 ..
프로그래머스 > 해시 > 프린터 package stackqueue; import java.util.ArrayList; import java.util.List; import java.util.LinkedList; import java.util.PriorityQueue; import java.util.Queue; public class Printer { /* 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 ..
프로그래머스 > 해시 > 베스트앨범 package hash; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * Description : */ public class Album { //스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. //노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. // //속한 노래가 많이 재생된 장르를 먼저 수록합니다. //장르 내에서 많이 재생된 노래를 먼저 수록합니다. //장르 내에서 재생..
프로그래머스 > 해시 > 전화번호 목록 public class PhoneBook { public boolean solution1(String[] phoneBook) {//전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.//전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.////구조대 : 119//박준영 : 97 674 223//지영석 : 11 9552 4421//전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.////제한 사항//phone_book의 길이는 1 이상 ..
Cache 참고 블로그1 Cache는 성능 향상을 위해 사용한다.브라우저 캐시와 서버단에서의 캐시가 있다. 브라우저 캐시서버로부터 받아왔던 자원들을 캐시에 저장해 둔다.일정 기간 같은 리소스 요청은 캐시에 있는 내용을 쓰게 됨으로써 서버와의 통신 비용이 줄어든다. 서버 캐시DB 조회 비용을 줄이기 위해 주로 사용된다.자주 변경되지 않는 데이터는 캐싱하여 DB 통신 비용을 줄일 수 있다. 서버 캐시에 대해서 알아보자.얘기해볼 것은 Ehcache, Memcached, Redis 1. Ehcache Spring을 사용하면 가장 쉽게 사용할 수 있는 캐시이다. # Spring boot gradle 설정compile('org.springframework.boot:spring-boot:spring-bookt-starter-c..
NoSQL 정리 나무위키의 내용을 요약/정리 했습니다. NoSQL은 Not only SQL의 약자로 데이터를 저장하는 데에 SQL 외에 다른 방법도 있다! 라고 보면 될 듯 하다.MongoDB와 CouchDB에서 사용하는 쿼리 언어는 전혀 다름에도 SQL이 아니기에 NoSQL 카테고리에 범주한다. 헷갈릴 수 있는데 NoSQL != No RDBMS 임을 알자. BerkleyDB와 같은 NoSQL 이면서 RDMS인 녀석도 있다. (반대로 No RDBMS != NoSQL 이기도 하다. KV-store라는 녀석이 있다.) NoSQL의 정의가 명확하지는 않지만 현재 NoSQL이라 불리는 DB들은 대체적으로 공통적인 부분이 있다. - 대부분 클러스터에서 실행할 목적으로 만들어 졌다. - 대부분 오픈소스이다.- 스키마 없이 동작(S..