25년도 상반기가 얼추 끝나는 지금 시점에서 지금까지 틈틈이 작성해 왔던 회고를 올려볼까 한다. 너무 많은 것들이 진행되어 왔기에 틈틈이 들었던 생각을 정리하고 싶어 작성하였다.

 

나는 데이터 사이언티스트 직무를 준비하고 있고, 국내에서는 IT 기업이 아닌 이상 더 적거나 많은 범위의 일을 담당하게 되는 듯 하였다. 따라서 지언 할 때 어떤 이름의 직무를 선택해야 하는지도 하나의 포인트였다.

혹 같은 직무를 희망하지만 취업준비가 막막한 사람이 있다면...반드시 아래 두 개는 미리 했으면 좋겠다.

  1. 코테 준비 - 하루에 한 문제씩이라도 풀어보면, 한 학기면 어느 정도 개념은 다 훑을 수 있다. 제발제발제발제발 코테 대신 과제 테스트 하는 기업 믿지 말고 미리미리 준비하자.
  2. 자격증 준비 - 필자는 빅데이터분석기사를 취준하면서 땄는데, "아 지금 이거 할 때가 아닌데"라는 생각이 너무 많이 들었었다.
  3. 벡앤드 개념 파악 - 위에 기술했듯이, 모델의 학습과 추론 외에도 그 이상을 요구하는 기업들이 늘어나고 있다. 파이썬 환경에서 데이터 전처리와 모델 학습, 추론만 해왔던 나로써는 이후에 이 모델을 어떻게 배포하는지, 어떻게 관리하는지 생각해 본 적이 없었으나 기업에서는 이러한 과정까지 어느 정도는 요구하는 듯 했다. 

너무 많은 것이 부족한 첫 취준이었다. 비록 모든 기업에서 탈락하더라도, 어떤 산업군에서 강하고, 어떤데서 일하고 싶은지, 나는 뭘 잘하는 사람이고, 어떤 일을 하고싶은지를 생각해볼 수 있는 기회인만큼 다음 취준은 더 잘해볼수 있을 것 같다는 생각이 들었다.

 

다양한 면접을 다니면서, 일반적인 면접 질문 + 회사에서 원하는 것을 파악할 수 있었다. 특히 그 회사가 뭘 하는 회사인지, 어떤 직무를 가장 많이 뽑는지가 생각보다 질문에 잘 녹아 있었다. 그렇기 때문에 앞으로 새로운 회사에 지원하더라도 이를 미리 파악하고 가면 질문을 예상하기 쉬울 듯하다. 

기업별로 좋아하는 것을 파악할 수 있었다. 쉽게 해리포터 기숙사에 비유해서 생각해보면, 열정 좋아하는 기업은 그리핀도어, 창의적인거나 도전 좋아하는 기업은 후플푸프, 다 필요 없고 조용히 일 잘하고 성실한거 좋아하는 기업은 레번클로라고 분류하였다.

나는 슬리데린인데 기업들은 슬리데린은 싫어하나보다 ㅠ

 

또, 코딩테스트를 보면서 실제 이런 일을 맡게 되지는 않을텐데(물론 개발자들은 실제로 자료구조 개념을 활용하는 것으로 알고 있다), 챗지피티 등 쓸 수 있는 도구를 하나도 안 쓰고 외워서 하는게 의미가 있나라는 현타를 정말 많이 느꼈다. 하지만 결국 이런 시험을 보는 이유가 이미 대단한 사람은 너무 많고, 그 중에서 떨어트리기 위해 할 수 있는 어쩔 수 없는 수단이겠구나, 이 문제를 얼마나 끝내주게 풀어내든 그게 중요한건 아니겠구나 라는 생각이 들었다. 

 

나한테 주어진 기회 중 어떤게 중요한 기회인지도 잘 파악이 되지 않았다. 

퇴직하고 준비하는만큼 모든 기회를 다 놓치고 싶지 않았고, 하루에 자소서 4개를 쓰기도 하면서 정말 많이 쫓겼다. 심지어는 마케팅같은 인문계 직무까지 넣어볼까 하는 생각도 했다. 디지털 마케팅에 내 기술이 도움이 되지 않을까 고민하다가, 나 스스로도 마케팅 못하면서(면접을 정말 못한다..) 무슨 마케팅이냐 싶었다. 그 정도로 너무 많은 정보를 놓치지 않으려 했던 것 같다. 그렇기 때문에 쉽게 지쳤고, 휴식을 해도 편한 마음으로 할 수 없었다. 하루를 놀더라도 밀린 자소서, 밀린 공부만 생각이 나고 매 순간 쫓겼던 것 같다. 


현재 지금까지 지원한 모든 전형을 마무리 하면서, 이번 상반기는 정말 모두에게 힘든 싸움이었음을 깨닫고 씁쓸하면서도 한 편으로는 위안이 되었다. 이제 어떤 것이 중요한지 파악했으니 다음을 위해 어떤 점이 부족했을까, 어떤 것을 준비하는 것이 좋을까 고민해보았다.

 

면접

면접을 하면 긴장을 할 수 밖에 없지만, 나는 긴장되는 환경에서 말 자체를 잘 못 꺼내는 듯 하다. 원래부터 말을 잘 하는 사람이면 참 좋겠지만, 아쉽게도 그렇지 않기 때문에 먼저 1)대표적인 질문들을 리스트업하고, 2)줌으로 내가 말하는 것을 녹음하거나 거울 보고 대답해보면서 익숙해져보려 한다. 3) 취업지원센터에 방문해서 사람과의 면접도 연습해보려 한다. 

 

코딩테스트

면접을 가기도 전에 떨어지는 경우가 있었는데, 코딩 테스트 때문이었다. 하반기까지 생각보다 많은 시간이 남지 않았기 때문에 매일 2시간이라도 투자해서 꾸준히 연습해보려 한다. 정말 많은 관련 블로그들 중에서 도움이 될 법한 블로그를 찾았는데, 이에 관해서는 다음에 공유해보고자 한다. 

 

공부

면접을 보면서, 떨려서 말 못하는 것 외에도 아예 모르겠다고 대답을 한 적이 두 번 있었다.

