개발형 코딩 테스트

참고 원본 - 개발형 코딩 테스트

Table of Contents


개발형 코딩 테스트?

  • 정해진 목적을 수행하는 완성된 프로그램을 개발하는 형태의 코딩 테스트
  • 해커톤 형식도 사용
    • 해커톤 : 단기간에 아이디어를 제품화하는 프로젝트, 대체로 1 ~ 2일 진행 후, 발표 및 채점, 수상
  • 기존의 알고리즘 코딩 테스트와의 차이
    • 알고리즘 코딩 테스트
      • 시간 복잡도 및 공간 복잡도 고려를 통해 문제를 해결
      • 하나의 개별 모듈을 개발하는 형태
    • 개발형 코딩 테스트
      • 완성도 높은 하나의 프로그램을 개발하는 형태
      • 다른 외부 모듈을 적절히 조합하는 능력 필요
  • 분야에 따라 요구 사항이 달라짐
    • 모바일 : iOS, Android
    • 백엔드 : Java, Spring, Django
  • 공통적으로 필요한 개념
    • Server
      • Client에서 받은 요청을 처리해서 응답 전송
      • 웹 브라우저 : 로그인 요청을 받아서, 아이디와 비밀번호 확인 후, 결과를 전달
      • 위와 같은 과정에서 DataBase, 외부 API 등을 포함할 수 있음
    • Client
      • Server에 필요한 데이터를 요청 후 응답 대기
      • 응답을 받으면, 응답을 화면에 적절히 출력
      • 웹 브라우저 : 서버에서 받은 HTML, CSS 코드를 화면에 출력
      • 게임 APP : 서버에서 받은 경험치, 친구목록 등의 정보를 화면에 출력
    • HTTP (HyperText Transfer Protocol)
      • 주로 HTML을 전송하기 위한 규약
      • 모바일 앱 및 게임에서도 특정 형식의 데이터 송수신을 위해 사용
      • 대표적인 HTTP 메서드
        • GET : 데이터 조회 요청 (페이지 접속 및 검색)
        • POST : 데이터 생성 요청 (회원가입 및 글쓰기)
        • PUT : 데이터 수정 요청 (회원 정보 수정)
        • DELETE : 데이터 삭제 요청 (회원 정보 삭제)
        • 자동으로 구현되는 것은 아님, 사전에 해당 HTTP 서버에서 구현이 필요
        • 동작을 위해 pythonrequests 모듈을 사용할 수 있음

REST API

  • Representational State Transfer의 약자
  • 자원, 행위, 표현의 세 가지로 구성
    • 자원 : URI(Uniform Resource Identifier)를 이용, ex) 사용자를 의미
    • 행위 : HTTP 메서드를 이용, ex) 회원 등록을 의미
    • 표현 : Payload를 이용 ex) 특정 포맷에 맞는 데이터, 아이디 및 비밀번호를 의미
  • API (Application Programming Interface) : 실제 다른 프로그램과 상호작용하기 위한 인터페이스

JSON

  • REST API를 호출하기 위해 주로 사용하는 형식
  • JavaScript Object Notation의 줄임말
  • keyvalue의 쌍을 가지는 데이터 객체
  • 내부적으로 다른 타입을 포함할 수 있음
{
    "id" : "Jackson",
    "password" : "1234qwer",
    "age" : 30,
    "hobby" : ["Game", "Youtube"]
}
  • python에서는 json 모듈을 사용하여 처리할 수 있음
import json

user = {
    "id" : Jackson",
    "password" : "1234qwer",
    "age" : 30,
    "hobby" : ["Game", "Youtube"]
}

# JSON 데이터로 변환하여 출력
json_data = json.dump(user, indent=4)
print(json_data) # json_data 출력

# JSON 데이터로 변환하여 파일로 저장
with open("user.json", "w", encoding="utf-8") as file:
    json_data = json.dump(user, file, indent=4)

REST API 연습용 서비스

import requests

# get 메서드를 통해 데이터 받아오기
target = "https://jsonplaceholder.typicode.com/users"
response = requests.get(url=target)

# 응답 데이터는 기본적으로 JSON형식이므로, python 객체로 변환
data = response.json()

# 모든 사용자 (user) 정보를 확인하며, 이름 정보만 삽입
name_list = []
for user in data:
    name_list.append(user['name'])

print(name_list)

리뷰

  • 생각보다 진짜 REST API는 아무데서나 다 들을 수 있음
  • 데이터 저장하는 타입에는 XML, JSON, YAML 등이 존재
  • 범용적으로 많이 사용하는 것은 역시 JSON인 것 같음
  • 필요한 상황 및 방법에 따라 구현해보는 것이 중요함
  • 실무에서 실질적으로 꽤나 많이 필요한 내용으로 생각됨

comments