서류 100개써서 최종합격 1개 합격하자는 마인드로 취업 준비했습니다.

프로그래머스, 원티드 등 공통 이력서 작성 후 지원하는 플랫폼을 포함해서는 250군데 이상 지원했을거라 생각됩니다.

흔히 말하는 비전공자였습니다.

4학년 병행하면서 부트캠프 듣고 제대로 준비한 기간은 10개월 정도 된 것 같아요.

가서 열심히 배워서 성장하려 합니다.

 

취준 내용은 좀 더 정리해서 다시 올려보도록 하겠습니다.

궁금하신 사항도 댓글주시면 알려드릴게요!

 

 

1. 기업

가상 화폐 거래소

2. 질문 내용

질문 1. 지원 이유


질문 2. python 어떻게해서 시작하게 되었는지


질문 3. 다른 언어로 일하게되면 가능한지
가능


질문 4. 블록체인, 가상화폐 관심이 있는지? , 이용해본적 있는지?
업비트 이용 경험
바이낸스 이용 경험
어플 이용해 환전해본 경험


질문 5. Gunicorn 설명해보기, Gunicorn, Nginx 를 사용하면 왜 다중요청 처리가 빨라지는지 이유 설명 (꼬리 질문)


질문 6. NoSQL 경험있는지
없음


질문 7. NoSQL, RDBMS 차이점
아는대로 설명


질문 8. JWT 설명해보기, 장점 단점 설명하기
장점 이용하기 편리하다
JWT 암호화 되지만(?) 탈취에 취약하다


질문 9. RPC 콜 뭔지 설명해보기
모름


질문 10. RESTAPI 설명하기
아는대로 설명


질문11. 처음에 했던 프로젝트 도움없이 지금 제작가능한지?
가능


질문12. Azure 외 다른 클라우드 서비스 이용한적 있는지
AWS EC2 배포경험 말함
AWS EC2 로 어떻게 배포했는지, EC2 다른 서비스(?) 이용한적 있는지?

3. 소감

간단한 커피챗같은 느낌인줄 알았는데 전화로만 진행했지 실제 면접과 비슷했습니다. 코테 풀면서 기다리다가 낭패봄;;
지원서 토대로 질문해주셨으며 지원서 다시 보면서 어떻게 질문이 들어올지 미리 준비하면 좋을 것 같습니다.

1. 서류

[질문1]

CJ ENM 커머스부문(온스타일)에 지원한 동기는 무엇이며, 입사 후 포부에 대해 구체적으로 작성해주세요. (1,500자 이내) ① 지원동기 및 해당직무를 ENM 커머스부문(온스타일)에서 수행하고자 하는 이유 ② 해당 직무 입사 후 성장 포부를 포함하여 작성

 

[질문2]

지원 직무에 본인이 적합하다고 판단할 수 있는 이유를 구체적인 경험 / 나만의 차별화 포인트 / 그동안의 노력과 도전 측면에서 실제 사례 중심으로 구체적으로 작성해 주세요. ① 대학생활과 졸업 이후 다양한 활동, 공모전 등의 경험과 ②이를 통하여 배운점과 발현된 역량, 위기를 극복한 사례를 포함하여 작성(1,500자 이내)

 

[질문3]

CJ 온스타일은 라이프스타일 쇼핑 큐레이터로 고객 취향 쇼핑 플랫폼을 지향합니다. 본인이 관심 있는 라이프스타일 분야와 본인만의 (차별화된) 트렌드캐칭 노하우 작성해 주세요. (1,500자 이내)

 

서류 통과시 코딩테스트 안내 메일이 옵니다.

2. CJAT & 코딩테스트 초대 메일

3. CJAT & 코딩테스트 입장 전

 

특이사항이 있다면 총 4문제중 풀고싶은 2문제만 선택해서 풀면된다는 점 (근데 4문제 중 1문제 밖에 못품)

4. 본 테스트

2시간 동안 4문제를 풀도록 출제됩니다.

문제1. 유형 : 정렬

문제2. 유형 : ?

문제3. 유형 : 순열

문제4. 유형 : ?

5. 후기

CJAT은 그냥 인적성 검사보는거라 맘편히 보시면 됩니다.

sort(key = lambda) 내가 원하는 기준으로 정렬할줄 몰라서 1번문제 못품

2번문제는 유형을 모르겠음

join 제대로 쓸줄몰라서 3번문제 풀 때 직접구현함

