반응형

분류 전체보기 277

프로그래머스 레벨2 해시 - 전화번호 목록

풀이 과정전화번호부에 적힌 전화번호를 담은 배열 phone_book이 solution 함수의 매개변수로 주어질때 어떤 번호가 다른 번호의 접두어인 경우가 있는지 확인을 잘하는게 포인트이다.  phone_book 에 전화번호가 저장이 되어있고 중복된 전화번호는 없다. 그렇다면 어떻게 하면 좋을까?  문제 코드class Solution { public boolean solution(String[] phone_book) { boolean answer = true; Map h = new HashMap(); for(int i=0; i 첫 번째 for 문에서 각 전화번호를 HashMap 에 저장하고 키는 인덱스이고 값은 전화번호문자열로 지정했다. for(int..

카테고리 없음 2024.07.05

프로그래머스 레벨2 해시 - 의상

풀이 과정map을 이용하여 옷의 종류당 개수로 데이터를 세팅해야한다. 아직 추가된 옷의 종류가 없다면 해당 종류의 옷을 1개로 넣고 이미 해당 종류의 옷이 있다면 원래 종류에서 1개를 추가 해야한다. for(int i =0; i   map에 들어 있는 옷의 종류당 개수를 모두 곱하면 옷의 조합의 수를 구할 수 있는데, 이때 옷의 종류마다 해당 종류를 고르지 않는 경우가 있기 때문에 옷의 종류당개수에 1을 더하여 곱해줘야한다. String[] keys = clothesMap.keySet().toArray(new String[0]); for (int i = 0; i    문제의 조건에서 스파이는 하루에 최소 한 개의 의상은 입는다는 조건이 있으므로 옷을 하나도 고르지 않는 ..

알고리즘 2024.07.03

로드밸러싱(Load balancer) L4 / L7

로드밸런싱이란?보통 운영체제의 프로세서의 작업 스케쥴링 또는 네트워크에 주로 사용되는 용어이다. 지금 알아보는것은 네트워크 로드밸런싱을 의미한다. 즉, 서버가 여러개(Sclae-out)일 대 요청 트래픽을 적절하게 분산시켜주는 서비스가 Load balancing이다.  서버 다중화 환경에서의 세션 불일치단일 서버 환경에서 session을 통한 로그인을 구현할때 session 불일치 문제를 신경쓸 필요가 없다. 하지만 서비스가 커짐에 따라 한대의 서버로 운영하는것이 불가능해졌다고 가정해보자. 그래서 서버를 업그레이드 해야되는데 다음과 같이 두가지 방식이 존재한다. scale- up, scale- out   scale - up 서버 자체 성능을 늘려 부하를 견딜수 있게 하는 방식이지만, 여전히 서버 한 대에..

카테고리 없음 2024.07.01

공인(Public) IP와 사설(private) IP의 차이

공인 IP (Public IP) 공인 IP는 인터넷 서비스 제공자(ISP)에 의해 할당되며 전역 인터넷에서 사용된다. 인터넷을 통해 전 세계적으로 공개되며 고유한 식별자 역할을 한다. 사용하면 인터넷 상에서 다른 장치나 네트워크에서 접근할 수 있다. IPv4에서는 32비트로 표현되며, IPv6에서는 128비트로 표현이 된다.   사설 IP (Private IP)사설 IP주소는 일반적으로 집이나 사무실 내부의 로컬 네트워크에서 사용되며, 인터넷에 직접 연결되지 않는다. 로컬 네트워크 내에  유효하며, 인터넷에서는 라우터를 통해 공인 IP로 변환되어야 다른 장치들과 통신할 수 있다.  사설 IP 주소의 범위는 주로 IP 대역 10.0.0.0 ~ 10.255.255.255, 172.31.255.255 등으로 ..

카테고리 없음 2024.06.29

Connetion TimeOut과 Read TimeOut의 차이점

Connetion TimeOut과 Read TimeOutConnetion Timeout은 Service측으로 Connection을 맺길 원하지만, Server의 장애 상황으로 Connection조차 맺어지지 못할 때 발생하는 timeOut 이다. Client와 Server가 연결될 떄 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을수립한다. 이 과정을 3-way-Handshake라고 한다. 즉, Connetion Timeout이란 3-way Handshake가 정상적으로 수행되어 서버에 연결되기까지 소요된 시간이다. Read TimeOut은 연결을 완료한 후 요청을 보냈는데 예상 응답시간을 넘어도 응답이 돌아오지 않아 발생하는 timeout이다. RTO와 RTTRTT는 재시도 하는 시간을 말하..

카테고리 없음 2024.06.27

대칭키, 비대칭키 암호화 방식에 대해 설명하세요

양방향의 대칭키 암호, 비대칭키 암호 그리고 단방향 암호는 모두 암호화 기술의 종류는 나타 낸다.   양방향 알고리즘은 주로 데이터의 기밀성을 보호하는 데 사용된다. 암호화된 데이터를 해당 키를 가진 사람만이 복호화 할수 있기 때문에, 데이터를 안전하게 전송하고 저장, 관리할 수 있기 떄문이다.  반면 단방향 암호화 기술은 데이터의 무겨렁을 검증하는 데 사용된다. 복호화가 불가능한 암호화이기 때문이다. 예를 들어 비밀번호를 단방향으로 암호화 저장하면 복호화 하지 안혹도 입력한 비밀번호와 저장된 비밀번호를 암호화 한 상태로 비교하며 데이터의 변경 여부를 확인할 수 있다. 대칭키대칭키는 암복호화키가 동일하며 해당 키를 하는 사람만이 문서를 복호화해 볼수있게 된다.  공개키 암호화 방식에 비해 속도가 빠르다는..

카테고리 없음 2024.06.20

세션 기반 인증과 토큰 기반의 인증의 차이에 대해 설명하세요

인증 & 인가 인증(Autenticaion): 유저가 누구인지 확인하는 절차 특정 서비스에 일정 권한이 주어진 사용자임을 아이디와 패스워드를 통해 인증 받는 것회원가입, 로그인  인가(Authorization): 유저의 요청에 대한 권한을 확인하고 허가 해주는 것 인가를 하기 위해서는 반드시 인증이 선행되어야한다!내 계정으로’만’ 할 수 있는 활동을 시도할 때 허가 해주는 것ex) 내가 작성한 글 수정하기, 내 아이디로 좋아요, 댓글 작성 지금도 서버는 웹사이트에서 무수한 사용자들의 요청에 응답해주고 있다.이 때 로그인을 하고 이용하는 사용자와 그렇지 않은 사용자가 있는데, 서버는 각 요청마다, 이를 보낸 사용자가 로그인 과정을 거친 상태인지 허용을 해줄지 말지를 결정해서 응답 해줘야 한다. 이 때 사용..

카테고리 없음 2024.06.13

GET/POST/PATCH /DELETE/PUT 대해서 설명하세요

GET과 POST는 HTTP 프로토콜에서 데이터를 서버로 전송할 때 사용하는 두 가지 주요 메서드이다. 이 둘의 차이점은 다음과 같다.GETGET: 리소스 조회 URL의 쿼리 문자열을 통해 전송   POSTPOST: 서버로 데이터를 전송한다.서버에서는 신규 리소스를 등록하고 생성된 리소스의 경로를 응답데이터로 반환서버에 전달하고 싶은 데이터는 메시지 바디를 통해 서버로 요청 데이터를 전달  PATCHPATCH: 리소스의 일부를 업데이트부분 수정: 리소스의 특정 필드만 변경한다.Idempotent(멱등성): 같은 요청을 여러 번 보내도 결과는 동일하다. (하지만 PUT보다는 덜 엄격하게 적용됨)Request Body: 변경할 필드와 값을 포함한다.  PUTPUT: 리소스를 전체 업데이트전체 수정: 리소스 ..

카테고리 없음 2024.06.12

3 -Way Handshake & 4 -Way Handshake

TCP 3-way Handshake 란? TCP는 장치들 사이에 논리적인 접속을 성립(establish)하기 위하여 three-way handshake를 사용한다.TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. 이러한 절차는 TCP 접속을 성공적으로 성립하기 위하여 반드시 필요하다.   TCP의 3-way Handshaking 역할 • 양쪽 모두 데이타를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이타 전달이 시작하기전에 한쪽이 다른 쪽이 준비되었다는 것을 알수 있도록 한다. • 양쪽 모두 상대편에 대한 초기 순차일련변호를 얻을 수 있도록 ..

카테고리 없음 2024.06.08

도메인에 접속할 때 생기는 과정 (웹 동작 방식 이해)

웹 사이트를 접속하는 과정1. 브라우저 주소창에 www.naver.com을 입력한다.2.  브라우저가 www.naver.com의 IP 주소를 찾기 위해 캐시에서 DNS 기록을 확인한다.3. 만약 요청한 URL(www.naver.com)의 캐시가 없다면, ISP의 DNS 서버가 DNS 쿼리로 www.naver.com을 호스팅하는 서버의 IP 주소를 찾는다.4. 브라우저가 해당 서버와 TCP 연결을 시작한다.5. 브라우저가 웹서버에 HTTP 요청을 보낸다.6. 서버가 요청을 처리하고 응답을 보낸다.7. 서버가 HTTP 응답을 보낸다.8.브라우저가 HTML 컨텐츠를 보여준다.  ISP(Internet Service Provider)개인이나 기업체에게 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을..

카테고리 없음 2024.06.06
반응형