CS
-
[OS] 프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍CS/운영체제 2023. 8. 31. 20:00
Q) 프로세스와 스레드의 차이에 대해 설명해주세요. A) 프로세스는 OS 로부터 CPU 와 메모리를 할당받아 실행중인 프로그램이고, 스레드는 이 프로세스안에서 실행되는 작업의 단위입니다. 프로세스는 운영체제로부터 자원을 할당받지만 스레드는 프로세스로 부터 자원을 할당받으며 프로세스 내의 코드, 데이터, 힙 영역을 공유하기 때문에 좀 더 효율적인 자원 사용이 가능해집니다. 또한 같은 프로세스 내의 스레드에서의 컨텍스트 스위칭이 프로세스의 컨텍스트 스위칭에 비해 더 빠르다는 장점이 있습니다. 신입 개발자 면접 단골질문으로 나온다는 이 질문을 그동안 대충 외우고만 있었지 제대로 이해하지 않고 있었기에 이번 포스팅을 통해 더 자세히 알아보겠다. 일단 스레드라는 개념은 왜 나왔을까?? 모든 학문의 시발점은 인간의..
-
[DB] 데이터베이스 트랜잭션이란?CS/데이터베이스 2023. 8. 28. 00:01
그동안 대충 알고있던 트랜잭션 개념에 대해 자세히 알아보겠습니다. 공부하기 이전 막연하게 트랜잭션은 여러가지 일들을 하나의 일처럼 생각해서 데이터베이스에 한번에 커밋하는것 이라고 생각했습니다. 뭔가 틀린말은 아니지만 그렇다고 맞는말도 아닌것 같네요. 좀 더 예쁜말로 트랜잭션을 정의하려면 트랜잭션의 성질에 대해 알아봐야하기 때문에 트랜잭션의 대표적인 성질 ACID 에 대해 먼저 알아보겠습니다. ACID 란 트랜잭션의 안정성을 보장하기 위한 네가지 성질 atomicity, consistency, isolation, durability 을 의미합니. 1. atomicity (원자성) 한 트랜잭션의 연산들이 모두 성공하거나, 모두 실패되는 성질. 2. consistency (일관성) 한 트랜잭션의 이전과 이후 ..
-
[JAVA] JVM RuntimeDataArea 의 Heap 영역CS/언어 2023. 8. 26. 17:50
JVM의 RuntimeDataArea 에는 다섯가지 영역이 있습니다. 1. Method Area 2. Heap Area 3. Stack Area 4. Native Method Stack 5. PC register 그 중 Heap Area 는 new 연산으로 선언한 객체, 배열 인스턴스들을 저장하는 공간입니다. Heap 영역은 JVM당 하나만 실행되며 스레드들이 서로 공유하는 영역이므로 메모리를 주기적으로 관리해줘야합니다. JVM 에서는 Garbage Collection 방식을 사용해 Root Set 에서 더이상 참조되지않는 인스턴스들을 제거해 메모리를 재활용 합니다. reachable -> 참조되고있는 인스턴스 unreachable -> 참조되고있지 않은 인스턴스 Young Generation 은 new..
-
[JAVA] 자바 Runtime Data Area 분석CS/언어 2023. 8. 18. 20:54
** 개인 학습을 위해 작성된 글이며 모든 정보는 오류가 있을 수 있습니다. 자바 Runtime Data Area 에 대해 알아보기전 간단하게 자바 프로그램의 실행과정에 대해 간단하게 알아보겠습니다. 개발자가 작성한 자바 코드를 자바 컴파일러가 바이트 코드로 변환시켜줍니다. 로딩된 클래스들은 Execution Engine을 통해 해석됩니다. 이후 해석된 바이트코드는 Runtime Data Area 에 배치돼 실질적인 수행이 이루어집니다. Runtime Data Area의 구조는 그림과 같이 5가지 영역으로 나뉩니다. 5가지 영역중 Method Area 와 Heap Area 는 스레드들이 공유하는 영역이고 Stack Area, PC Register, Native Method Stack 은 개별 스레드마다 ..
-
[네트워크] TCP 3 way handshake, 4 way handshakeCS/네트워크 2023. 8. 14. 19:28
** 개인 학습을 위해 작성된 글이며 모든 정보는 오류가 있을 수 있습니다. TCP 3 way handshake 과정을 알아보기 전 클라이언트로부터 서버까지 Http Request 가 어떻게 전송되는지 알아보겠습니다. 클라이언트가 서버에 데이터를 요청하는 경우 클라이언트는 위에서 아래로 즉 Application -> Transport -> Internet -> Network Interface 계층을 거쳐 서버로 Http Request 를 전송하게 되는 것입니다. 이후 서버는 받은 데이터를 기반으로 Http Response 를 만들어 클라이언트에서 수신했던 방법과 같은 방법으로 응답을 전송합니다. 그럼 여기서 생기는 의문점. 어떻게 7계층인 Application Layer 에서 작성한 Request, Re..
-
[네트워크] TCP/IP 프로토콜이란CS/네트워크 2023. 8. 12. 14:15
TCP 프로토콜과 IP 프로토콜이 같이 쓰이는 경우가 많기 때문에 TCP/IP 프로토콜이라 묶어 부르는 것이지 TCP/IP 프로토콜이라는 자체 프로토콜이 있는것이 아닙니다. 자 그러면 TCP 프로토콜과 IP 프로토콜에 대해 알아보겠습니다 TCP 프로토콜 OSI 7Layer 중 4계층인 전송계층에 속하는 중요 프로토콜로 네트워크 망에 연결된 컴퓨터의 프로그램 간 데이터를 순서대로, 에러없이 교환할 수 있게 하는 역할이다. 인터넷에서 패킷은 각각 독립적으로 전송되며 네트워크의 혼잡도에 따라 송신되는 순서와 수신되는 순서가 달라질 수 있습니다. TCP 는 전송이 시작되면 모든 패킷이 순서대로 도착하도록 합니다. 이렇게 TCP는 데이터를 패킷으로 분할하여 전송하고, 패킷 전송 과정을 연결형 통신 방식으로 제어하..
-
[네트워크] https://www.google.com/ 을 접속할 때 일어나는 일CS/네트워크 2023. 8. 11. 17:55
[본문은 아래 링크의 질문들을 정리한 글입니다] https://github.com/ksundong/backend-interview-question GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, github.com 1. 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 합니다. 이 때, Domain으로 요청을 보..
-
mysql 기본문법 자주 까먹는 것들 정리CS/데이터베이스 2023. 1. 17. 19:07
특정 문자를 포함할 때 ex) address 테이블에서 맨 앞에 강원도를 가지는 문자열만 가지고 오고 싶을 때 WHERE ADDRESS like "강원도 %" 강원도를 뒤에 가지고 있는 문자열 WHERE ADDRESS like "% 강원도" 중간 WHERE ADDRESS like "% 강원도 %" 전화번호가 없는 경우 NONE 으로 변환해서 출력 SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO,'NONE') 내림차순으로 정렬했을때 첫번째 인자만 출력 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1