OS 기술 면접 대비
·
Computer Science/Operating System
프로세스와 스레드의 차이프로세스는 실행중인 프로그램을 말한다. 메모리 영역을 다른 프로세스와 공유하지 않습니다.스레드는 프로세스 내에서 Stack만 따로 할당 받아 사용한다. 그 외의 메모리 영역을 다른 스레드와 공유합니다.스레드는 프로세스 내에 존재하며, 프로세스가 할당받은 자원을 이용합니다.멀티 프로세스와 멀티 스레드의 특징멀티 프로세스는 두 개 이상의 프로세스가 실행되는 환경을 말합니다.각 프로세스는 독립적인 메모리를 할당 받으므로, 서로 영향을 미치지 않습니다.멀티 스레드는 두 개 이상의 스레드가 실행되는 환경을 말합니다.멀티 스레드는 서로 자원을 공유할 수 있기 때문에 동기화에 주의를 기울여야 합니다.한 스레드에 문제가 생기면 다른 프로세스에도 영향을 미칠 수 있습니다.멀티 스레드의 동시성과 병..
Java 기술 면접 대비
·
Language/Java
https://dev-coco.tistory.com/153 참고 신입 개발자 기술면접 질문 정리 - 자바💡 Java의 특징을 설명해주세요.Java는 객체지향 프로그래밍 언어입니다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어dev-coco.tistory.com Java의 특징 설명Java는 객체지향 프로그래밍언어로, 다형성, 상속, 캡슐화, 추상화 등의 특징을 가집니다.JVM 위에서 구동되어 운영체제에 독립적입니다. 하지만 이 때문에 실행 속도가 상대적으로 느립니다.GC가 자동으로 메모리를 관리해줍니다.JVM에 대한 설명JVM은 Java Virtual Machine의 약자로, Java가 운영체제에 독립적일 수 있게 합니다.클래스..
equals와 hashCode 오버라이딩
·
Language/Java
equals와 hashCodeJava에서 `equals()`와 `hashCode()` 메서드는 모든 Java 객체의 부모 객체인 Object 클래스에 정의되어 있다.때문에 모든 객체는 해당 메서드를 상속 받고 있다. 이는 객체들의 동등성을 비교할 때 사용된다. `equals()`는 같은 객체인지(메모리 주소가 같은지) 확인하는 기능만 제공한다. (즉 `==`와 동일한 동작을 한다.)`hashCode()`는 객체를 식별하는 정수값(해시코드)를 반환하는 메서드이다. 🚨 중요한 규칙`equals()`가 `true`이면 `hashCode()`는 무조건 `true`이다.하지만 `hashCode()`가 `true`여도 `equals`는 `false`일 수 있다. ⬅ 해시 충돌이 발생할 수 있기 때문. equals..
[Spring Boot] Embedded Redis 추가하기 (Mac 해결책)
·
Backend/Spring
개요친구랑 작은 토이프로젝트를 기획하면서, Redis 를 사용할 일이 생겼다. 일단 Redis 환경을 어떻게 구성할지에 대해 고민했다. 1. AWS 환경에서 사용2. 로컬에서 Docker 환경으로 구성3. 로컬에서 Docker 없이 직접 설치 일단 토이 프로젝트이고, 친구와 굳이 'Redis만을 위해' 배포를 할 필요성을 느끼지 못했기 때문에 1은 기각.로컬에서 사용하는 것에 대해 고민하다가 친구가 'Embedded Redis'라는 것을 찾아왔다. Embedded Redis란?애플리케이션 내부에서 내장형 Redis 서버를 실행할 수 있도록 도와주는 방식이다.보통 테스트환경에서 Redis를 별도로 설치하지 않고 애플리케이션과 함께 실행하고 싶을 때 사용한다. Embedded Redis 의 장점은 다음과 ..
[프로그래머스/level 3] 코딩 테스트 공부 - 118668 (Java)
·
코딩 테스트 정복기/프로그래머스
[level 3] 코딩 테스트 공부 - 118668문제 링크 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이DP를 이용해 해당 문제를 해결할 수 있다.먼저 가능한 선택지는 3가지 이다. 1시간을 사용, `alp` 1 늘리기1시간을 사용, `cop` 1 늘리기문제를 해결하여 주어진 `cost`를 사용, `alp_rwd`, `cop_rwd` 만큼 늘리기row를 `alp`, col을 `cop`으로 두고 `[alp][cop]`에 시간(`cost`)을 저장하여 DP를 수행한다.각 [알고력, 코딩력]에 도달하기 위한 경우의 수 중 cost가 가장 적은 것을 선택한다.현재 `[alp][cop]`에서 1시간을 ..
[프로그래머스/level 3] 파괴되지 않은 건물 - 92344 (+누적합, Java)
·
코딩 테스트 정복기/프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/92344 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr[level 3] 파괴되지 않은 건물 - 92344 풀이해당 문제는 누적합으로 해결한다. (r1, c1)에서 (r2, c2)까지 n을 더할 때, 문제처럼 해당 과정이 k만큼 수행되어야 한다면for문으로 작업 시 r*c*k 만큼 수행해야한다. 이는 효율적이지 않다.때문에, 주어진 r1, c1, r2, c2를 이용하여 더하는 구간을 표시하고 이를 더하는 누적합을 수행한다. 아래 이차원 배열에서 (0, 0) 부터 (3,3) 까지 5를 더한다고 하자..
URI와 웹 브라우저 요청 흐름
·
Computer Science/Network
URI(Uniform Resource Identifier)URI란?URI란 인터넷에서 자원을 식별하기 위한 문자열을 의미한다.웹 상의 특정 자원(파일, 페이지, API 등)을 식별하거나 위치를 지정하는 방식이다.URI는 URL과 URN을 포함한다.URL: 리소스가 있는 위치(Locator)를 지정URN: 리소스에 이름(Name)을 부여  URI 구성 요소 schema://[userinfo@]host[:port][/path][?query][#fragment]  https://www.google.com:443/search?q=hello&hl=ko  - schema주로 프로토콜을 정의. 어떤 방식으로 자원에 접근할 것인가 - userinfoURL에 사용자 정보를 포함해서 인증해야될 때 사용. (거의 사용 안함..
포트(PORT)와 DNS
·
Computer Science/Network
PORT 클라이언트에서 게임도 하고 화상통화도 하고 웹 브라우저도 사용하고 있다면 여러개의 서버랑 통신해야한다.클라이언트 IP에서 온 패킷이 게임/화상통화/웹 브라우저 중 어디에서 온 패킷인지 구별하려면?  PORT는 프로그램(컴퓨터 네트워크 프로세스) 간 통신을 구분하기 위한 논리적 번호이다.IP 주소와 함께 사용되고, 하나의 장치에서 여러 어플리케이션이 동시에 작동할 수 있도록 돕는다. 즉, IP는 목적지 서버를 찾는 용도이고, 서버 안에서 돌아가는 애플리케이션을 구분하는게 PORT이다.  DNS(Domain Name System)DNS란 도메인 이름을 IP 주소로 변환해주는 시스템이다.예: `www.google.com` → `200.200.200.2` 도메인을 사용하는 이유는?- 사람들이 IP주소(..
TCP/UDP
·
Computer Science/Network
TCP / UDP란?TCP/UDP는 OSI 7 계층 모델의 전송계층에서 동작하는 프로토콜.IP와 함께 사용되어 데이터를 송수신한다.둘의 주된 차이는 데이터 전송 방식과 신뢰성이다.  TCP(전송 제어 프로토콜, Transmission Control Protocol)의 특징1. 연결지향 : 3 way HandsahkeTCP의 논리적 연결 과정을 말한다. * SYN : 접속 요청 / ACK : 요청 수락(ACK와 함께 데이터 전송 가능)1. 클라이언트가 서버에게 접속을 요청함.2. 서버가 클라이언트의 요청을 수락하고, 클라이언트에게 접속을 요청함.3. 클라이언트가 서버의 요청을 수락함.  2. 신뢰성 : 순서 보장먼저, TCP 프로토콜을 이용한 메시지 전달 과정을 살펴보자.1. HTTP: 프로그램이 메시지 ..
IP(인터넷 프로토콜)
·
Computer Science/Network
IP(인터넷 프로토콜, Internet Protocol) 란?IP는 인터넷에서 데이터를 송수신하기 위한 기본 프로토콜.네트워크 상의 장치들이 서로 데이터를 교환할 수 있도록 규칙과 구조를 정의한다.OSI 7 계층 모델의 네트워크 계층에 속한다. 역할지정된 IP 주소로 데이터를 전달.패킷 단위로 데이터를 전달.네트워크 계층에서 host의 주소 지정과 패킷 분할/조립을 담당. 패킷 전달 과정1. 패킷 구성하기출발지 IP와 목적지 IP, 전송 데이터 등을 담은 패킷을 구성한다.이는 IP 프로토콜에 의해 서버들이 규약을 따르고 있다. 2. 클라이언트 패킷 전달패킷을 통해 인터넷 망에서 노드들이 출발지/목적지를 확인하고 목적지 IP(200.200.200.2)까지 전달한다. 3. 서버 패킷 전달서버도 마찬가지로 새..