4번문제도 모든 경우의 수 다 비교해야 할거같은데 할 줄 모르겠음
공지에 없지만 IDE pycharm 같은거 쓸 수 없음(키고 풀다가 경고메시지 날라와서 바로 껐습니다.)
외부 검색엔진 사용 불가, 프로그래머스내 파이썬 공식문서 검색만 가능

테스트 환경 내 어떠한 모니터, TV도 있으면 안됩니다.

회의실 내 TV 큰게 있었는데 40인치 TV 가리고 테스트 보라고 메시지와서 다른 회의실로 옮겨서 봤습니다.

4문제중 1솔했습니다.

어느정도 하시는 분이라면 3솔은 충분히 하실거라 생각됩니다.

 

1. 서류

지원서 작성을 해야합니다.
질문1. 본인이 최고라고 생각하거나 다른 사람보다 뛰어나다고 생각하는 항목과, 이를 성취하기 위한 노력과 과정에 대해 작성해 주십시오. (필수) * 800자

질문2. 해결하기 어려웠던 문제나 상황에서 남들이 하지 않은 새로운 시도/변화를 통해 기회를 창출하거나 문제를 해결한 경험에 대해 서술해 주십시오. (필수) * 800자

질문3. 지원 직무에 필요한 역량과 관련된 프로젝트/공모전/논문/연구/학습 및 기타 활동에 참여한 경험 1을 작성하여 주십시오. (필수) * 500자

질문4. 지원 직무에 필요한 역량과 관련된 프로젝트/공모전/논문/연구/학습 및 기타 활동에 참여한 경험 2을 작성하여 주십시오. (선택) * 500자

질문 1 ~ 3 필수항목 까지만 작성해서 제출하였습니다.

2. 안내 메일

보시다시피 외부 IDE는 사용가능하나 복사,붙여넣기가 안되어 직접 코드를 작성해야 합니다.(프로그래머스 내에서는 가능)

또한 검색이 가능하지만 권장하지 않는다고 명시되어 있으나 시험 내에서는 기억상 브라우저 등에 검색하면 안된다고 되어있었습니다.

시험 창 내부에 다음과 같이 documentation 링크가 있는데 documentation 내에서만 검색 가능하도록 시험을 치뤘습니다.

https://devdocs.programmers.co.kr/python~3.8/