한 번은 24년도 12월 롯데정보통신 llm 직무의 면접이었는데, llm이 무거우니 이를 어떻게 효율적으로 서비스할 수 있는가 측면에서 많이 물어봤다. 예를 들어 lora 대신 qlora 개념에 대해 구체적으로 설명해보라던가, 추론 효율화에서 많이 사용하는 개념에 대해 질문했었다. 

지금까지 나는 어떤 모델이나 방법론을 선택할 때, 그냥 위에서 쓰라고 해서 쓰거나 그냥 그게 제일 잘 나와서 쓰는 경우가 많았다. 사전에 공부하고 "이게 제일 낫겠다!"라고 정하기보다 일단 다 해보고 제일 좋은 것을 고른 다음에 이유를 붙이는 식이었다. 그렇기 때문에 대부분 개념들이 대략적으로만 남아있었다. 이게 왜 좋은지, 어떨 때 좋은지, 기존 것과의 기술적인 차별점 등을 한 문장으로 설명할 수 있을 정도의 지식만 머리 속에 남겨두었다. 

그렇기 때문에 기술적으로 깊이 있게 이해하고 있는가?를 질문 받았을 때 말문이 막혔다. 나 스스로도 깊이 있는 이해를 하고 있지는 않다는 것을 알아서 그런 듯 하다.

 

두 번째는 25년도 상반기 안랩 경력 면접이었다. 안랩은 요구 직무와 다르게 개발 경험을 많이 물어봤고, 아예 처음 들어보는 것들이 많았기 때문에 대답하지 못한 것도 있었다. 그 외에도 기술적인 깊이가 있는 질문을 묻기도 했지만, 제일 큰 문제는 내가 경험했던 것들의 정말정말 세부적인 부분까지 질문했을 때 대답을 하지 못했다는 것이었다. 가령, 크롤링한 pdf를 텍스트로 변환할 때 썼던 OCR 라이브러리를 물어봤다. 그런 것을 기억할 리가..^^

그래서 깃헙 정리할 겸, 처음부터 프로젝트를 진행한다고 생각하고 팔로업해봐야겠다는 생각이 들었다. 깃헙 잔디심기를 왜 하는지 정말 이해하지 못했으나 이제는 내가 해봐야 할 차례인듯 하다.


첫 취준 기간을 겪으며 얻은 것도, 배운 것도 많았고 방향성도 잘 잡을 수 있었던 것 같다. 회고록을 작성하면서 부족한 부분을 잘 정리할 수 있었던 것 같고, 나름의 동기부여도 되었다. 부족한 부분이 정말 많은만큼 잘 준비해서 다음 취준에는 꼭 취뽀했으면 한다. 나와 같은 시기를 겪고 있는 사람이 있다면 꼭 힘내서 좋은 기회 놓치지 않았으면 한다. 

이번 블로그에서는 실기 접수 기념으로 필기 합격 후기를 작성해보고자 한다.

후기에는 일정 및 가격, 공부 방법과 체감 난이도를 다뤄보고자 한다.

시험 일정 및 가격

먼저 일정의 경우, 타 기사 시험과 같이 필기와 실기 각각 매년 2회 시행되며, 2025년 시행 일정은 아래와 같다. 

합격을 하더라도 주의사항이 있다. 필기 시험의 경우, 합격하게 되면 발표 전에 "합격 예정" 표시와 함께 자격 여부를 입증해야 한다. 데이터 자격 검정 홈페이지에서 서류 제출 사이트 바로 접속해서 발급해도 되고, 미리 발급해둔 문서가 있다면 바로 첨부할 수 있다.

응시 자격이 증명되면 1주일 정도 이내에 합격 발표가 난다. 입증 기간이 정해져 있기 때문에 자격이 되는지 미리 확인하고, 자격 첨부 기간을 넘겨 재응시하지 않도록 주의하자.

가장 중요한 가격필기 17,800원, 실기 40,800원이다. 

공부 방법

먼저 필자의 배경을 설명하자면, 전공자에 가깝다. 일단 최근까지 딥러닝을 지겹도록 사용해왔기 때문에 1주일이면 충분하다고 생각했으나, 생각보다 암기가 많이 필요하다. 가령, 1단원에서 빅데이터 특징 3V, 5V나 DIKW 피라미드처럼 실제 분석 할 때 사용하지 않는 개념들을 암기해야 하기 때문에 암기량이 꽤 된다.

그래서 전공자의 경우 2주, 비전공자의 경우 4주를 추천한다.

 

구글 AI 를 활용해 각 단원이 포함하고 있는 내용을 정리해보았다.

1단원(빅데이터 분석 기획)
빅데이터의 이해, 데이터 분석 기획 및 프로세스, 데이터 품질 관리, 분석 거버넌스 체계 등에 대한 내용을 다룹니다. 
2단원(빅데이터 탐색)
데이터 탐색 및 시각화, 데이터 전처리, 이상치 처리 등에 대한 내용을 다룹니다. 
3단원(빅데이터 모델링)
다양한 모델링 기법(지도 학습, 비지도 학습, 딥러닝 등)과 모델 평가, 예측 및 분석에 대한 내용을 다룹니다. 
4단원(빅데이터 결과 해석)
분석 결과의 해석 및 시각화, 보고서 작성, 결과의 활용 및 의사결정 지원에 대한 내용을 다룹니다. 

 

공부 순서는 2 →3 →4 →1을 추천한다. 시간이 충분하지 않다면 1단원은 자투리 시간을 활용하는 것을 추천한다. 공부 비중은 2,3단원에 가장 많이 두는 것이 좋다.

1단원의 경우 대부분이 암기이다. 

2단원3단원은 통계 및 머신러닝 방법들을 다루고 있고, 3단원의 내용이 2단원을 알고 있다는 것을 전제로 하 때문에 2 → 3 순서로 공부하는 것을 추천한다.

4단원의 경우 위의 각 단원 내용을 보면 알겠지만 2,3단원과 대부분의 내용이 겹친다. 마무리 과목이라 생각하여 투자 시간을 가장 적게 두었다. 

 

