[도서] 아는 만큼 보이는 백엔드 개발 - Ch2.CS 기초 지식

곽동현·2024년 2월 23일
0
post-thumbnail

Chapter2 : CS 기초 지식

📌목차

2-1) 네트워크

2-2) 운영체제

2-3) 데이터베이스

2-4) 자료구조



✅ 내용정리

네트워크) IP 주소에 대해 설명해주세요.

IP주소란 네트워크에 연겱된 각 컴퓨터를 구분하는 고유한 주소를 뜻한다.
4바이트로 이루어져 있으며, 사람이 알아보기 쉽게 1바이트씩 10진수로 나타낸 총 10진수 4개의 숫자로 구성되어 있다.
컴퓨터가 증가됨에 따라 현재는 IPv616바이트로 확장한 주소체계까지 생겼다.

네트워크) Domain Name 과 DNS에 대해 간략히 설명해주세요.

먼저, Domain NameIP주소를 문자열로 변환한 것이다.
-> 전화번호부에 010-xxxx-xxxx를 외우기 힘드니 "홍길동"으로 저장한 것과 같은 과정이다.

DNS는 Domain Name Service로 도메인과 IP주소의 매핑 정보를 가지고 있는 시스템이다.

DNS의 동작 방식은 아래와 같다.

1) 사용자가 웹 브라우저 url입력창에 도메인을 입력한다.
2) 웹 브라우저는 입력받은 도메인에 해당되는 IP주소를 DNS 서버에 물어본다.
3) DNS 서버는 도메인에 해당하는 IP주소를 반환한다.
4) 웹 브라우저는 IP주소를 받아서 해당 IP주소의 컴퓨터에 접속한다.

네트워크) "Google.com"을 치면 어떤일이 발생하나요?

네트워크) well-known 포트번호에 대해 알고계시나요?

네트워크) 프로토콜에 대해 설명해주세요. 백엔드와 관련된 프로토콜은 어떤게 있을까요?

프로토콜은 컴퓨터 네트워크 사이에서 컴퓨터 간에 쉽게 통신할 수 있도록 정해놓은 규칙과 절차를 말한다.
백엔드와 크게 연관된 프로토콜은 HTTP, HTTPS, TCP, IP 등이 있다.

네트워크) TCP/IP에 대해서 설명해주세요.

네트워크) HTTP 구성요소에 대해 알고계시나요?

HTTP는 클라이언트와 서버 사이에서 데이터를 주고받기 위해 사용하는 프로토콜이다.
구성요소로는 시작 행 / 헤더 / 빈 행 / 본문으로 이루어져있다.

  • 시작 행 : 요청 혹은 응답과 관련된 주요정보
    -> 요청 시작 행 : HTTP 메서드 / 요청 URI / HTTP 버전 정보
    -> 응답 시작 행 : HTTP 버전 정보 / 상태 코드 / 상태 메세지
  • 헤더 : 요청 혹은 응답과 관련된 부가정보
  • 빈 행 : 헤더의 끝을 표시하기 위해 사용하는 빈 행
  • 본문 : 통신을 통해 실제로 주고받는 데이터 (생략가능)
    -> 요청 본문 : 요청 시 전달한 데이터
    -> 응답 본문 : 응답으로 보내는 데이터

네트워크) HTTPS 와 HTTP의 차이점은 무엇인가요?

HTTPS은 HTTP에서 SSL 또는 TLS 와 같은 암호화 프로토콜을 사용하여 보안 요소가 강화된 HTTP 프로토콜 이다.
HTTPS를 사용함으로서, 데이터의 무결성인증이 보장된다.

OS) 운영체제란 무엇이며 주요기능은 무엇인지 설명해주세요.

운영체제는 사용자가 컴퓨터를 쉽게 다룰 수 있도록 사용자와 컴퓨터 사이에서 인터페이스를 제공하고,
컴퓨터의 시스템 자원을 효율적으로 관리 및 분배하는 역할을 담당한다.
대표 운영체제 : Window / MacOS / Linux 등

주요 기능 : 프로세스 관리 / 메모라 관리 / 파일 시스템 관리 / 네트워크 관리 이다.

