마이의 개발 블로그

[교육] 원티드 프리온보딩 7월 백엔드 챌린지 사전과제 본문

개발지식/기타

[교육] 원티드 프리온보딩 7월 백엔드 챌린지 사전과제

개발자마이 2023. 6. 30. 05:25
반응형

(1) 동시에 같은 DB Table row 를 업데이트 하는 상황을 방어하기 위해 어떻게 개발하실 건지 설명해주세요.

- 트랜잭션을 이용하여 하나의 단위 동작이 끝나기 전까지 해당 row의 동시 업데이트를 방지합니다.

(2) TCP 와 UDP 의 차이를 작성해주세요.

- TCP는 연결 지향, UDP는 비연결 지향

- TCP는 흐름제어 및 혼잡제어기능을 내장하고 있으나 UDP는 그렇지 않음

- TCP는 데이터 전송에 있어 신뢰성을 보장하는데 반해 UDP는 패킷 손실이 발생할 수 있음

- TCP는 신뢰성을 위한 오버헤드 및 제반 과정으로 인해 속도에 있어 불리, UDP는 속도측면에서 유리

(3) 웹 브라우저에 네이버 를 검색하고 화면에 네이버 화면이 출력이 될 때 까지 내부적으로 어떤 동작들이 수행이 되는지 설명해주세요.

- 사용자가 '네이버'를 검색

- 웹 브라우저에서 '네이버'에 해당하는 IP주소를 DNS에 요청 후, DNS에서 IP 주소를 찾아 응답

- IP주소를 바탕으로 TCP연결 수립 후 (TCP/IP 프로토콜)

- 브라우저에서 네이버 서버로 HTTP 요청 전송 (HTTP or HTTPS 프로토콜)

- 네이버 서버에서 HTML 문서로 응답 구성 후 웹브라우저로 전송

- 브라우저에서 응답내용 해석 후 렌더링하여 화면에 표시 (HTML, CSS, JavaScript)

(4) 본인이 주력으로 사용하는 언어에서 설계적 결함 한 가지를 작성해주세요.

- JAVA: unsigned 미지원으로 큰 수를 처리해야하는 프로그램 작성 시 불리할 수 있음 

(5) 본인이 주력으로 사용하는 언어에서 자료구조와 관련 된 클래스가 내부적으로 어떻게 동작하는지 한 가지 사례를 정하여 작성해주세요.

JAVA - ArrayList

- 컬렉션 프레임워크의 컬렉션데이터 그룹 3가지(List, Set, Map) 중 List 인터페이스 구현 클래스의 하나

- ArrayList는 배열과 유사한 구조를 가지며 삽입, 삭제, 정렬 등의 메서드를 제공

 

ArrayList의 동작

- 삽입:

1) 인덱스 없을 시: 필요 시 배열 크기 조절 후 배열의 맨 끝에 요소 저장

2) 인덱스 지정 시: 삽입할 인덱스의 요소부터 마지막 요소까지 한 칸씩 뒤로 이동 후, 요소를 인덱스에 저장
- 삭제: 요소 삭제 후 뒤에 있던 요소들을 한 칸씩 앞으로 이동하여 빈 자리를 채움
- 탐색: 인덱스를 통해 요소에 접근 후 요소 반환

- 크기 조절: 요소의 추가 또는 삭제에 따라 내부 배열의 크기를 동적으로 조절
- 배열 재할당: 요소의 추가나 삭제로 인해 내부 배열의 크기가 변경될 때, 기존의 배열을 복사하여 더 크거나 작은 새로운 배열을 생성하고, 요소들을 새 배열에 복사함

반응형
Comments