필자는 빅분기 교재와 유튜브 요약 영상만을 활용하였다. 한창 자소서와 면접들을 볼 때 준비해서 시간이 많지 않았기 때문에, 2023년도에 사 두고 공부하지 않은 예문에듀 교재를 사용했다. 큰 틀에서는 내용이 바뀔 가능성이 적다고 생각했기 때문에 따로 교재를 더 풀지는 않았으나, 시행된지 얼마 안 된 시험이라 변동이 있을 것을 대비해 유튜브로 요약 강의를 듣고 시험을 보러 갔다. 요약 강의는 유튜브에 종류가 많이 있지만 가장 깔끔하다고 생각하여 아래 영상을 보았다. 

필자는 따로 참고할 시간이 없었으나, 글 형태의 요약본을 보고 싶다면 아래 블로그가 잘 정리되어 있는 것 같았다.

 

빅데이터분석기사 빅분기 필기 요약 정리 링크 모음, 키워드 모음

필기 시험 준비할 당시에 과목별로 엑기스만 모아서 정리했던 자료들입니다. 좀더 자세한 설명이 필요하다 싶은 부분은, 제 블로그에서 검색하시면 정리 포스팅 찾으실 수 있을 거에요. 아래

sy-log.tistory.com

 

 

결과는 합격..!

..원래 가까스로 합격하는게 짜릿한 것이다. 부끄러우니까 합격 인증은 작게 첨부한다.

후기

비록 짧은 시간에 아슬하게 합격하긴 했지만, 타 기사 시험보다는 훨씬 따기 수월하다고 느꼈다. 주로 정처기와 비교되는 것 같았는데, 일전에 정처기 필기 교재를 봤을 때 비전공자가 이해하기엔 너무 힘든 영역이었기 때문에 정처기와 빅분기 중에 선택지가 있다면 빅분기를 추천한다. 실기도 얼른 합격해서 실기 합격 후기로 돌아오겠다..!

0. 준비 과정 - 면접 전에 작성한 내용으로, 1번부터 후기

일반적인 정보

우리은행은 어학 성적을 많이 보는 것 같고, 2번 정도 최합에서 떨어지면 서류부터 탈락한다는 후기가 많다. 자소서에 영업 마인드 있어야 한다고 한다(딱히 그런 거 안 쓴 거 같긴한데..). IT 직무는 조금 어학을 덜 본다는 것 같기도 하다. 물론 이 후기들은 대부분 자소설닷컴에서 우리은행 채팅방에 올라온 셀프 후기들이기 때문에 참고만 하면 좋을 것 같다.

이전 후기들 말로는 서류에서 10배수를 뽑는다고 했다. 약 100~400명 정도 되겠거니 하는중이다. 하지만 이번 취업 시장은 헬이기 때문에 지원자 수를 고려하면 사실 가늠이 잘 안 된다. 떨어진 사람은 후기를 잘 적지 않지만 속상한 마음에 떨어졌다고 말하는 사람이 꽤 된다. 체감상 70% 정도 서합한 거 같긴 한데, 이마저도 체감 정도이다.

자소설닷컴 기준 지원자 수..(허수도 있을 수 있으니 참고만..!!!)

면접 이후 진행(예정)

또 하나 특이한게 2차면접과 최종면접 관련 안내를 미리 해준다. 포폴 준비하라는 것 보니 PT 면접인가 본데....진짜 슬프다.

1) 작년과 달라진 점

작년 상반기와 달라진 점은,

  1. 자율복 권장  자율복 필수(정장 금지)
  2. 서류 발표 후 면접 5일 뒤 → 서류 발표 후 면접 2주 뒤(직무별로 다른듯, 1주 뒤인 직무도 있는듯 하다..그마저도 지역인재냐 일반이냐에 따라 갈리는 듯)
  3. 면접 시간 오후 1시 → 오전 9시(이 또한 직무마다 다를 수 있다..)

인 듯 하다. 

 

2) 안내 사항

안내 사항이 나온다. 오전 9시까지 킨텍스를 어떻게 가냐며,,

위에도 적었지만 작년과 다르게 정장 금지라고 뻘겋게 적어놨다.

그리고 신분증을 안 챙겨오는 지원자들이 많은 것 같다..!! 모바일 신분증 중 인정 안 되는 신분증들도 있는 듯 하니 잘 확인하자. 물론 나는 아날로그가 편해서 실물 운전면허증을 들고 갈거다...

 

면접 내용에 대한 안내이다. SQL 1, 알고리즘 3 문제를 보고, 특이한 건, 면접 당일에 킨텍스 가서 현장에서 코테를 본다는 점이다. 이전년도 후기들에 따르면 난이도는 백준 기준 실3~골5 정도인듯 하다. 이번에는 지원자가 너무 많아서 어려워질 수도 있다고 본다..

1. 후기

1) 개요

준비 과정에 이어, 실제 후기를 남겨보고자 한다.

 

먼저, 복장의 경우 정장을 입고 온 일부 사람도 있었지만, 문제가 되는거 같지는 않았고(사실 넥타이 안 매고 정장 아니라고 하면 할 말 없기 때문..) 정말 다양한 복장이 있었다. 그냥 깔끔하게만 입어도 상관 없을 듯 하다. 나는 약간 선자리 나간다고 생각하고 단정하게 입었다. 신발도 운동화도 있었고, 나는 로퍼를 신고 갔다.

 

코딩 테스트의 경우 내가 풀 수 있는 거 보니 난이도가 은행 치고도 굉장히 쉬운 편으로 나온 듯 했다.(하나은행 코테는 나에게는 어려웠기 때문^^..)

 

그리고.....대기시간이 정말정말정말정말 길다. 극 I 인 내가 참지 못하고 다른 사람들 대화에 껴달라고 할 정도였다...........불행 중 다행인지, 면접과 코테 사이에 대기시간이 아니라 아예 끝나고 대기시간이 있었다. 물론 중간에 대기 시간이 있는 팀도 있었다. 

2) 복기

면접 후 복기를 통해 내가 생각한 가장 중요한 요소는 1) 자소서에 적힌 내용을 바탕으로 왜 은행인가? 에 대한 심도깊은 고민, 2) 코딩테스트 이다.

 

왜 은행인지?