OS) 프로그램과 프로세스의 차이는 무엇인가요?

보조 기억장치인 디스크에 적재되어 있는 일련의 코드덩어리을 프로그램이라고 표현하며,
해당 프로그램을 실행시켜 메모리에 올라와, cpu를 점유하고 있는 프로그램프로세스라고 표현한다.

즉, 평소에는 프로그램 상태로 있다가 메모리에 올리는 순간 프로세스라고 표현한다.

OS) 프로세스의 메모리 구조와 스레드의 메모리 구조 차이점을 말씀해주세요.

프로세스의 메모리 구조는 크게 4가지 영역으로 코드 영역 / 데이터 영역 / 힙 영역 / 스택 영역 으로 구성되어 있다.
프로세스는 어떠한 영역도, 다른 프로세스와 공유하지 않는다.

스레드는 프로세스 내에서 작업하는 여러개의 실행 단위 라고 할 수 있다.
따라서 스레드의 메모리 구조스택 영역을 제외한 모든 영역을 함께 공유한다.

OS) 스레드의 특징과 이에 따라 발생하는 문제를 말씀해주세요. 어떤 문제가 발생하며 문제에 대한 해결방법은 어떻게 되나요?

스레드는 앞서 말했듯 프로세스 내에서 작업하는 여러개의 단위이다.
따라서 스레드는 스택 영역을 제외한 모든 영역을 함께 공유한다.

이러한 여러개의 스레드가 동시에 활동하는 방식을 멀티 스레드라고 표현하며,
자원을 공유하기 때문에 동기화 처리 문제는 반드시 해결해야한다.

DB) 데이터베이스의 이상 현상에 대해 설명해주세요.

데이터베이스를 설계하면서 중 여러 엔티티와 관계를 추출하는 과정에서 여러 이상 현상이 발생할 수 있다.
삽입 이상 : 새로운 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상.
ex) 한 테이블에 담겨있는 회원정보 , 주문정보 -> 신규 회원이 가입되었을 때 하지도 않은 주문 정보까지 삽입됨
갱신 이상 : 중복된 데이터 값 중 일부 값만 변경함으로써 데이터가 불일치 되는 현상.
ex) 논현역의 행정 명칭이 신논현역으로 바뀌었는데, 테이블의 일부 주소만 신논현으로 바뀜
삭제 이상 : 특정 데이터를 삭제할 때 다른 데이터까지 삭제되는 현상.
ex) 한 테이블에 담겨있는 회원정보, 주문정보 -> 회원이 주문 내역만 취소(삭제)했는데 회원 정보까지 삭제됨

DB) 정규화에 대해 간단히 설명해주세요.

위와 같은 이상 현상들을 막기 위해선 다양한 정규화를 수행해야된다.
제 1정규화 / 제 2정규화 / 제 3정규화 / BCNF / 제 4정규화 / 제 5정규화 순으로 이루어진다.

DB) 트랜잭션이란 무엇인가요?

트랜잭션이란 하나의 기능을 수행하기 위해서 순차적으로 진행되는 하나의 단위 혹은 연산을 의미한다.
일반적으로, 데이터베이스의 데이터를 조작할 때 트랜잭션 단위로 묶어 수행한다.

트랜잭션에서는 크게 커밋롤백 이라는 2가지 키워드가 존재한다.
일련의 단위가 성공하면 순차적으로 커밋을 수행하여 작업을 완료시키고
만일, 수행중 오류가 발생하면 롤백시켜 커밋 내역을 초기화시킨다.

자료구조) 자료구조와 알고리즘의 차이는 무엇일까요?

자료구조 : 데이터를 어떠한 단위, 형식으로 저장하는가? -> 다양한 저장 방식
알고리즘 : 다양한 자료구조를 활용하여 어떻게 문제를 해결 할 것인가? -> 문제를 해결하는 과정

프로그램은 어떠한 자료구조를 쓰는가에 따라 성능이 크게 좌지우지 된다.
어떤 자료구조를 쓰는지 결정하는 것과 문제를 해결해나가는 과정을 알고리즘 이라고 할 수 있다.

profile
실패의 경험들을 채워나가기!

0개의 댓글