CS
-
Array vs List 차이점, LinkedList, ArrayListCS/자료구조 2023. 4. 25. 22:38
Array(배열) List(리스트) 인덱스가 있는 자료형 객체 생성 시 크기 할당 필수 크기를 할당할 필요가 없음 순차적으로 자료 저장 👉자주 삭제되거나 추가되는 데이터는 적절하지 않음 앞의 요소가 삭제되면 새로 추가되는 요소가 그 공간에 저장될 수 있음 삽입, 삭제가 느림 (shift 해주는 비용이 생기기 때문) 👉 이 문제를 해결하기 위한 자료구조가 LinkedList 삽입, 삭제가 빠르지만 데이터 조회가 느림 LinkedList - 각각의 원소들은 자기 자신 다음에 어떤 원소인지만을 기억하고 있어 이 부분만 다른 값으로 바꿔주면 삽입과 삭제를 해결할 수 있음. - 원하는 위치에 한 번에 접근할 수 없음 - 삽입, 삭제 빠름, 조회 느림 ArrayList - 자바의 List 인터페이스를 상속받은 여러..
-
HashMap vs LinkedHashMap 차이점 및 사용CS/자료구조 2023. 4. 25. 22:30
Java springboot 서버단에서 일부 작업을 하다가, 객체로 데이터를 전달해줘야되는 과정에서 순서를 보장해야되는 경우가 있었다. 이렇게 객체를 담는데 순서를 보장하며 넣어주고 싶을 때 사용하는 자료구조가 "LinkedHashMap" 이다. LinkedHashMap은 Map에 입력된 순서를 기억하는 자료구조이다. LinkeHashMap에 저장되는 키와 값은 Map.Entry 클래스를 구현한 Node 클래스에 저장된다. Node 클래스에는 before, after 멤버가 있는데 LinkedHashMap에 입력된 순서에 따라 연결 리스트 구조를 형성한다. LinkedHashMap은 기본적으로 HashMap이라 사용법이 HashMap과 동일하다. 차이점을 살펴보면 아래와 같다. HashMap HashMa..
-
Collection - List, Set, MapCS/자료구조 2023. 3. 7. 20:49
1. List - 순서가 있음 - 중복 허용 - 크기가 가변적 - 인덱스로 원소에 접근 가능 1-1. LikedList - 양방향 포인터 구조로 데이터 삽입, 삭제가 빠르다. - ArryList보다 검색이 느리다. 1-2. ArrayList - 단방향 포인터 구조로 데이터 순차적 접근에 강점을 가진다. - 배열을 기반으로 데이터를 저장한다. - 데이터 삽입, 삭제가 느리다. - 데이터 검색이 빠르다. 2. Map key, value 한 쌍으로 이루어지는 데이터 집합 key는 중복을 허용하지 않으며 순서를 보장하지 않는다. 높은 검색 속도를 원할 때 주로 사용된다. 인덱스가 따로 존재하지 않기때문에 iterator를 사용. 2-1. HashMap - Key에 대한 중복이 없음, 순서를 보장하지 않음 - K..
-
HTTP vs HTTPS 쉽게 이해하기CS/Network 2023. 3. 1. 21:21
평소에 내가 알고있던 지식은 고작 - HTTPS는 HTTP 프로토콜에 SSL 프로토콜이 더해져서 보다 더 안전하다. - HTTP는 패킷을 가로채면 수정할 수 있는 위험성이 있지만 HTTPS는 패킷이 암호화되어 패킷을 가로채더라도 암호화 되어있기 때문에 보다 더 안전하다. 이정도로만 알고있었다. 하지만, 어떤 방식으로 암호화가 되는지 깊이있게 공부하지 않았고, 이는 곧 면접에서 대답을 잘 못했었다. 이번 기회에 제대로 알아보고자 정리해보고자 한다. HTTPS HTTPS에서 통신 프로토콜은 TLS(Transport Layer Security) 또는 이전에는 SSL(Secure Sockets Layer)을 사용하여 암호화된다. 따라서 "HTTP over TLS" 또는 "HTTP over SSL" 이라고도 불린..
-
대칭키 vs 비대칭키CS/Network 2023. 3. 1. 21:10
대칭키 : 서버와 클라이언트가 주고 받을 데이터의 암호화를 위해 동일한 키를 갖는다. 비대칭키 : 어떠한 정보를 암호화·복호화 할 때 사용하는 키가 서로 다르다. 대칭키와 다르게 비대칭키를 활용한 암호화에는 개인키와 공개키 두 가지가 사용된다. 또한, 비대칭키를 활용한 암호화는 개인키로 암호화를 하는 방식과 공개키로 암호화를 하는 방식 두 가지로 나뉘게 된다. 1) 공개키로 정보를 암호화하는 경우 공개키로 암호화 되었다면 개인키로 해제할 수 있습니다. 공개키로 해제는 불가능하다. 철수가 영희의 공개키로 보물상자를 암호화하여 주었다면, 이 보물상자는 영희의 개인키만으로만 복호화가 가능하다. 이러한 방식은 개인키를 가지고 있는 사람만 복호화를 할 수 있다에 초점을 둔 암호화 방식이다. 2) 개인키로 정보를 ..
-
웹서버(Web Server) vs WAS(Web Application Server)CS/etc 2022. 12. 19. 20:37
1. Static Pages vs Dynamic Pages 1-1. Static Pages 항상 동일한 페이지를 반환한다. image, html, css, js 파일과 같은 컴퓨터에 저장되어 있는 파일들 1-2. Dynamic Pages 인자의 내용에 맞게 DB를 거쳐 동적인 contents 반환 * Servlet: WAS 위에서 돌아가는 Java Program 2. Web Server와 WAS의 차이 2-1. Web Server HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램 ex) Apache Server, Nginx 요청..
-
모바일 웹 vs 웹앱 vs 네이티브앱 vs 하이브리드앱CS/etc 2022. 12. 19. 20:10
핵심용어 용어설명 모바일 웹 데스크 탑 브라우저에 실행되는 웹 어플리케이션을 모바일 스크린 크기로 줄여 놓은 것 웹 앱 모바일 웹과 비슷하지만 구동방식이 앱처럼 보이게 한 앱 실행 : 웹 브라우저(단일 페이지 방식) 겉모습과 구동방식이 마치 네이티브 같은 웹페이지(모바일 웹보다 모바일 최적화) 운영체제별로 개발할 필요가 없음(심사과정X, but, 웹 브라우저를 통해서만 개발 가능) 개발 : 웹 개발 방식과 동일 네이티브 앱 모바일 기기에 최적화된 언어로 개발된 앱으로 안드로이드 SDK를 이용해 java 언어로 만드는 안드로이드앱과 iOS SDK를 이용해 Ovjective-C 언어로 개발된 아이폰 앱 등 하이브리드앱 = 네이티브앱 + 웹앱 앱의 기반이 되는 콘텐츠 영역은 HTML 기반의 웹 앱으로 제작 최..