어느 은행이나 로얄티를 중요하게 여기지만, 우리은행은 특히 더 로얄티를 중요하게 여기는 듯했다. 금융직무와 다르게 디지털에는 자소서에 적혀 있지 않은 이상 금융 관련 질문이 들어오지 않았다. 오로지 "왜 은행인가" + "그 중에서 왜 우리은행인가" 에 집중된 질문들로 구성되어 있었고, 그 중에서도 전자를 좀 더 확실히 확인하고자 하였다. 가령, 복수 전공한 지원자에게는 그렇게 복수 전공을 많이 하는지, 그 중에서 은행을 선택한 이유는 무엇인지 등을 물어봤다. 

 

코딩테스트

의문합과 의문불합이 많은 것을 봐서 코테 비중이 컸던 듯하다. 코테는 SQL 1문항, 알고리즘 3문항 나왔고, SQL은 정말 쉬웠다..! 10분 안에 풀고 넘어갔던 것 같다(서브 쿼리 필요 없음). 자세한 것은 아래에 작성한다.

3) 코딩테스트

알고리즘의 경우에는 정확하게 기억이 나지 않지만(끝나고 적어둘걸..!!!!),

1. defaultdict.Counter 쓰면 굉장히 쉽게 풀리는 문제

2. 문제 안 읽고 패스, 대충 좌표 이동 시뮬레이션이었던 것으로 기억

3. 금융 관련 시뮬레이션

이었고, SQL 까지 합하면 2.5솔 정도 한 것 같다. 3번 시뮬레이션에서 테스트 조건 4개 중에 2개만 만족하게 짰다..!! 다 만족하게 짜고 싶어서 욕심을 좀 부리다가 갑자기 원래 코드에서도 에러가 나서 그거 수정하는데 남은 시간을 모두 써버려서..결국은 원래 코드만 잘 돌아가게 제출했다.

4문제에 80분이기 때문에 한 문제당 20분 정도밖에 주어지지 않는다. 따라서 난이도 자체는 실버 정도였던 것 같다.(왜냐면 내가 골드를 못 풀기 때문)

작년과 다른 점은, 작년에는 알2,sql 1이었어서 상대적으로 좀 어렵게 출제된 것으로 알고 있다. 올해는 시간을 적게 주고 좀 더 쉽게 제출한 느낌이 있었다. 

4) 면접

1차 면접 분위기는 방마다 다른 것 같았다. 면접관 2 + 지원자 5 로 구성되어 있었고, 면접관 분들은 타이머를 책상에 두고 계셨고, 40분으로 정해져 있는 듯 했다. 어느 블로그 후기에서는 마지막으로 할 말을 선착순으로 물어봤다고 하는데, 내가 들어간 면접실은 그런 질문 전혀 없이 딱 정석을 추구하는 분위기였다. 시간 풀로 채우되, 모든 면접관에게서 질문을 받을 수 있도록 공평함을 중요하게 생각하시는 듯 하였다. 

 

아 그리고 블라인드인건 확실하다!! 면접관들이 종이 넘길 때 얼핏 봤었는데, 학력이랑 이력 작성한 부분이 전체 회색 네모로 채워져 있었다. 오로지 자소서만으로 질문하는 듯했다. 대신, 정말정말 구체적으로 여쭤보신다. 왜 은행권인지, 영업점 방문해 본 적 있는지 등 기출 문제를 질문하되, 각자의 자소서에 부합하는 문제를 개별 질문하는 방식이었다. 

 

일단 내가 들어간 면접 방은 하나의 경험에 대해 깊이 있게 질문하였다. 면접관 한 분이 하나의 경험에 대해 질문 3개 정도하시고, 다른 분이 다른 경험에 대해 질문하시거나 범용적인 질문(ex. 어떻게 기여할건지)을 하는 방식이었다. 굉장히 날카로운 질문이 들어왔고, 한 분은 인사팀이어서 기술적인 부분을 비전문가도 알아듣기 쉽게 말해달라고 요청하셨다. 

 

다음 분기때 또 지원하게 될 수도 있으니, 피드백 차 내가 받은 질문과 다른 방에서 나온 질문들을 적어본다.

1. (공통)자기소개 30초 - 30초 넘어가면 끊는다는 얘기도 있다. 은행에 대한 나의 생각이 포함되어 있는 것을 좋아하는 듯 보였다.
<나한테 들어온 질문, 개인 질문은 너무 특정돼서 제외>
2. 영업점 가봤는지
  2-1. 어느 영업점 방문 했는지..ㅋㅋ
3. 어디에 기여하고 싶은지
4. 다른 도메인에서 연구원 했는데 왜 은행에 지원하였는지
<같은 면접실, 타 지원자>
5. 보안이 중요한지 편의가 중요한지
6. 갈등 해결 경험
7. 본인의 금융 지식이 낮으면 왜 뽑아야 하는지
8. (주가 분석 경험 있는 지원자) 현재랑 주가 비교
9. (복전 지원자) 그렇게 복전하는 경우가 많은지
  9-1. 그렇게 복전 하는 사람들은 어떤 산업군에 주로 종사하는지
  9-2. 그럼 왜 본인은 은행?
10. 원하는 직무 말고 다른 업무에 배정되면 어떻게 할건지
<타 면접실>
11. 영업점에 근무할 때 어떤 것을 배우고 싶은지
12. 우리은행 서비스의 장점과 한계
13. 앱 개선안 

2. 1차 면접 합격

혹 문제가 될까 하여 전형이 끝나고 업로드한다.

이번 블로그에서는 OPiC 시험을 본 지 1달만에 후기를 남겨보고자 한다...!!!

결론부터 말하면, 나는 3일을 준비해서 IH를 받았다. 

아래 후기에서는 시험 일정, 가격과 접수 팁, 등급, 공부한 방법, 그리고 아쉬운 점을 작성해보고자 한다. 

 

시험 일정

OPIc 시험은 취업을 목적으로 보는 경우가 대부분이다. 오픽 공식 사이트에서도 대놓고 기업에서 선택한다고 얘기하고 있다. 저 기업들이 모두 오픽이 필수인 것은 아니다...토익 시험 점수만 있어도 되는 경우도 있고, 직군마다 다르긴 하지만 어쨋든 스피킹 시험 성적을 필수로 입력해야 지원할 수 있는 기업들이 있기 때문에 나 또한 시험을 보게 되었다. 

 

취업을 위한 오픽 시험..ㅠㅠ

 

