일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 부트캠프 #개발일지 #TIL #그리드 #CSS
- CSS
- JS예제
- 깃허브오류
- React
- 부트캠프 #코딩 #개발일지 #프론트엔드 #CSS #TIL
- 부트캠프 #CSS #개발일지 #TIL
- Til
- 의사클래스
- ㅜㄹㄹ
- 부트캠프 #개발일지 #TIL #Position #위치
- 알고리즘
- 템플릿스트링
- useEffect
- 부트캠프 #스파르타코딩클럽 #개발일지# #html
- 부트캠프 #스파르타코딩클럽 #개발일지# #TIL #Javascript #confirm #location.href
- 부트캠프 #개발일지 #TIL #FlexboxFroggy #displayflex #flexbox
- 부트캠프
- querySelector
- 결합선택자
- 리액트
- js
- 부트캠프 #개발일지 #TIL #CSS속성 #float #clear
- useState
- 부트캠프 #CSS #개발일지 #TIL #박스모델
- 개발일지
- appendChild
- 개발일지 #TIL #프론트엔드 #HTML
- 특성선택자
- textContent
- Today
- Total
나의 개발일지
기술 면접 준비 - CS 공부 본문
TCP와 UDP의 차이점
연결 지향성:
TCP(Transmission Control Protocol): 연결 지향적인 프로토콜로, 통신하기 전에 연결을 설정하고, 통신이 끝나면 연결을 해제한다. 이는 데이터를 신뢰성 있게 전송하고 수신 확인을 통해 데이터 손실을 방지한다.
UDP(User Datagram Protocol): 비연결 지향적인 프로토콜로, 데이터를 전송하기 전에 연결을 설정하지 않는다. 따라서 속도가 빠르지만, 데이터 전송 중 손실이 발생할 수 있다.
신뢰성:
TCP: 데이터 전송 중에 손실이나 오류가 발생하면 재전송을 통해 신뢰성 있는 데이터 전송을 보장한다.
UDP: 데이터 전송 중에 오류가 발생하더라도 재전송을 하지 않는다. 따라서 손실이나 오류가 발생할 수 있다.
헤더 크기:
TCP: 헤더 크기가 크며, 연결 설정, 순서 관리, 오류 제어 등의 기능을 제공하기 때문에 상대적으로 오버헤드가 크다.
UDP: 헤더 크기가 작으며, 단순한 데이터 전송만을 위한 프로토콜이므로 TCP보다 오버헤드가 적다.
사용되는 애플리케이션:
TCP: 웹 브라우징, 이메일, 파일 전송 등 신뢰성이 중요한 애플리케이션에서 주로 사용된다.
UDP: 스트리밍 서비스, DNS 조회, 온라인 게임 등 속도가 중요한 실시간 응용 프로그램에서 주로 사용된다.
그래서 일반적인 경우, TCP를 사용하고 데이터가 유실되더라도 실시간성이 중요한 스트리밍방송, 통화 등에서는 UDP를 사용한다.
프레임워크와 라이브러리
프레임워크(Framework)란?
- 개발자가 소프트웨어를 개발함에 있어 코드를 구현하는 개발 시간을 줄이고, 코드의 재사용성을 증가 시키기 위해 일련의 클래스 묶음이나 뼈대, 틀을 라이브러리 형태로 제공되는 것을 말한다.
- 제어의 역전 개념이 적용된 대표적인 기술이다.
1) 프레임워크의 특징
- 개발자가 따라야 하는 가이드를 제공한다.
- 개발할 수 있는 범위가 정해져있다.
- 개발자를 위한 다양한 도구 , 플로그인들을 지원한다.\
2) 프레임워크의 장단점
장점 |
|
단점 |
|
라이브러리(Library)란?
- 라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식이다.
프레임워크(Framework)와 라이브러리(Library)의 차이점
즉, 애플리케이션의 Flow(흐름)을 누가 쥐고 있느냐에 달려있다.
- 프레임워크는 그 스스로 제어 흐름의 주도성을 갖는 반면, 라이브러리는 개발자가 가지고 있다.
- 프레임워크는 집이고, 라이브러리는 그 집 안의 가구이다.
- 라이브러리와 달리 프레임워크는 이미 프로그래밍에 대한 규칙을 가지고 있다. 예를 들면 설정파일의 태그설정이나, DB연동 방법등에 대한 규칙을 가지고 있고 개발자는 이를 따라야한다.
라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게 / 어디에게 있는가에 있다.
OOP (Object Oriented Programming)란 무엇인가요?
참고한 벨로그 :
- 많은 객체(Objcet)들이 모여서 상호 협력하면서 메시지를 주고 받으며 데이터를 처리하는 방식의 현실세계의 패러다임을 접목한 프로그래밍 방법이다.
- 다형성을 통해 레고 블럭 조립하듯이 컴포넌트를 유연하고 변경이 용이하기 때문에 대규모 소프트웨어 개발에 많이 사용된다.
- 대표적으로 많이 알려진 Java언어를 포함하여 Ruby Python, C++, Objectivc-C, C#, Kotlin 등이 모두 객체지향 요소를 가진 언어다.
객체지향의 특징
- 캡슐화 : 접근제어 지시자를 통한 정보 은닉 ( public > protected > default > private )을 통해 여러가지 형태의 객체를 디자인 > ex) 싱글톤
- 상속 : 상위 클래스의 특징을 하위클래스에서 상속받아 코드의 중복 제거, 코드 재사용성 증대
- 추상화 : 모델링개념. 클래스 설계를 할때 공통적으로 묶일 수 있는 기능은 추상화 > 추상클래스 > 인터페이스 모델링해서 향후 다형성으로 확장할 수 있도록 설계
- 다형성 : OOP의 OOP답게 만들어 주는 가장 큰 특징
- 다형성을 통해 역할과(인터페이스) 구현을 분리해서 오버라이딩을 통해 서비스의 구현기능을 유연하게 변경, 확장이 가능
- 특히 스프링같은 DI컨테이너를 이용하면 다형성을 극대화 하여 OCP,DIP 설계 원칙을 잘 지키면서도 구현체를 편리하게 변경,확장이 가능
'면접준비' 카테고리의 다른 글
기술 면접 준비 - CS 공부 (0) | 2024.03.26 |
---|---|
기술 면접 준비 - CS 공부 (0) | 2024.03.21 |
기술 면접 준비 (0) | 2024.03.18 |
면접 피드백 정리 (0) | 2024.01.25 |
기술 면접 질문 (공통 질문 + 프로젝트 질문) /W 튜터님 (0) | 2024.01.20 |