[DevDocs — Python 3.8 documentation

devdocs.programmers.co.kr](https://devdocs.programmers.co.kr/python~3.8/)

3. 테스트 입장 전

4월 15일 (금)인 코딩테스트 전날에 데모테스트 사전체험을 하였습니다.

기본적으로 제공 동의 등 항목체크하고 노트북 화면 공유, 노트북 캠 연결, 신분증 촬영 후 제출, 핸드폰 카메라 연결 등의 사전작업을 미리 체험해보게 됩니다. (테스트 당일날도 다시 똑같이 진행해야 됨)

또한 듀얼모니터 사용이 안되어 노트북화면 1대로만 시험을 치뤘습니다. ★

그리고 촬영 중에 다른 외부인이 비춰지면 안되고 독립된 공간에서 치뤄야 한다는 조항도 있어서 집에서 치뤘습니다.

4. 본 테스트

3시간 동안 4문제를 풀도록 출제됩니다.

 

문제1 유형 : DFS 방식으로 풀었습니다.

 

문제2 유형 : 트리 + DP

root에서 시작해서 dfs 를 활용한다.

dfs(x)

: x를 root로 하는 rooted tree에서 x의 모든 자식들의 값 계산해주는 함수

이렇게 함수 정의를 잘해주면 dfs에서 바로 계산이 가능하다.

많이 나오는 예시이므로 암기할 것 ★

트리 + DP 의 가장 쉬운 버전이라고 생각하시면 됩니다. ★

함수의 역할 자체를 잘 정의해주면 이걸 호출하는 것 만으로도 자식들의 결과를 자신의 결과에 쓸 수 있기 때문에 작은 문제의 결과로 큰 문제의 값을 빠르게 계산할 수 있죠.

 

문제3 유형 : DP

 

문제4 유형 : 단순 구현

5. 소감

트리와 DP 유형의 문제를 평소 풀지 않았던 터라 생각하는 로직은 맞았으나 코드로 구현하기 어려웠습니다.

그래서 문제1과 문제4만 풀어서 제출했으며 문제2와 문제3은 풀지못하였습니다.

또한 IDE에서 프로그래머스로 옮기는 과정에서 오타가 생겨 테스트 케이스를 돌릴 때 에러가 계속 발생했는데 에러 발생 여부만 알려주고 어느 줄에 발생했는지도 안알려줘서 해결하는데 시간낭비를 좀 많이 하였습니다.(※ 주의)

어느정도 연습했던 분이라면 3솔까지는 무난하게 하시지 않았을까 하는 생각이 듭니다.

6. 코드

# Q1.
# C3
# => 52
import sys
si = sys.stdin.readline
n = int(si())
a = [[0 for _ in range(10)] for __ in range(10)]
for _ in range(n):
    coord = si().strip()  # 병사의 좌표, D7 => 4행 7열
    row = ord(coord[0]) - ord('A') + 1
    col = int(coord[1])
    dirs = [[-1, -1], [1, -1]]
    for dr, dc in dirs:
        for len in range(-7, 8):
            nr = row + dr * len
            nc = col + dc * len
            if 1 <= nr <= 8 and 1 <= nc <= 8:
                a[nr][nc] = 1

ans = 0
for i in range(1, 9):
    for j in range(1, 9):
        if a[i][j] == 0:
            ans += 1

print(ans)


# Q2.
# 6 121
# 1 2
# 1 3
# 3 4
# 3 6
# 3 5
import sys
si = sys.stdin.readline
n, k = map(int, si().split())
children = [[] for _ in range(n + 1)]
hasParent = [0 for _ in range(n + 1)]
for _ in range(n - 1):
    par, child = map(int, si().split())
    children[par].append(child)
    hasParent[child] = 1
value = [0 for _ in range(n + 1)]
def DFS(x):
    # x의 모든 자식들에 대해 value 계산해주기
    if not children[x]:  # x 밖에 없는 상황
        value[x] = 1
        return
    for child in children[x]:
        DFS(child)
        value[x] += value[child]
for i in range(1, n + 1):
    if not hasParent[i]:
        DFS(i)
total_value_sum = sum(value)
multiply = k // total_value_sum
for i in range(1, n + 1):
    print(value[i] * multiply, end=' ')


# Q3.
# 4 4
# 2 1 2 1 3 4 4 3
# 1 2 3 4
# => 4
import sys
INF = 1000000009
si = sys.stdin.readline
n, m = map(int, si().split())
a = list(map(int, si().split()))
smells = list(map(int, si().split()))
# 각 향기마다 A랑 B위치 기억해두기
place = [[-1, -1] for _ in range(n + 1)]
for i in range(n * 2):
    smell = a[i]
    if place[smell][0] == -1:
        place[smell][0] = i
    else:
        place[smell][1] = i


def get_dist(x, y):
    # x번 위치에서 y번 위치로 가는 최단거리 계산
    if x > y:
        x, y = y, x
    return min(y - x, n * 2 - (y - x))
# 배열 정의
dy = [[INF, INF] for _ in range(m + 1)]
dy[0][0], dy[0][1] = get_dist(0, place[smells[0]][0]), get_dist(0, place[smells[0]][1])
for i in range(1, m):
    prev = smells[i - 1]  # 직전에 맡은 향 번호
    cur = smells[i]       # 이번에 맡은 향 번호
    for cur_k in range(2):
        # dy[i][cur_k] 을 계산해줄 차례
        curPosition = place[cur][cur_k]
        prevA, prevB = place[prev][0], place[prev][1]
        dy[i][cur_k] = min(dy[i - 1][0] + get_dist(prevA, curPosition),  # 직전에 A번 위치 선택
                           dy[i - 1][1] + get_dist(prevB, curPosition))  # 직전에 B번 위치 선택
print(min(dy[m - 1]))


# Q4.
import sys
si = sys.stdin.readline
n = int(si())
a = [0] + list(map(int, si().split()))
b = [0 for _ in range(n + 1)]
for i in range(1, n + 1):
    for j in range(i, n + 1, i):
        b[j] += a[i]

for i in range(1, n + 1):
    print(b[i], end=' ')

1. 서류

따로 서류 제출은 없고 프로그래머스에서 신청만하면 코딩 테스트를 볼 수 있습니다.

2. 안내 메일

사진처럼 메일이 오고 기재된 날짜 내에 테스트를 치루기만 하면 됩니다.
안내대로 사전등록 과정을 거치고 본테스트에 입장하기 사전 테스트할 수 있는 링크도 있어 이걸로 사전 연습을 해볼 수 있습니다.

3. 테스트 입장 전

보시다시피 복사가 안되어 외부 IDE에 작성한 코드를 복붙할 수 없습니다.
프로그래머스 자체 에디터에 '직접' 작성해야 합니다.
검색은 허용되어 필요한 부분은 검색하여 풀었습니다.

4. 본 테스트

3시간 동안 3문제를 풀도록 출제됩니다.

문제1 유형 : 구현

 

문제2 유형 : 부분 문자열

관련 문제
관련 문제

 

문제3 유형 : 그래프, 위상정렬, 사이클 체크, 유니온 파인드

out degree 가 0개 또는 1개인 성질을 이용해야 합니다.

관련 키워드 : functional graph
관련 문제

 

테스트 케이스 통과결과만 알 수 있으며 제출 시 점수는 알려주지 않습니다.

문제1의 경우 초반에 어떻게 풀어야하는지 감이 안와 시간을 들여 고민 후 풀었습니다.

문제2의 경우 문제 풀이 해설을 보니깐 문제를 잘못이해했음을 알게되었습니다. 반복되는 패턴이 많은 문자열을 지워야 하는건데 단순히 알파벳 갯수만 세서 많은것만 제외시켜버렸는데 결과적으로 단순히 알파벳 갯수만 세서 많은 것만 제외시켜버리는 방법이 정해임을 알게되었습니다.(의도치 않게 바로 정해로 풀게됨)
문제3의 경우 처음 들어본 유형에 어떻게 풀어야할지 감이 안와 포기했습니다.

5. 소감

코딩 테스트에서 풀어서 제출한 첫 경험이라 2솔했다는 것에 매우 만족합니다.(비록 테스트 케이스 통과지만)

1. 서류

영문 레쥬메를 작성해서 제출해야 됩니다.
따로 양식은 주어지지 않고 예전에 학교에서 영문 이력서 특강을 들어서 받은 양식이 있었는데 그 양식대로 제출했습니다.
작성 내용으로는 학력, 관련활동, 동아리활동, 스킬, 자기소개 등을 작성해서 제출했습니다.

2. 안내 메일

사진처럼 메일이 오고 기재된 날짜 내에 테스트를 치루기만 하면 됩니다.
안내대로 사전등록 과정을 거치고 본테스트에 입장하기 사전 테스트할 수 있는 링크도 있어 이걸로 사전 연습을 해볼 수 있습니다.

3. 테스트 입장 전

챌린지 시작
Google 온라인 챌린지에 오신 것을 환영합니다.

과제 형식:
Google의 온라인 챌린지는 사용자의 코딩 능력을 평가하기 위해 설계되었습니다. 두 개의 코딩 질문을 완료하는 데 60분의 시간이 주어집니다.
다음은 과제를 시작하기 전에 주의할 몇 가지 중요한 사항입니다.

I: 성공적으로 로그인하려면 다음 3단계를 주의 깊게 읽어보십시오.

1단계: 전자 메일 주소로 로그인한 경우 플랫폼에서 로그아웃한 후 인식 모드로 로그인하십시오.

2단계: 챌린지 플랫폼에서 Google 온라인 챌린지 ID와 패스키로 로그인하라는 메시지가 표시됩니다.

3단계: Google의 온라인 도전을 위해:

— 사용자 이름 = 고유한 Google 온라인 챌린지 ID(예: 123456789012) (전자 메일 사용 안 함)

— 암호 = 챌린지 암호(예: 123456)

— 새 계정에 가입하거나 기존 로그인을 계속하는 등 다른 로그인 방법을 사용하지 마십시오. 자신에게 할당된 챌린지 ID와 패스 키를 사용하여만 온라인 챌린지에 로그인하고 참여할 수 있습니다.

참고: "당신(abc@xyz.com)은 이 테스트에 초대되지 않았습니다. 테스트 관리자에게 문의하십시오. Google Support googleonlinechallenge-ticket@google.com" - Google Online Challenge ID 또는 암호를 잘못 입력하여 도전에 액세스했음을 의미합니다. 1~3단계를 다시 수행하십시오!
II: 도구에 익숙해지는 중

실제 도전을 하기 전에 도전 플랫폼의 연습 링크를 사용하여 코딩 환경에 익숙해지십시오. 연습 챌린지의 문제 수와 연습 챌린지의 기간이 실제 챌린지와 다를 수 있으니 참고하시기 바랍니다. 연습 라운드에서 평가를 받지 않습니다. 챌린지가 라이브로 진행되면 어디에서 챌린지를 찾을 수 있는지 알아보려면 아래 이미지를 참조하십시오.

III: 도전을 위하여

할당된 온라인 챌린지 ID 및 암호를 사용하여 도전을 시도하고 있는지 확인합니다.
챌린지가 시작되면 타이머를 일시 중지할 수 없습니다. 도전은 한 번에 완료해야 합니다.
시스템이 Hacker Earth의 호환성 요구 사항을 충족하는 것이 좋습니다.
안정적인 작동 인터넷(최소 속도 5Mbps)을 사용하는 것이 좋습니다. 모바일 인터넷/핫스팟을 사용하지 마십시오.
설치된 확장이 테스트 환경을 방해하지 않도록 무명 또는 개인 창에서 테스트를 시도하는 것이 좋습니다.
다른 창과 탭을 모두 닫아 방해가 되지 않도록 하는 것이 좋습니다.
가장 편한 코딩 언어를 선택하십시오. 코드 중간에 언어를 변경할 경우 수정해야 할 수 있습니다.
최종 답변을 제출하기 전에 테스트 인터페이스의 브라우저 창이나 탭을 닫지 마십시오. 시스템이 갑자기 종료되거나 시간이 부족해도 당황하지 마십시오. 지금까지의 진행 상황은 자동으로 저장됩니다.
테스트 시간이 만료되기 전에 네트워크 문제가 발생할 경우 브라우저를 새로 고치고 테스트에 다시 연결하십시오.
문제가 있는 경우 Google 온라인 챌린지 팀(googleonlinechallenge-ticket@google.com)으로 연락하십시오.

Google은 지원자들이 온라인 챌린지에 한 번 도전하기를 기대하고 있습니다. 온라인 챌린지에 두 번 이상 응시한 것으로 판명된 응시자는 온라인 챌린지 이용 약관을 위반하므로 온라인 챌린지에서 자동으로 자격을 잃게 됩니다. 도전 결과는 온라인에 게시되지 않음을 알려드립니다. 기타 질문은 FAQ를 참조하십시오. 행운을 빌어요!

4. 본 테스트

본테스트는 2문제로 진행됩니다.
사전 테스트를 해보면 알겠지만 문제가 영어로 주어집니다.
평소 백준이랑 프로그래머스만 이용하다보니 문제 해석이 곧바로 되지않아 시간이 오래걸린 점
다른 IDE를 사용할 수 없고 검색 역시 사용할 수 없습니다.

해당 테스트페이지를 빠져나가는 시도를 할 경우 경고메시지가 표시됩니다.
경고가 누적되면 테스트를 강제종료시킵니다.(사전 테스트에서 검색하면서 풀다가 강제종료당함;.;)
hackerearth라는 플랫폼에서 진행되며 사전에 해당 플랫폼에 익숙해지면 좋다고 생각합니다.
답안 틀이 미리 제공되어있고 함수만 작성하면 되는 형태입니다.
입출력 함수를 작성하게끔 되어있어(혹은 작성된 상태로 주어져서)백준이랑 프로그래머스랑 적절히 섞은 느낌이 납니다.

출제된 문제 유형은 정리해서 추후에 올려보도록 하겠습니다.
제 기준에는 어려워서 한 문제도 못풀었습니다 ㅠ.ㅠ

라인 상반기 코테 후기

서류

라인은 서류 통과는 쉽다고 합니다. 03/26(토) 오전 10:00 ~ 오후 1시 까지 3시간 가량 시험을 치뤘습니다. 메일로 프로그래머스 링크가 날라오는데 문의 관련 메일이랑 따로 날라와서 문의 메일만 쳐다보고 있다가 늦게 입장했습니다.

본 테스트

문항수 : 6


문제1 로그 수집 프로그램
유형 : 정규식, 구현
정규식 쓰면 풀 수 있을 것 같다는 느낌이 들었지만 한번도 제대로 써본적이 없어서 넘어감.

문제2 부서진 키보드
유형 : 조합
조합 써야 되겠다 생각했는데 문제 요구 사항에 맞게 어떻게 작성해야되는지 바로바로 안떠올라서 이 문제에서 시간을 많이 썼습니다.

문제 3 재택근무 전환
유형 : 구현

문제 4 표 편집 프로그램
유형 : 누적합

문제 5 팀의 리더
유형 : gap (처음들어 봄..)

문제 6 온라인 화폐 거래소
유형 : 우선순위 큐

후기

최근 삼성 코테 준비한다고 DFS, BFS, 구현만 풀어봤는데 문자열 관련 문제 해쉬, 맵 등의 문제등은 안풀어봐서 지난번 보다 쉽다는 평들이 많으셨으나 저에게는 너무 어려웠습니다. 여러 유형 꾸준히 풀고 블로그에 게시하도록 하겠습니다.

기업별로 코테 환경이나 서칭가능, IDE사용가능 등의 시험조건이 다르기 때문에 최대한 지금 실력이 많이 모자르더라도 계속 지원해서 치뤄보려고 계획 중입니다.

참고

파이썬 정규표현식과 re모듈

+ Recent posts