오픽 홈페이지에 로그인을 하고 시험 접수를 선택하면 아래와 같은 화면이 나온다. OPIc, 영어를 선택하고 원하는 시험 날짜와 센터를 선택한다. 시험 가능 일정은 거의 매일, 다양한 시간대에서 선택할 수 있다. 참고로 서울에는 센터가 20개쯤 있다. 강남, 역삼, 신촌, 혜화, 강서, 영등포, 태릉입구 정도로 나뉘는 것 같다. 하지만 생각보다 날짜별로 가능한 센터가 많지 않으므로..날짜를 먼저 선택하는 것을 추천한다.

결과는 시험 이후 4~5일 정도 후에 알 수 있으며, 시험 일자별로 성적 발표일을 확인할 수 있다. 토익과 다르게 따로 카톡 알림이 오지는 않는다. 

삼성의 경우 대표적으로 스피킹 점수를 입력해야 하는 회사라, 공채 시즌에 따라 아래와 같이 긴급 추가 되는 경우도 종종 있다.

가격과 접수 팁

개인 정보를 입력하고 나면, 결제 방법이 뜬다. 오픽 가격은 정가(?)로 84000원이다. 굉장히 비싸다...

기업에서 세부 진단서를 따로 요구하진 않기 때문에 개인적으로 궁금한 사람만 신청하면 된다. 하지만 3만원이 추가되기 때문에..나는 하지 않았다. 

할인 방법은 크게 다음 세 가지이다. 다음과 같다. 

  • 포인트 사용 - 사진에서처럼 CJONE이나 LPOINT를 사용할 수 있다!
  • 쿠폰 할인 - 오픽 책을 구매하거나, 설명회나 오픽 관련 유튜브에서 어쩌다 이벤트성으로 뿌리는 것 같긴 하지만..아쉽게도 난 발견하지 못했다.
  • 신분(?) 할인
    • 군인 할인(약 20%)
    • 초중고 학생 할인(초중고에서 왜 오픽을 보는지는 모르겠다)
    • ★ ★대학생 할인 ★ ★(약 15%) - 별도 사이트 (OPIc 대학연합 정기평가) 가장 현실적인 할인 방법인 것 같다. 오픽 사이트가 아닌 대학연합 정기 평가 사이트가 별도로 있으며, 매일 있는 정규 오픽 시험과 다르게 3~4일마다 있다. 소속 학교, 학번 정보가 필요하고, 시험 당일, 재학 증명서(학생증 X) 지참이 필수이다. 물론 대학생, 또는 대학원생이어야 가능한 방법이다.....!!

등급

등급은 그림과 같다. 현실적으로 영어를 써야 하는 직무에서는 AL(Advanced Low)를 요구하지만, 그렇지 않은 직무에서는 IM 또는 IL 이상을 요구한다. 체감상 문과 직무는 IM, 이과 직무는 IL 이상을 요구하는 것 같지만..직무 바이 직무이다.

출처 : https://www.opic.or.kr/opics/servlet/controller.opic.site.about.AboutServlet?p_process=move-introduce-opic

시험 진행

개인적으로 가장 안내가 부족한 부분이었다고 생각한다. 유튜브도 그렇고, 그냥 시험 문항만 다루어서 더 긴장한 상태로 시험을 보러 갔던 것 같다. 초등학교 때 컴퓨터실 갔던 기억이 있다면..그런 형태의 방에 들어가게 된다. 이후에 대기하다가 안내 사항(20분)을 영상으로 틀어주는데, 이 때 헤드셋으로 음성 입력과 소리가 잘 들리는지 확인하는 과정이 포함된다. 또한, 취미, 직업 등의 사전 조사를 하게 된다. 이 사전 조사를 바탕으로 15문제가 출제되고, 각 문제마다 약 1분~1분 30초 가량 대답해야 한다. 문제 난이도도 선택을 하게 되는데, 선택한 난이도에 따라 꼬리 질문의 개수나 형태가 바뀐다. 선택한 난이도는 시험 중간에 바꿀 기회가 1번 있다. 시험 시간은 안내사항 포함 약 1시간이고, 40분부터였나? 나갈 수 있다. 

공부 방법

일단 나는 말하기 시험에 책이 의미가 없다고 생각해서 구매하지 않았고, 유튜브를 이용했다. 

대표적인 유튜버인 "오픽노잼" 영상과 "제인서" 모의고사, 그리고 단기 취득한 사람들의 후기를 참고하였다. 

3일 동안 아래와 같은 순서로 진행하였다. 

  1. 오픽 노잼 AL 영상들 확인하기
  2. 질문들 대답해보고 예시 답안 확인하면서 답변 문장 구조 파악하기
  3. 모의고사 4개

하지만!!! 추천 준비 시간은 최소 1주일이다....만약 다음에 또 시험을 봐야 한다면 1주일 동안 다음 순서로 진행하면 좋을 것 같다.

1. 문제 유형 파악

가장 먼저 해야 할 일은 문제 유형 파악이다. 물론 항상 동일한 것은 아니지만, 문제 번호에 따라 나오는 문제 유형이 아직까진 꽤나 정해져 있다. 문제에 따라 이걸 파악하지 못하면 개별 문항을 백날 연습해봤자 헤매게 된다. 오픽 노잼의 영상들을 정리해본 결과 다음과 같이 정리할 수 있다.(하지만 일반화는 금지..! 대략 이런 느낌이다~ 정도만 파악)

1. 자기소개
2-10 : 세트 문제
(쉬운 케이스) 묘사, 설명 / 나의 루틴, 습관 / 나의 경험(과거)
(어려운 케이스) 묘사, 습관 / 과거 경험 / 현재-과거 비교, 특정 경험
   2-4 : 세트 1 
   5-7 : 세트 2 
   8-10 : 세트 3
11-15 롤 플레이
   11-13 : 세트 1 - 질문(전화, 음성 메세지, 전화 등 문제가 발생한 상황 가정) → 문제에 대한 대안→나의 경험) 
   14-15 : 세트 2 - 비교(대상 or 시간) → 뉴스나 이슈

2. 사전 조사 문항 미리 정하기

어떤 글에는 직업을 무조건 학생으로 선택해야 한다던가 하는 그런 팁이 있기도 한데, 딱히 상관 없을 것 같다. 말하기 편한, 할 말이 많은 거로 정하면 될 것 같다. 취미도 마찬가지이다. 

