728x90
반응형
개발형 코딩 테스트
- 알고리즘 코딩 테스트
- 요구 사항에 맞는 하나의 모듈 개발
- 시간 복잡도 분석 / 공간 복잡도 분석
- 개발형 코딩 테스트
- 완성도 높은 하나의 프로그램을 개발
- 모듈을 적절히 조합하는 능력 요구
- 정해진 목적에 따라서 동작하는 완성된 프로그램을 개발하는 것을 요구하는 코딩 테스트 유형
- 일부 기업은 해커톤 ~> 채용 진행
해커톤(Hackathon): 단기간에 아이디어를 제품화하는 프로젝트 이벤트- 대개 1 ~ 2일 정도 진행, 다수의 해커톤이 대회 형식을 빌려 해커톤이 끝나면 만든 프로그램 시연 -> 발표 -> 채점
- 분야에 따라 상세 요구사항이 다를 수 있음
- ex 1. 모바일 클라이언트 개발: 안드로이드, iOS 앱 개발
- ex 2. 웹 서버 개발: 스프링(Spring), 장고(Django)등의 서버 개발 프레임워크 활용
- But, 분야에 상관 X 꼭 알아야 하는 개념과 도구에 대해 학습 필요
- 서버, 클라이언트, JSON, REST API, ...
서버와 클라이언트
클라이언트) 요청(Request) -> 서버) 응답(Response)
클라이언트(Client) = 고객
- 서버로 요청(Request) 보내고 응답(Response)이 도착할 때까지 기다림
- 서버로부터 응답 받은 뒤에는 서버의 응답을 화면에 출력
- ex 1. 웹 브라우저: 서버로부터 받은 HTML, CSS 코드를 화면에 적절한 형태로 출력
- ex 2. 게입 앱: 서버로부터 받은 경험치, 친구 귓속말 정보 등을 화면에 적절한 형태로 출력
서버(Server) = 서비스 제공자
- 클라이언트로부터 받은 요청(Request)을 처리해 응답(Response)을 전송
- ex. 웹 서버: 로그인 요청을 받아 아이디와 비밀번호가 정확한지 검사하고 그 결과를 응답
HTTP(HyperText Transfer Protocol)
- 웹상에서 데이터를 주고받기 위한 프로토콜
- 보통은 웹 문서(HTML 파일)를 주고받는 데 사용
- 모바일 앱 및 게임 개발 등에서 특정 형식의 데이터를 주고받는 용도로도 사용
- 클라이언트) 요청의 목록에 따라 적절한 HTTP 메서드 이용해 통신 진행
Python - 웹 요청 예제: GET 방식
import requests
target = "http://google.com"
response = requests.get(url=target)
print(response.text)
개발형 코딩 테스트 준비하기
- 2020 카카오 2차 코딩 테스트
- 오프라인 코딩 테스트에서는 JSON format의 데이터를 응답하는 REST API를 활용해야 하니,
REST API 호출과 JSON format 데이터를 파싱해 활용할 수 있는 parser 코드 미리 준지
- 오프라인 코딩 테스트에서는 JSON format의 데이터를 응답하는 REST API를 활용해야 하니,
- 개발형 코딩 테스트의 핵심 키워드: REST API, JSON
REST API
등장 배경
- HTTP: GET, POST, PUT, DELETE 등의 다양한 HTTP 메서드 지원
- 실제로는 서버가 각 메서드의 기본 설명을 따르지 않아도 프로그램 개발할 수 있음
- But, 저마다 다른 방식으로 개발 시 문제될 수 있음 -> 기준이 되는 아키텍처 필요
- REST(Representational State Transfer)
: 각 자원(Resource)에 대하여 자원의 상태에 대한 정보를 주고받는 개발 방식 - 구성요소
- 자원(Resource): URI를 이용
- 행위(Verb): HTTP 메서드를 이용
- 표현(Representations): 페이로드를 이용
REST API
- API(Application Programming Interface): 프로그램이 상호작용하기 위한 인터페이스
- REST API: REST 아키텍처를 따르는 API
- REST API 호출: REST 방식을 따르고 있는 서버에 특정한 요청을 전송하는 것을 의미
JSON(JavaScript Object Notation)
- 데이터를 주고받는 데 사용하는 경량의 데이터 형식
- 키와 값의 쌍으로 이뤄진 데이터 객체를 저장
{
"id": "gildong123",
"password": "1!2@3#4$",
"age": 30,
"hobby": ["football", "programming"]
}
JSON 객체 사용, 파일 저장 예제
import json
# 사전 자료형(dict) 데이터 선언
user = {
"id": "gildong123",
"password": "1!2@3#4$",
"age": 30,
"hobby": ["football", "programming"]
}
# 1. 파이썬 변수를 JOSN 객체로 변환
json_data = json.dumps(user, indent=4)
print(json_data)
# 2. JSON 데이터로 변환하여 파일로 저장
with open("user.json", "w", encoding="utf-8") as file:
json_data = json.dump(user, file, indent=4)
REST API 연습용 서비스
목킹(Mocking): 어떠한 기능이 있는 것처럼 흉내내어 구현한 것
REST API를 호출하여 회원 정보를 처리하는 예제
import requests
# REST API 경로에 접속하여 응답(Response) 데이터 받아오기
target = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url=target)
# 응답(Response) 데이터가 JSON 형식이므로 바로 파이썬 객체로 변환
data = response.json()
# 모든 사용자(user) 정보를 확인하며 이름 정보만 삽입
name_list = []
for user in data:
name_list.append(user['name'])
print(name_list)
728x90
반응형
'Computer Science > 자료구조 | 알고리즘' 카테고리의 다른 글
[이것이 취업을 위한 코딩 테스트다 with 파이썬] 8. 기타 그래프 이론 (0) | 2024.03.13 |
---|---|
[이것이 취업을 위한 코딩 테스트다 with 파이썬] 7. 최단 경로 알고리즘 (0) | 2024.03.13 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] 6. 다이나믹 프로그래밍 (0) | 2024.03.13 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] 5. 이진 탐색 (0) | 2024.03.13 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] 4. 정렬 알고리즘 (0) | 2024.03.13 |