3. 감정 단어 외우기

내가 T라 그런지 감정 단어들이 생각보다.. 생각이 안 난다. 당연히 다 아는 단어들이더라도, 유의어로 어떤게 있는지 며칠간 읽으면서 익히면 교체해서 사용하기 좋다.

4. 오픽노잼 영상  + 제인서 모의고사

오픽 노잼 영상들은 말하는 방법에 대해 많이 다뤘던 것 같다. 가장 자주 강조하였던 부분은 육하원칙처럼 말하는 내용을 구조화하는 것이었다. 가령, 과거 경험을 묻는 질문에서는 main point를 20초 내로 말하고 body, conclusion으로 진행한다던가, main point 에는 What, Feeling, Why 가 포함되어야 한다던가 이런 식으로 질문 유형에 대해 답변을 구조화하기 좋았던 것 같다. 나의 습관을 묻는 질문에는 "Whenever~"으로 시작한다던가 하는 소소한 꿀팁도 있다. 

오픽노잼 영상이 굉장히 많아서 전부다 보기는 어려울 것 같다. 영상을 보다 보면 이전 영상들에서 언급했던 부분들을 지나가듯이 언급해서 더 헷갈릴 수도 있다. 그래서 목표로 하는 등급별로 모아놓은 링크에서 골라보되, 이해가 안 가는 부분은 그냥 구글링 해서 정리가 잘 된 블로그를 참고하면 좋을 것 같다.

아래 내가 두어번은 돌려봤던 강의 링크를 첨부한다.

 

 

제인서 모의고사는 실제 시험 환경과 가장 유사하게 볼 수 있다. 시험장에 가보면 우리가 아는 노이즈캔슬링 헤드셋이 아닌 굉장히 꾸진 헤드셋이기 때문에 다른 사람들 말하는 소리가 다 들린다. 이런 환경을 가장 잘 연습해볼 수 있는 모의고사였다. 

제인서 모의고사

 

+) 다른 사람들 공부법

"토익스피킹ㆍ오픽 해커스TV"의 영상을 참고해서 5번 따라하고 IH 받았다는 친구도 있었다. 아래 해당 영상을 첨부하였다. 오픽패스 어플에 가입하면 주는 7일 무료 쿠폰을 이용해서 연습하고 AL 받은 후기도 보았다. 오픽패스의 경우에는 내 목소리를 들을 수 있고 유형별로 기출 문제를 확인할 수 있다는 점이 굉장히 좋은 것 같다.

 

 

이상으로 길고 긴 오픽 후기를 마친다. 모두 한 번에 원하는 목표치가 나와서 오픽 스트레스에서 벗어나길 바란다.

 

출처 : 넷플릭스

최강록 셰프의 요리와 문상훈의 보조 및 응대를 다룬 예능이다. 보자마자 저건 무슨 조합일까 궁금해서 누를 수밖에 없었다. 

 

결론만 말하면 보자마자 후기부터 올리고 싶은 예능이다..!!!

 

컨셉게스트가 원하는 주관식의 요리와 그걸 본 최강록의 주관이 합쳐진 음식을 게스트가 먹고, 해당 음식의 이름까지 지어주는 형태이다. 그래서 "주관" + "식당" 또는 "주관식" + "당" 해서 주관식당이라는 이름이 생겼다고 한다.

 

넷플릭스를 밥친구 삼아 보는 나로써는 최고의 예능이었다. 묘한 지루함과 재미, 감동, 힐링까지 다 맛볼 수 있다.

전체적인 분위기는 영화 심야식당과 리틀포레스트 풍이고, 요리 과정을 다룬다는 점에서 리틀 포레스트에 조금 더 가까울 것 같다. 음식에 담긴 스토리와 구상 및 조리 과정, 그리고 게스트의 상세한 시식평까지..요리를 좋아하는 사람한테는 은은하게 재밌는 예능이지 않을까 싶다. 특히 최강록 셰프의 메모에 담긴 내용을 글씨체까지 있는 그대로 보여주는 것이 참 좋았다. 

 

일단 문상훈과 최강록의 대화가 정말 이게 무슨 대화일까 싶을 정도로 어색하고, 그 어색함에서 오는 재미가 있다. 정말 결이 다른 두 사람의 은근한 케미가 재미있었다. 오디오를 채울 사람이 두 명밖에 없으니 최강록 셰프가 말을 잘한다는 점이 가장 웃겼다..!!! 둘 다 노력하는 게 보여서 웃기면서도 짠하다. 둘 다 서로 잘 맞는다고 억지로 셀프 가스라이팅 하는 듯한 바이브도 재미있다. 

 

그리고 게스트만의 요리를 하는 그 과정을 보면서, 어떻게 요리를 구상하는지, 어떤 부분을 신경쓰고 어떤 스토리를 의도하는지, 요리에 담긴 스토리를 알아가는 재미도 있다. 그렇게 게스트 한 명만을 위한 세상에 하나밖에 없는 요리가 완성되는 것도 감동 포인트이고, 그걸 게스트가 잘 캐치했을 때 은근한 쾌감도 있다. 사실 2화까지밖에 안 나왔지만, 1화에서 게스트인 장기하씨가 작성한 요리 이름에 최강록 셰프도, 나도 뭉클해지는 감동도 있었다. 

 

힐링 포인트는, 배경 사운드가 거의 없다는 것이다. 오로지 두 엠씨의 대화소리, 칼질 소리, 음식 보글거리는 소리만이 담긴다. 대화를 많이 하지도 않고, 대화를 해도 뇌빼야만(?) 따라갈 수 있는 대화이다. 

 

앞으로 나올 요리들이 기대되는 예능은 정말 처음인 것 같다. 완전 강추!!!

 

 

 

Docker는 다양한 방식으로 활용할 수 있지만, 개인 개발 환경에서 사용되는 방법은 크게 두 가지로 나뉜다.

1️⃣ 하나의 서버에서 여러 사용자가 개별 개발 환경을 구축하는 방식
2️⃣ 일괄적으로 모델을 실행하고 평가하는 시스템을 구축하는 방식

 

나는 이전까지 첫 번째 방법을 사용하여 Docker 컨테이너를 실행한 후, 내부에서 개발하는 방식에 익숙했다. 하지만 이번에는 두 번째 방법으로 이미지를 직접 빌드하고 컨테이너 실행을 자동화하는 과정을 경험해보았다. 이 블로그에서는 다음과 같은 흐름으로 Docker 사용법을 정리한다.

1. 도커 사용 환경 비교
2. 이미지? 컨테이너?
3. 도커 명령어 - 정해진 이미지 내에서 컨테이너 생성
4. 도커 명령어 - 이미지 구축 및 컨테이너 생성  

도커 사용 환경 비교

서론의 연장선이기도 하니 스킵 가능

나는 지금까지 Docker 환경을 사용해왔지만, 직접 세팅을 하지 않고 docker run, docker exec 등의 명령어만 익혀 컨테이너를 생성한 후, 컨테이너 내부에서 개발하는 방식으로 작업해왔다. 이번에는 이미지를 직접 빌드하고, 컨테이너 실행을 자동화하는 방식을 시도해보고, 그 후기를 남겨보려 한다.

 

Docker를 개인 단위에서 활용하는 방법은 크게 두 가지로 나뉜다.

  1. 개별 개발 환경 구축 – 하나의 서버에서 여러 사용자가 각자의 컨테이너를 실행하여 독립적인 개발 환경을 유지하는 방식
  2. 자동화된 시스템 구축 – 동일한 작업을 반복 수행하는 애플리케이션을 컨테이너로 구성하고, 실행 및 평가 과정을 자동화하는 방식

이번 실험에서는 두 번째 방식, 즉 일괄적으로 모델을 실행하고 평가하는 시스템을 구축하는 과정을 다룬다. 비유를 하자면, 첫 번째 방식의 경우 하나의 컴퓨터에서 각자의 파일을 만들어서 그 파일 안에서만 사용자들이 개발하는 것이랑 유사하고, 두 번째 방식의 경우에는 항상 동일한 작업을 하는 어플리케이션을 만든 것이라고 비유할 수 있을 것 같다. 물론, 두 방식을 그대로 나누기는 어렵고, 2번에서 작성한 환경에서 새로운 컨테이너를 생성해서 1번처럼 사용할 수 있기는 하다. 

 

이게 무슨 말이냐고? 다음 챕터에서 알아보자.


이미지? 컨테이너?

Docker 에서 가장 흔하게 접할 수 있는 단어가 컨테이너이미지이다.

정의를 먼저 살펴보면 "이미지"는 실행 환경을 포함한 템플릿, "컨테이너"는 이미지를 기반으로 실행되는 독립적인 프로세스를 의미한다. 컨테이너를 실행할 때 이미지를 기반으로 동작을 하게 되는데, 이미지는 설정 환경을 포함하여 변하지 않는 템플릿이다. 

Docker Hub에 공개되어 있는 이미지를 불러와서 사용할 수도 있다. 

즉, 이미지를 한 번 생성해두고 나면 그 안에서 1번(개별 개발 환경 구축)과 같이 컨테이너를 생성해서 활용할 수 있는 것이다. 단, 이때 컨테이너 내에서 코드를 수정하고 이 내용이 그대로 유지되길 원한다면 -v 볼륨 마운트 조건을 추가해야 수정 사항이 날라가지 않고 유지된다. 이에 대한 것은 네 번째 챕터에서 다루도록 한다.


도커 명령어 - 기존 이미지 내에서 컨테이너 실행

이전에 작업했던 환경으로, 당시 로컬 리눅스 환경에서 GPU 서버를 원격 접속하여 사용하였다. 따라서 관리자가 생성해둔 이미지에 접속하여 컨테이너를 생성하였다. 이후 컨테이너를 접속해서 개별 폴더 및 파일을 생성하고, 코드를 작성하는 형태였다. 

이 때 사용한 명령어를 간단하게 정리해보면 다음과 같다.

    1. docker run
      docker run -itd \
        -v <호스트 경로>:<컨테이너 경로> \ # 컨테이너와 로컬(또는 서버) 파일 동기화
        -u <사용자 이름> \ # 컨테이너 내 사용자
        --gpus all \
        --name <생성할 컨테이너 이름> \ # 내가 새로 정하는 것!
        <이미지 이름> \ # 지정된 것!
        /bin/bash
       
      •  -v : 이 부분이 일전에 설명한 볼륨 마운트이다. 볼륨 마운트를 지정함으로써 컨테이너 내에서 코드를 수정하면 호스트에 그대로 반영되기 때문에 컨테이너를 삭제해도 수정한 내용이 유지된다!
      • -u: 사용자 지정하는 명령어로, 사용자를 명명하지 않으면 기본적으로는 root 권한으로 실행돼서 이후 접근이 어려워질 수 있다..(본인이 관리자가 아니라면 꼭 명명해주자)
      • 이미지 이름 : 이전 연구실에서는 ufoym/deepo 이미지를 가져와서 사용했다. 해당 이미지는 여러가지 장점이 있는데, 1) TensorFlow, PyTorch, Caffe, MXNet 등이 포함되어 연구 환경에 알맞고, 2) --gpus all 옵션으로 gpu 가속이 가능하다. 본인이 빌드한 이미지이든, docker hub 에서 받아온 이미지이든 상관 없다.
    2. docker exec : 컨테이너에 접속
      docker exec -it <컨테이너 이름> bash
       
    3. docker stop & docker rm : 컨테이너 정지 및 삭제
      docker stop kyuheelim_torch_ecg  # 실행 중인 컨테이너 정지
      docker rm kyuheelim_torch_ecg    # 컨테이너 삭제
      요 명령어들은...사실 관리자 권한이 필요한 경우가 많고, 문제가 생기지 않는 한 잘 쓰지 않았던 명령어들이다. 

사실 1번 외에는 거의 쓰지 않았는데, 나의 경우에는 어차피 원격 서버에 접속해야하기 때문에 vs code 상에서 remote ssh 연결해서 docker extension 설치 후 바로 접속해서 사용할 수 있었다...! 이 방식을 사용하면 파일 수정 할 때도 쉽게 파일 수정이 가능하고, 무엇보다 CLI 없이 vscode의 UI 를 사용해서 컨테이너를 관리할 수 있다.


도커 명령어 - 이미지 구축 및 컨테이너 생성 

오늘의 핵심이라 목차에도 별표를 쳐보았다. 사실 이미지 구축은 처음이라..꽤나 시간이 많이 걸렸지만, 돌이켜보면 사실 정말 간단한 과정이었다. 

먼저 실행을 위해서는 Docker Desktop이 필요하고, Window에서 wsl 을 사용할 때는  아래 그림과 같이 wsl 동기화 과정이 필요하다. 

 

명령어를 소개하기 앞서, 이미지를 생성하기 위해 필요한 파일들을 먼저 소개하면, docker-compose.yml, dockerfile, run.sh 가 있다.

  1. (필수) Dockerfile: 도커 이미지 빌드
    # Python 3.12 기반 컨테이너 생성
    FROM python:3.12
    
    # 작업 디렉토리 설정
    WORKDIR /app
    
    # 필요 파일 복사 및 패키지 설치
    COPY pyproject.toml poetry.lock ./
    RUN pip install poetry && poetry install --no-root --no-interaction --no-ansi
    
    # 코드 복사 및 실행 스크립트 준비
    COPY . .
    RUN chmod +x run.sh
    
    # 컨테이너 실행 시 실행할 명령어
    CMD ["./run.sh"]
     나는 dependency 를 고려하기 위해 poetry 라는 도구를 사용했다. Poetry 에서는 pyproject라는 파일을 만들게 된다. 내가 지정한 dependency를 설치할 수 있도록 COPY RUN 명령어를 사용하여 poetry를 설치하였다. 
    또한, 내 목표는 run.sh를 실행하는 것이었기 때문에 실행할 수 있도록 권한을 부여하는 chmod와 바로 실행하도록 CMD 명령어를 작성하였다. 
  2. docker-compose.yml : 자동화 및 여러 컨테이너 관리
    version: '3'
    services:
      app:
        build: .
        container_name: my_python_app
        working_dir: /app
        volumes:
          - "./src:/app/src"  # 호스트와 컨테이너 코드 동기화
        env_file:
          - .env  # 환경 변수 파일 적용
        command: ["python", "app.py"]
    docker-compose.yml 의 경우 필수적이지는 않지만, 1) 여러 컨테이너 실행 및 관리를 위해서는 필수적이고, 2) docker-compose.yml 파일이 없이면 실행 코드가 길어진다.나는 2번의 이유로 yml 파일을 추가하기도 했지만, 코드를 수정해도 자동으로 동기화 할 수 있도록 volumes 를 사용할 수 있고, openai 의 api key를 포함한 .env 파일을 사용하고자 env_file을 지정하여 사용하기 위해서도 필요하였다.
  3. run.sh
    사실 이미지 구축과 무관하다면 무관한 파일이다. 나의 경우 세 개의 py 파일(src/preprocess_pdf.py, src/retriever.py, src/agent.py)을 연속적으로, 자동으로 실행하도록 하기 위해 생성한 파일이다. 본 포스트와 관련이 없을 수 있기 때문에 아래 예시만 작성해 두고 넘어가도록 하겠다. 
    #!/bin/bash
    set -e  # 에러 발생 시 스크립트 중단
    
    export PYTHONUNBUFFERED=1
    
    echo "[1] Preprocessing PDFs..."
    poetry run python src/preprocess_pdf.py || { echo "Error in preprocess_pdf.py"; exit 1; }
    
    echo "[2] Building Vector DB..."
    poetry run python src/retriever.py || { echo "Error in retriever.py"; exit 1; }
    
    echo "[3] Running Agent Evaluation..."
    poetry run python src/agent.py || { echo "Error in agent.py"; exit 1; }
    
    echo "Done!"

이제 이 파일들을 실행할 명령어를 살펴보자. 

  1. docker : 개별 컨테이너를 직접 실행하고 관리
    docker 명령어는 기본적으로 1개 컨테이너를 관리할 때 사용하며, dockerfile 만을 필요로 한다.
    • build : 이미지 빌드
      docker build -t my_python_app .
    • run : 컨테이너를 실행하는 명령어로, 이미지 빌드가 선행되어야 한다.
      나는 docker-compose.yml 파일을 사용하고자 했기 때문에 단일 컨테이너를 생성하고자 하였어도 docker-compose 를 사용하였다. 하지만, dockerfile 만으로도 아래와 같이 -v, --env-file 등의 명령어로 실행할 수 있고, 원하는 패키지도 직접 설치할 수 있다.
      docker run -it --name my_python_app_container \
        -v "$(pwd)/data:/app/data" \
        -v "$(pwd)/output:/app/output" \
        --env-file .env \
        my_python_app
  2. docker-compose : 여러 개의 컨테이너를 자동으로 실행하고 관리(단일 컨테이너에서도 사용 가능)
    • up
      이미지가 이미 빌드되어 있다면, 기존 이미지를 기반으로 모든 컨테이너를 실행한다. 
      docker-compose up
    • build
      docker-compose.yml을 사용하여 이미지 빌드만 수행하고 컨테이너는 실행하지 않는다. 여러개 컨테이너를 관리해야 할 때 컨테이너를 모두 실행하지 않고 이미지만 생성할 때 사용한다. docker-compose.yml에 정의된 모든 이미지를 한 번에 빌드할 수 있어서 docker build 와 비교하였을 때 자동화 및 유지보수 측면에서 유리하다. 
      docker-compose build
    • build + up
      나는 빌드와 실행을 동시에 하기 위해서 단일 컨테이너임에도 불구하고 이 조합으로 실행했다. 
      Dockerfile 기반으로 이미지가 자동으로 생성(docker build와 동일)되고, 해당 이미지를 기반으로 docker-compose.yml에 따라 컨테이너를 생성(docker run과 동일)한다.
      docker-compose up --build

꽤나 긴 docker 사용기였다...! 사실 docker 자체를 이해하고 사용하기보다는 그때그때 필요한 명령어만 익혀왔는데, 이렇게 정리하고 보니 꽤나 유용한 툴인 것 같다. 다음엔 깃헙과 연동해서 사용할 수 있는 방법을 찾아봐야겠다. 

'기술' 카테고리의 다른 글

[Tool] Poetry 사용기  (0) 2025.02.21

+ Recent posts