SOPT 34기 서버파트

SOPT 34기 서버 YB 최종 합격 후기 [면접전형 +꿀팁 + 예상질문 포함]

softmoca__ 2024. 3. 31. 15:36
목차

https://softmoca.tistory.com/326

 

SOPT 34기 서버 YB 최종 합격 후기 [서류전형 +꿀팁 + 자기소개서 포함]

SOPT(Shout Our Passion Together) 0. 지원계기 나는 비전공자로서 2년전 처음 프로그래밍을 접하게 되어 현재는 백엔드 개발자를 희망하고 있다. 처음 UMC를 시작으로 교내외 프로젝트와 캡스톤 설계를 하

softmoca.tistory.com

(이어지는 이전 포스티인 서류전형 후기 및 준비팁 입니다.)

 

워낙 경쟁률이 높은 동아리라서 일부러 기대를 하지 않기 위해 제출이후 "뭐 떨어지면 코딩 테스트에 쓸 시간 많고 좋지.."라고 생각하며 결과를 기다렸다. 하지만 결과를 보니 서류가 합격 해서 면접 대상자로 선정이 되었다 !!!

 

서버 파트의 면접 대상자들의 수와 모집 예상 인원수를 대조해 보니 대략 2배수로 뽑는것 같았다.

즉, 서류 7:1의 경쟁률을 뚫은 지원자들은 면접을 통해 2:1의 경쟁률 뚫고 합격을 해야 했다.

 

 

면접 준비 

이후 급하게 면접 준비를 진행 했다.

서류 발표 일로 부터 3일뒤가 바로 면접 이어서 급하게 구글링을 통해 SOPT 면접 후기와 예상 질문 등을 알아 보았다.

그리고 노션으로 예상  질문과 지원서를 다시 읽어보며 나만의 예상질문을 따로 제작해보았다.

또한 자기 소개와 마지막 하고 싶은 말은 꼭 하는것 같아 완전 암기로 각각 약 20초 분량으로 준비를 했다.

(면접 준비를 하며 정리한 목록은 아래에 첨부하니 참고하세요.)

 

 

또한 예상 답변을 정리한것이 생각 보다 말로는 잘 나오지 않아 모의 면접을 면접 전날과 당일날 2시간씩 진행했다..!

처음 모의 면접을 할때는 말을 많이 버벅 거렸고 처음 자기 소개 및 지원동기와 마지막 인사를 제대로 하지 못해 몇번이고 다시 진행했다..

혹시나 면접을 준비하게 되면 꼭꼭 모의 면접을 진행해보자.....!!!

 

면접 후기

처음 면접 장소에 도착한 뒤 대학생임을 증명할 수 있는 '실물 재학증명서'를 제출하고 검사 받은뒤  면접 시간이 되기 전까지 대기 장소에서 대기를 한다.

그리고 시간이 되면 아이스 브레이킹 장소로 이동을 한다.

 

면접은 총 1시간 가량 진행되며 크게 3개의 파트로 나뉜다.

1. 아이스브레이킹(15분)

2. 회장단 면접(20분)

3. 파트장 면접(20분)

 

아이스브레이킹은 다대다로 진행이 되며 SOPT 운영팀과 미디어 팀 OB분들이 긴장을 풀어주기 위해 정말 아이스브레킹만 진행한다.

평가에는 들어가지 않고 취미 혹은 오늘 먹은 음식 등등 이야기하며 긴장을 풀 수 있게 도와준다.

OB분들이 정말 활발하게 긴장을 풀어주기 위해 노력해주셨고 많이 도움이 되었다 !!
(이글을 참고 하시는 예비 SOPT인들 또한 참고해서 최대한 많이 이야기 하는걸 추천 드립니다 ~)

 

 

34기 NOW SOPT 아이스브레이킹

아이스 브레이킹에서는 각 파트별로 모인 면접자들(총 6인)이 모두 들어가서 이야기를 했다.

중간에 취미를 이야기 하는 과정에서 한분이 최근 연예인을 본 이야기와 다른 한분이 배우 김고은 분과 해외 여행에서 만나서 한국에서 복귀한 이후에도 영화 시사회에 초대 받은 경험을 이야기를 했고 되게 신기했다 ㅋㅋㅋㅋ

그리고 이후 나도 갑자기 군복무 중  국군의날 행사로 방문한 전 대통령 @@@님과 같이 식사 자리를 했다는 이야기를 하며 한참 모두 웃으며 즐거운 분위기로 아이스 브레이킹을 가져갔다.

 

34기 NOW SOPT 회장단 면접 

그리고 회장단 면접은 6명이 절반으로 나뉘어 3명이서 각자 다른 방으로 가서 진행했다.

나는 회장님과 미디어팀장분에게 면접을 보게 되었다.

 

처음 면접 질문으로 30초 이내로 짧게 자기소개를 부탁했다.

나는 면접 준비를 하며 짧은 자기소개 이후 지원동기를 물어보는 과정에서 나를 어필하려고 하였다.

그래서 자기소개느 약 15초가량 짧게 진행 했다. 하지만 지원동기에 대한 추가 질문은 오지 않았고.. 나를 제외한 양옆의 두분들은 자기소개를 약 1분씩은 술술 했다..! 그때 뭔가 아차(?!) 싶었다... 약간 멘붕이 왔고 머리가 굳어가기 시작했다.

하지만 정신을 차리고 마지막 하고 싶은 말에 미처 준비한 못한 말을 해야 겠다고 생각 했지만 마지막 하고싶은 말 또한 질문이 오지 않았다... 또한 나는 회장단 면접에서는 핵심 가치를, 파트장 면접에서는 기술적 설명을 위주로 설명을 하려고 준비를 했다.

하지만 예상 외로 회장단 질문에서 기술적인 질문이 들어왔고 당황하여 핵심가치를 녹여낸 답변을 하지 못했다..

거기다 추가 질문이 나에게는 많이 오지 않는걸 느꼈고  멘붕 멘붕 벼락 멘붕이 왔다... 그리고 서버파트장 면접을 곧바로 장소를 옮겨 시작했다.

 

 

질문 목록

1. 30초 이내 짧은 자기소개 부탁드립니다.

2. 프로젝트시 의사소통이 어렵거나 갈등이 생겨 해결한 경험에 대해 이야기해주세요.

3. 서버 과금 60만원의 주요 원인과 대처에 대해 자세히 설명해주세요.

 

위 3개의 질문을 토대로 나의 답변에 대한 추가 궁금한 점에 대해 꼬리 물기를 통해 진행이되었다.

모두 자기소개소에 대한 질문이었다.

 

 

 

34기 NOW SOPT 파트장 면접 

 

파트별 면접은 1대 1 혹은 1대 2로 주로 진행이된다. 나는 당시 1대 2로 진행을 했다.

파트장 면접에서는  파트장님 께서 인자한 미소로 긴장 하지 말라며 편안한 분위기와 함께 면접을 진행했다.

하지만 파트별 면접에서 예상한것과는 반대로 기술적인 질문 보단 지원서 기반으로 궁금한 점에 대한 질문이 들어왔고 그때 난 '아..난 이미 끝났구나..허허' 싶었다.. 이후 기술 스택에 대한 질문은 들어오지 않았고 자기소개서를 기반의 경험에 대한 질문이 이어졌다.

그리고 시간이 너무 빠르게 지나게 되었고 나와 같이 면접을 보았던 분의 답변을 옆에서 들으며 나의 연습 부족 역량 부족을 뼈저리게 느끼고 면접이 끝났따... 상당한 멘붕과 나자신에 대한 분노와 현재의 위치를 생각하며 끝나고 30분은 그냥 내내 바닥만 보고 산책을 했다....

 

 

질문목록

1. 개인적인 궁금증인데 어떻게 과몰입 상태에서 운동을 하실 생각을 하는건가요 ?

2. 서버 과금 60만원의 주요 원인과 이후 대처에 대해 설명해주세요.

3. 아웃백 스테이크에서 사용했던 시스템 중 어떤 시스템을 공유해서 작은 가게에 도입을 했나요 ?

 

 

역시 모두 자기소개서 기반 질문이었다..!

 

34기 NOW SOPT 면접 결과

당연 당연 당연히 떨어진줄 알았지만..... 붙었다 !!!
너무 기뻐서 바로 준비를 도와준 지인에게 소식을 알리고 오랜만에 인스타그램에세 스토리도 게시했다..!!

 

너무너무 활동하고 싶었던 동아리여서 너무 기뻤고 열심히 준비한 후 얻은 열매를 통해 이후 다른 코딩테스트, CS면접, 프로젝트 준비 등등을 더더 열심히 하고 싶다는 동기가 되었다 !!!

 

 

 

 

 

 

 

 

 

아래 예상 질문들은 제가 면접을 준비하며 준비한 모의 면접 예상 질문들입니다. 

전반적인 SOPT 예상 질문과 저의 자기소개서 기반 예상 질문, 서버 이론 질문들을 정리해 보았습니다 !

공통 면접 예상 질문 준비목록 및 답변 정리

 

  • [암기] 핵심 가치 3가지를 포함한 자기 소개

안녕하세요 저는 솝트의 핵심 가치인 공유,도전,유대에 깊이 공감하며 끈임없이 성장에 몰두하는 개발자 최영철이라고 합니다. 잘 부탁드리겠습니다.

 

  • [암기] SOPT 지원동기

저는 E와 N 성향을 가지고 있어 도와줄수 있는 일이나 알고 있는 지식을 다른 사람들에게 알려줄 때 행복을 느낍니다. 그래서 하나의 서비스를 통해 많은 사람들에게 긍정적인 영향을 줄수 있따는 점이 너무 매력 적이었습니다.

그런 와중 SNS를 통해 SOPT와 매 기수의 가치들을 알게 되었고 그런 가치들을 추구하는 솝트는 저의 꿈을 이루는데 중요한 발판이 될것 같다고 생각하여 지원하게 되었습니다.

 

  • [암기] 마지막으로 하고 싶은 말(터닝 포인트 이야기하기)

34기 솝트의 핵심가치인 유대,도전,공유는 저를 표현하는 키워드라고 생각될 만큼 깊은 공감을 하고 있습니다. 솝트의 활동은 제 꿈을 향해 달려가는 좋은 터닝 포인트가 될것 같습니다. 꼭 이번 34기 YB로 활동을 하며 성장하고 싶습니다. 감사합니다 !

 

  • 람들과 함께 성장한 경험이 있나요 ?

→ 네, 처음 프로그래밍을 접했던 IT 연합 동아리UMC에서 만난 서버 5조 인원들과 연속으로 2번의 프로젝트를 진행하며 경험이 있습니다. 또한 당시 UMC 광운대 지부 회장님과 현재 창업 동아리에서 같은 프로젝트를 진행하며 성장하고 있습니다.

 

  • 새로운 기술을 익힐 때 어떤 식으로 공부하나요 ?

→ 저는 우선 큰 그림과 흐름을 먼저 파악하기 위해 유튜브를 활용합니다.

그 후 구글링을 통해 다른 사람들의 실제 적용 방법을 보고 다양한 사례를 통해 더욱 이해를 높입니다. 그 후 실제 프로젝트에 기술을 적용하며 공식문서와 필요시 인프런 강의를 참고하며 공부를 하고 있습니다.

 

  • 어떤 유형의 팀원이 나와 맞지 않는다고 생각하나요 ? 그런 사람을 만나면 해결법은 ?

저는 책임감이 없고 협력을 거부하며, 팀 분위기를 해치는 팀원과 잘 맞지 않다고 생각합니다.

팀 프로젝트에서 각자의 역할을 책임감 있게 수행하고 서로 협력하여 목표를 달성하는 것이 중요하다고 생각하기 때문입니다.

우선 그런 팀원을 만났을 때는, 무슨 이유에서 해당 역활을 못하고 있으며 협력을 거부 하는지 개인적으로 이야기를 하며 원인을 파악하기 위해 소통을 합니다. 이후 제가 도와줄수 있는 일이라면 도와주고 저의 힘으로는 역부족이라면 당사자의 의견을 물어본뒤 회의를 통해 논의해 보아 적절한 역활과 목표를 수정해서 해결할것 입니다.

 

  • 가장 잘 맞을 것 같은 사람

책임감을 가지고 목표를 위해 몰입하며 그런 과정을 소통을 잘해주는 사람이 잘 맞을 꺼같습니다.

 

 

  • 리더쉽과 팔로워쉽은 각각 어떤건가요 ?

리더쉽조직을 이끌고 목표를 달성하도록 하는 능력이고ㅅ(팀원들과 함께)

팔로워십리더를 따르고 지지하며 조직의 목표 달성에 기여하는 능력입니다.

리더쉽은 주로 명확한 목표와 방향제시, 상황판단 및 적절한 의사결정, 팀원들의 참여 유도와 동기부여, 팀워크 구축을 통한 협력 증진이 핵심 요소라고 생각합니다.

팔로워쉽은 리더의 능력과 의도에 대한 신뢰, 주도적인 태도로 임무를 수행하는 적극적인 참여, 자신의 역활에 대한 책임감, 건설적인 비판, 협력적인 태도가 핵심 요소라고 생각합니다.

 

 

  • 본인은 리더쉽과 팔로워쉽 중 어떤 가요 ?

→ 저는 리더쉽형이라고 생각 합니다.

그 이유는 팀원들에게 동기 부여를 주며 팀워크 구축을 통해 협력을 증진 시킬 때 행복하며 성공적으로 좋은 분위기를 만든 경험이 있기 때문입니다.

또한 팀원들의 건설적 비판을 통해 명확한 목표와 상황판단을 통해 성장하는 것을 좋아 하기 때문입니다.

 

 

  • 자신을 색깔로 표현한다면 ?

저는 혼자 있을 때는 열정과 도전을 상징하는 빨간색, 조직에 있을 때는 따듯함, 에너지, 긍정적 변화를 상징하는 주황색입니다.

저는 긍적적인 시각으로 도전을 즐기며 새로운 지식에 대한 열정을 가지고 있어 끈임없이 학습하며 발전하기 위해 노력합니다.

또한 제가 가진 지식과 경험을 다른 사람에게 공유 하는걸 좋아해 멘토링과 블로그 작성을 통해 다른 사람들의 성장에 도움을 주기 위해 노력합니다.

 

 

  • 핵심 가치 중 자신과 가장 먼것과 그 이유는 ?

솔직히 말해서 셋 모두 멀수가 없다 가치라고 생각합니다. 공유,도전, 유대는 하나를 추구하면 연쇄적으로 따라오는 긍적적인 가치들라고 생각이 됩니다.

그래도 하나를 뽑자면 도전이라고 생각을 하며 그 이유는 서로 유대하며 공유 하는 과정에서 개인적인 도전은 접는 과정이 필요하다고 생각 하기 때문입니다.

 

 

  • 핵심 가치중 자신과 가장 가까운 것과 그 이유는 ?

저는 공유가 가장 가깝다고 생각이 됩니다.

실제 저는 다른 사람에게 지식과 경험을 공유 하는 것이 너무 행복하며 공유 하는 과정에서 유대는 자연스레 생기게 된다고 생각 하기 때문입니다.

 

 

  • 나에게 가장 도움이 되었던 사람은 ?

저에게 가장 도움을 주었던 사람을 한명만 꼽기에는 너무 어렵습니다. 제가 성장하는데 도움을 준 사람들의 연쇄 작용으로 큰 성장을 했기 때문입니다.

프로젝트로 범위를 좁힌다면 UMC 2기 광운대 지부 회장님입니다.

처음 프로그래밍을 접했을 때 만나 현재까지 같이 프로젝트를 진행하며 많은 성장을 하게 도와줘서 개발적으로 많은 도움을 받았습니다.

또한 현재 학부연구생으로 있는 랩실의 교수님입니다.

처음 전공 공부를 시작하고 혼란 스러워하며 매 수업마다 끝난 후 20개 가량의 포스트잇을 하나씩 질문을 하는 잘못된 공부법을 가지고 있었습니다. 하지만 교수님은 공부 방법과 방향성을 알려주 셨고 그 이외에 삶에 대한 조언도 해주시며 저에게 너무 많은 긍적적인 도움을 주었습니다.

 

 

  • 자신을 동물로 표현한다면 ?

저는 제가 추구 하는 가치와 일치하는 특징을 가진 돌고래입니다.

지적 호기심이 뛰어나 끈임 없이 학습하고 새로운 지식을 탐구한다는 점과

사회적인 동물로, 협력적인 성향을 가지고 있으며 긍적적이고 활발한 에너지를 가진 동물이기 때문입니다.

 

 

  • 인생에서 가장 기억나는 어려움과도전은 무엇이며 무엇을 얻었나요 ?

현재 가장 기억에 남는 도전은 웹서비스 설계 첫 배포 운영 경험입니다.

비록 서비스를 중단하게 되었지만 혼자 였으면 시도 조차 못했을 서비스 운영 경험을 통해 팀원들과 문제를 해결하며 성장하는 과정에서 팀워크의 위대함을 다시 한번 깨달게 되었고 도전에 대한 자신감을 얻었습니다.

 

 

  • 그 과정에서 느낀 자신의 한계와 이를 극복하기 위해 실천했던 행동은 ?

→ 혼자서는 꼼꼼하게 진행사항 체크와 문제를 해결 하는 것에는 한계가 있다고 느꼈으며 이를 극복하기 위해 코드리뷰와 주기적인 회의와 논의를 통해 한계를 극복하기 위해 노력했습니다.

 

 

  • 게 될 지식을 어떤 방식으로 공유할 것인지

얻은 지식을 블로그에 정리를하고 디스코드를 통해 논의를 하며 지식을 공유 할 것입니다.

 

 

  • 자신의 단점은 ?(본인과 같은 단점을 가진 팀을 만난다면 ?)

저의 단점은 과한 긍정적 시각으로 인한 과몰입입니다.

한번 문제에 부딪히면 실마리가 보이기 전까지 밤낮없이 작업을 해서 건강이 악화되어 주변의 걱정을 받았습니다.

해당 팀원과 이야기를 하며 저에게 단점임을 깨달게 해준 친누나의 조언과 같이 건강이 그 무엇보다 중요하며 작업의 효율을 생각해서도 같이 고쳐 보자고 이야기할 것입니다.

저 또한 하고 있는 노력을 말해주며 이런이런 노력이 괜찮더라 ! 와 같이 저의 경험을 공유할 것입니다.

 

 

  • 자신의 장점은 ?(본인은 어떤 방식으로 팀 내에서 동기 부여를 주는 사람인가요 ? )

저의 장점은 긍정적으로 일을 바라보며 동기 부여를 통해 좋은 팀의 분위기를 만드는것입니다.

 

 

  • 본인을 나타낼 수 있는 3가지 해시 태그를 말하고 각각 설명

#긍정바이러스

저는 평소 웃음이 많고 미소를 띄고 있으며 그런 긍적적인 영향을 전파하며 행동하기 때문입니다.

#아낌없이주는나무

저는 제가 알고 있는 지식과 정보를 나눠 주는 것을 좋아해 제가 알고 있는 지식을 그대로 복사하듯 주는 것 만큼 모든 지원을 아끼지 않기 때문입니다.

#열정만수르

저는 모든 일을 하던지 최선을 다해 후회를 남기지 말자 라는 모토를 가지고 있습니다.

그로 인해 이왕 맡게된 일, 하게된일 모두 온 열정을 다해 최선을 다합니다.

 

 

 

  • 의사소통 과정 중 갈등이 발생 했을 때 어떻게 대처했는지 본인의 경험

우선 개개인의 문제가 아닌 근본적인 시스템에서 원인을 파악하기 위해 노력했습니다.

당사자의 문제가 아닌 현재의 시스템으로 인해 갈등이 생긴 부분을 찾고 그 시스템을 개선하기 위한 방안을 찾고 이후 아이스브레이킹과 농담을 하며 딱딱한 분위기를 풀기 위해 노력합니다.

 

 

  • 솝트를 제외한 올 한해의 목표와 진행 사항

올 한해의 목표는 크게 두가지가 있습니다.

첫번째로는 immersion팀에서 진행 중인 서비스에 결제기능을 달아 론칭하는 것이고

두번째는 코딩 테스트에서의 안정감을 느끼는 것입니다.(코드트리하루 1문제 1시간)

 

 

  • 팀원들이 지친다면 어떤 역활을 할 수 있는지

→ 처음 이번 활동을 시작하며 가졌던 동기를 상기 시켜 줄것입니다.

또한 공부를 하며 지친 모습을 주변 사랑하는 사람이 보면 뿌듯해할 상상과 미래의 멋있는 개발자가 되어있는 모습을 이야기하며 달달한 간식과 농담을 통해 분위기를 긍정적으로 바꿀수 있습니다.

 

 

  • 솝트 활동에서 가장 기대되는 것과 활동을 통해 최종적으로 얻고자 하는것

저는같은 목표를 향해 달려가는 열정을 이 넘치는 SOPT인들과 함께 하는 장기 해커톤인 APPJAM과 무박 해커톤이 가장 기대가 됩니다.

그 해커톤을 하는 과정에서 다같이 문제에 대해 고민하고 해결하며 성장하는 경험을 통해 얻은 끈끈한 유대와 인적 네트워크를 얻으며 성장하고 싶습니다.

 

  • 떤 개발자가 되고 싶은가 ?

저는 안주하지 않고 꾸준한 도전을 하며 지식을 공유하며 성장하는 개발자가 되고싶습니다.

 

 

파트별(서버) 예상 질문 준비목록 및 답변 정리

  • 기술적으로 따라가지 못하는 팀원이 있다면 어떻게 할 것인지

현재 어떤 점이 어려운지 파악한 뒤 참조하면 좋을 레퍼런스들을 알려줄 것입니다.

또한 개인적으로 같이 해당 문제에 고민을 하며 시간이 걸리며 힘들지만 할수 있다는 분위기를 만들기 위해 노력할 것입니다.

 

 

  • 팀에서 어떤 사람이라고 생각하는지

책임감을 가진채 맡은 역할을 몰입하여 성실히 수행하며 지식과 경험 공유을 통해 긍정적인 영향과 동기부여를 주며 팀워크를 다지는 사람이라고 생각합니다.

 

 

  • 목표를 가지고 무언가를 할때 가장 중요하게 생각 하는것은 ?

꾸준하게 몰입하는 열정이 가장 중요하다고 생각합니다.

 

 

  • 생에서 가장 도움이 됬던 인상 싶었던 말

처음 재수를 결심하고 기숙학원에 들어 간날 아버지가 전해준 편지에 있던 말이 가장 인상이 깊고 도움이 많이 되었습니다.

당시 내용은 @@@@@@@@@ 이순신 장군님에 대한 이야기와 함께 ‘ 현재의 어떤 상황에 있더라도 함께응원하는 사람과 하고자 한다는 열정과 의지만 있다면 할수 있다’ 라는 말씀이었습니다.

그래서 이후 인생을 살며 힘들때 함께 열심히 달려가는 주변 사람과 열정이 있기에 꾸준히 성장할수 있어서 가장 도움이 되었고 인상이 깊습니다.

 

 

  • SOPT를 통해 무엇을 얻고 싶나요 ?(1년간 sopt가 어떤 영향력을 줄까요 ?)

열정을 가진채 몰입하며 같은 목표를 향해 달려가는 SOPT인들과 함께 주기적인 세미나, 헤커톤들을 통해 다 같이 문제에 대해 고민하고 해결하며 성장하는 경험을 통해 얻은 끈끈함 유대와 인전 네트워크와 경험을 얻고 싶습니다.

 

 

  • SOPT가 영철님을 뽑으면 무엇을 얻게 되나요 ?

34기 솝트의 가치인 유대,도전,공유는 저를 표현하는 키워드라고 생각될 만큼 저의 가치와 똑같습니다.

그로 인해 작게는 같은 팀 넓게는 솝트 전체적으로 유대와 공유를 통해 도전을 하는데 더욱 좋은 윤활류 역활을 하게 되어 더 좋은 동아리 운영이 될것 같습니다.

 

 

 

  • 서버 파트에서 기대(얻고)하는것

열정을 가진채 같은 목표를 향해 달려가는 SOPT인들과 함께 스터디 세미나를 하며 Spring에 대한 이해도를 높이고 싶습니다. 나아가 해커톤을 통해 다같이 문제에 대해 고민하고 해결하며 성장하는 경험을 통해 얻은 끈끈한 유대와 인적 네트워크를 얻고 싶습니다.

 

 

  • 기획자와의 소통에서 갈등이 발생한다면 어떻게 극복할 것인지 ?

우선 긍정적이고 열린 자세로 기획자의 의견을 존중하며 경청을 하며 기획자의 입장에서 생각을 해볼것입니다.

그리고 현재의 저의 상황과 기획자분의 상황을 파악한 뒤 의사 소통을 통해 상호 간의 타협점을 찾아 윈윈 상황을 만들기 위해 노력할 것입니다.

 

 

  • 스프링을 안써봤는데 어떻게 학습할 것인가 ?

→ SOPT를 지원하며 Spring에 대해 간략히 공부를 해보았습니다.

스프링을 사용해서 프로젝트를 하고 있는 지인들에게 간단하게 큰 그림과 플로우만 파악할수 있는 레퍼런스를 참조 받았습니다.

우선 유튜브를 보았고 이후 정리된 블로그를 보았습니다. 그리고 또한 도서관에서 스프링 부트 관련 도서들을 빌려 보았습니다.

 

 

  • 스프링이란 ?

엔터프라이즈용 자바 애플리케이션 개발을 편하게 할 수 있게 해주는 오프소스 경량급프레임워크입니다.

개발 초기 기본적인 설정들과 기술들을 선택하므로써 기술보다는 애플리케이션의 로직 자체에 더 집중하여 비지니스 로직을 구현할 수 있습니다.

특징으로는 개발자가 아닌 스프링이 사용할 객체를 생성하여 의존 관계를 맺어주는 IOC

객체가 직접 의존하는 객체를 생성하는 것이 아니라 외부에서 의존성을 주입 받는 DI 가 있습니다.

장점으로는 결합도가 감소하여 Mock 객체를 사용하여 테스트 용이성이 향상 됩니다.

추가적으로 OOP를 보완하는 수단으로 여러곳에 쓰이는 공통 기능을 모듈화하여 필요한 곳에 연결함으로써 유지보수 를 용이하게 하는 AOP가 있습니다.

또한 추가적으로 순수 자바를 통해서 객체를 생성하는 POJO프로그래밍을 지향합니다.

특정 기술이나 환경에 종속되지 않고 유연하게 변화와 확장에 대처할 수 있습니다.

 

 

  • 프링 부트란 ?

스프링 프레임워크에서 제공해 주는 하나의 프로젝트로서 단지 실행만 하면 되는 스프링 기반의 애플리케이션을 쉽게 만들수 있습니다.

스프링은 다양한 기능을 제공하지만 설정 시간이 오래 걸리는 단점이 있어 스프링 부트가 개발되었습니다.

-개발에 필요한 디펜던시를 프레임워크에서 관리해준다.

 

 

  • spring과 spring-boot의 차이점

스프링 부트는 스프링 프레임워크에서 제공해주는 하나의 프로젝트입니다.

차이점으로는 스프링 부트는 많은 설정을 자동화 해주며 starter를 통해 종속성 관리는 쉽게할수 있어 개발 속도가 상대적으로 빠릅니다.

 

 

  • spring과 Node.js의 차이점

둘 다 인기있는 웹 애플리케이션 개발을 위한 플랫폼 이며 차이점으로는

스프링은 자바로 노드는 자바스크립트를 사용하며 스프링은 JVM에서 실행되고 노드는 자체 V8엔진에서 실행이됩니다. 또한 노드는 초기 설정이 간단한 반면 스프링은 개발자가 직접 설정해야합니다.

또한 스프링은 멀티 스레드를 사용하여 여러 처리를 하고 노드는 이벤트 루프를 사용해서 여러 요청을 처리합니다.

 

 

  • Django와 Node.js의 차이점

둘 다 인기있는 웹 애플리케이션 개발을 위한 플랫폼 이며 차이점으로는

장고는 파이썬으로 노드는 자바스크립트로 개발을 하며 장고의 성능이 일반적으로 노드보다 느립니다. 또한 초기 개발 설정에서 노드는 간단하지만 장고는 개발자가 직접해야 합니다.

 

 

  • JPA와 ORM 기술의 장단점

JPA는 자바 애플리케이션에서 객체와 관계형 데이터베이스 간 매핑을 위한 표준 API입니다.

JPA는 ORM 기술을 사용하여 객체 지향 프로그래밍 방식으로 데이터베이스를 쉽게 사용할 수 있습니다.

장점으로는 sql쿼리 작성 없이 데이터베이스에 접근이 가능하고 코드의 재사용 및 확장성이 향상되고 특정 데이터 베이스에 종속되지 않고 코드를 작성할 수 있습니다.

단점으로는 추상화 레이어로 인한 성능 오버헤드 발생할 수 있어 성능이 느릴수 있고 특정 데이터 베이스 기능 사용에 제한이 있어 유연성이 떨어 집니다.

 

 

  • 객체 지향이란 ?

컴퓨터 프로그래밍의 한 패러다임으로 여러개의 독립적인 객체로 나누고 이러한 객체들의 상호작용을 통해 프로그램을 구현하는 방법론입니다.

주요 개념으로는 클래스와객체,추상화,캡슐화,상속,다형성이 있습니다.

추상화는 중요한 정보를 추출하여 객체를 설계 하는것이고

캡슐화는 객체 내부에 구현 세부 사항을 숨깁니다.

또한 상속은 기존 객체의 속성과 메서드를 재사용하여 새로운 객체를 만들고

다형성객체의 속성과 메서드를 상황에 따라 다르게 사용합니다.

 

 

  • 자바 언어 특징

자바의 특징으로는 객체지향, 플랫폼 독립성, 메모리관리및 가비지 컬렉션,멀티스레딩 등이 있습니다.

자바코드는 JVM이라는 가상머신에서 실행이 되며 운영체제나 하드웨어에 상관없이 동일한 코드 실행이 가능합니다.

또한 자동 메모리 관리를 지원하여 개발자가 직접 메모리를 할당하거나 헤재할 필요가 없어 메모리 누수를 방지합니다. 또한 멀티 스레딩을 지원하여 동시에 다양한 병렬 및 동시성 프로그래밍 패턴을 구현할 수 있습니다.

 

 

  • 자바의 생성자

클래스의 객체를 생성할 때 자동으로 호출 되는 메서드 입니다.

클래스 이름과 동일하며, 리턴 타입을 가지지 않고 객체 초기화에 사용 됩니다.

 

 

  • 서버의 역활

서버는 클라이언트로 부터 요청을 받아 들이고 처리하여 해당 요청에 대한 응답값을 제공합니다.

종류로는 웹 사이트를 제공하는 웹서버, DB를 관리하는 DB서버와

웹 애플리케이션을 실행하는데 필요한 환경을 제공하는 애플리케이션 서버와 애프리케이션 서버에서 필욯나 데이터를 제공하는 API서버가 있습니다.

 

 

  • Nginx란 ?

적은 메모리 사용과 CPU부하를 가지고 있는 높은 성능과 확장성을 갖춘 오픈소스 웹 서버 입니다.

리버스 프록시서버, 로드 밸렁서, http캐시 서버 등의 역활을 수행합니다.

그로 인해 대규모 트래픽을 처리하는데 우수합니다.

 

 

  • (restFUL)API(Application Programming Interface)란 ?

응용프로그램에서 사용할 수 있도록 다른 응용 프로그램을 제어할 수 있게 만든 인터페이스입니다.

API를 사용하면 내부 구현 로직을 알지 못해도 정의되어 있는 기능을 쉽게 사용할 수 있습니다.

또한 REST는 자원의 이름으로 구분하여 해당 자원의 상태를 교환하는 것을 의미하며 서버와 클라이언트의 통신 방식 중 하나 입니다.

특징으로는 URL을 통해 자원을 명시하고 get,post,delete,patch,put과 같은 CURD Method를 통해 자원을 교환합니다. 또한 statless 해서 요청간 클라이언트의 정보가 서버에 저장되지 않고 서버는 각각의 요청을 완전 별게의 것으로 인식 후 처리합니다.

 

 

  • 유저 인증 구현 방법

크게 세션,쿠키,토큰,OAuth 4가지 방식이 있습니다.

세션은 서버 부하의 단점이 있으며 쿠키는 세션에 비해 서버 부하를 줄일 수 있지만 보안 문제가 발생할 수 있습니다. 토큰은 세션과 쿠키에 비해 보안성이 높고 서버 부하를 줄일 수 있습니다.

OAuth는 구글,페이스북과 같은 다른 서비스를 통해 인증을 하는 방법입니다.

사용자 정보를 직접 관리할 필요가 없고, 다양한 서비스를 통합하여 사용할수 있는 장점이 있습니다.

 

 

  • S3란 ?

AWS에서 제공해주는 오브젝트 스토리지 서비스 입니다.

웹사이트 호스팅, 데이터 백업 및 복구, 빅데이터 분석 등 다양한 용도로 사용이 됩니다.

주요 특징으로는 페타바이트 규모의 데이터 까지 저장할수 있는 확장성을 가지고 있으며 99.999%의 데이터 내구성을 제공하는 안전성과 다양한 보안기능을 제공해 보안성 또한 우수합니다.

 

 

  • CI/CD란 ?

지속 통합과 지속 배포의 약자로 소프트웨어 개발 프로세스를 자동화 하여 개발 속도를 높이고 품질을 향상시키는 방법입니다.

주요 이점으로는 코드 변경 사항을 빠르게 테스트하고 배포할수 있어 개발 속도가 향상되며 배포 오류를 줄여 안정성과 협업을 향상시킵니다.

주로 사용되는 도구로는 젠킨스와,트레비스 CI,깃허브 액션이 있습니다.

 

 

  • GET/POST 차이는 ?

GET은 서버에 리소스르 조회 할때, POST는 서버에 리소스를 생성하거나 수정할 떄 사용 됩니다.

전송 방식에서 GET은 URL 파라미터에 데이터를 담고 POST는 HTTP메세지의 Body에 데이터를 담습니다.

또한 GET은 멱등성을 만족하지만 POST는 멱등성을 만족하지 않습니다.

즉 GET은 동일한 요청을 반복해도 서버 상태에 변화가 없지만 POST의 경우 서버 상태가 변할 수 있습니다.

 

 

  • var, let, const 차이점 호이스팅

변수 선언시 var는 중복 선언과 재할당이 가능하지만 let은 중복선언은 불가하며 재할당은 가능하고 const는 중복 선언과 재할당 모두 불가합니다.

또한 var는 함수 레벨 스코프지만 let과const는 블럭 레벨 스코프 입니다.

var선언위치와 상관없이 함수 범위 내에서 가장 위로 올라가는 것처럼 동작합니다. 즉 변수를 선언하기 전에 사용해도 에러가 발생하지 않습니다. 하지만 초기화되지 않은 상태로 접근하게 되므로 예상치 못한 결과를 초래할 수 있습니다.

let/cont블럭 범위 내에서만 호이스팅이 되며 변수를 선언하기 전에 사용하면 에러가 발생합니다.

 

 

  • 동기, 비동기 차이점

동기 방식은 작업을 순차적으로 처리하는 방식으로 이전 작업이 완료 될때 까지 다음 작업을 시작하지 않습니다. 반면에 비동기 는 작업을 독립적으로 처리하는 방식입니다.

 

 

  • JS는 어떤 식으로 비동기 처리를 하는지

자바스크립트는 싱글 스레드이지만 논블로킹으로 동작해서 비동기처럼 사용할 수 있습니다.

기본적으로 콜백함수, 프로미스, async/await 세가지 방식이 있습니다.

내부적으로 비동기함수가 콜스택으로 들어오면 WebAPIs와 같은 저장소에 작업이 완료 될때 까지 기다린 후 콜백큐로 넘어가서 이벤트 루프를 통해 Main Context를 제외한 다른 함수가 남아있는지 확인을 하며 남아 있지 않다면 콜백 큐에서 다시 콜스택으로 해당 콜백함수을 옮겨져 실제로 수행하게 됩니다.

콜백함수는 콜백 지옥으로 인해 코드가 복잡해 지는 점으로 인해 비동기 작업의 결과를 나타내는 객체인 프로미스가 개발되었고 코드가 체이닝을 통해 코드가 간결해 졌지만 그럼에도 복잡했습니다. 그래서 현재가장 널리 사용되는 async/await를 사용하여 동기적으로 코드를 작성 하면서 간결하게 개발을 할수 있습니다.

 

 

  • Node.js란 무엇인가

크롬의 V8자바스크립트 엔진이 내장된 자바스크립트 실행 환경입니다.

즉, 자바스크립트를 사용할수 있는 실행 환경이다

 

 

  • MVC 아키텍처가 무엇인가

View,Model,Controller 세가지 구성요소로 역할로 구분한 아키텍쳐 입니다.

뷰는 사용자 인터페이스 즉,UI를 통해 데이터를 보여주는 화면 자체 영역입니다.

컨트롤러는 들어온 요청을 어떻게 처리할지 결정하여 모델과 뷰 사이의 브릿지 역활을 수행하며 사용자의 입력에 대한 응답으로 모델 및 뷰를 업데이트 하는 로직을 포함합니다

모델은 데이터를 처리하는 영역으로 DB연동을 위한 DAO와 데이터베이스의 테이블과 매핑되는 객체 즉 데이터 구조를 표현하는 DO로 구성됩니다.

장점으로 사용자 인터페이스로 부터 비지니스 로직을 분리하여 서로 영향 없이 쉽게 고칠수 있는 설계입니다.

단점으로는 설계및 구현이 복잡하다는 점이며 구성요소가 서로 밀접하게 연결이 되어 있기 때문에 단독으로 테스트를 하기 어렵습니다.

추가로 그러한 단점을 완화 하기 위해 sping에서는 IOC와 DI를 통해 테스트의 용이성을 높였다고 생각을 합니다.

 

 

 

  • 관계형 데이터 베이스란 ?

데이터를 테이블이라는 구조로 저장하고 테이블간의 관계를 정의하여 데이터를 관리하는 데이터베이스 관리 시스템입니다.

특징 중 장점으로는 데이터 검색과 무결성 유지 와 같은 데이터 관리가 용이 합니다.

단점으로는 복잡한 모델링이 필요하며 데이터 베이스가 커질수록 성능이 저하될 수 있습니다.

 

 

  • SQL과 NoSQL의 차이

SQL은 관계형 데이터 모델을 사용하며 NoSQL은 다양한 데이터 모델을 사용합니다.

SQL은 스키마가 정의 되어 있어야 하지만 NoSQL은 스키마가 없거나 동적 스키마를 사용합니다.

또한 SQL은 수직 확장에 용이 하며 NoSQL은 수평 확장에 용이합니다.

수직 확장이란 강력한 하드웨어로 서버를 업그레이드하는것을 말하며 수평 확장은 더 많은 서버를 추가하여 성능을 향상시키는것 입니다.

 

 

 

자기소개서 기반 예상 질문 준비 목록 및 답변 정리

 

  • 당시 브리튼에 도입했던 아웃백 시스템은 무엇인가요 ?

→ 주요 시스템은 주문을 받고 확인하는 시스템이었습니다.

손님 께서 주문하신 메뉴를 기억에만 의존해서 포스기에 입력 하던 방식을 빌지에 손님이 주문 하신 메뉴를 적고 마지막에 한번더 읊으며 주문을 확인시스템이었습니다.

또한 테이블에 음식이 모두 나간 뒤 2분뒤 음식은 입에 맞는지 체크하며 결제 빌지를 통해 주문 확인을 더블로 체킹하는것입니다.

+추가 꼬리 질문

추가로 식사 피크 시간이 되면 주방에 한번 들어 갈때 마다 테이블에 손님은 있으나 아직 주문을 하지 않은 테이블을 뜻하는 매니오픈 테이블 갯수를 보고하느 시스템이 있습니다.

추가로 손님이 왔을 때 인원수를 확인하고 접시와 냅킨과 식기를 주는것이 아닌 미리 테이블의 좌석수에 세팅을 하고 주문을 받을때 남은 식기와 접시들을 회수하는 시스템이었습니다.

 

 

  • 다른 지식과 정보를 공유한 경험이 있나요 ?

→ 저희 과에 디토라는 프로그래밍 학술 소모임이 있어 1학년 때는 멘티로 현재는 멘토로 활동을 하고 있습니다.

제가 멘티일 당시의 멘토와 그 멘토의 멘토 분 까지도 연락을 하며 교류하고 있습니다.

현재 제가 담당하고 있는 멘티들을 모두 C프로그램 과목에서 A+를 받게 하느걸 목표로 스터디를 진행하고 있습니다.

→ 음성인식 키오스크 당시 팀원들 모두 처음 도커를 사용했고 cli를 사용해서 업데이트된 이미지를 다시 컨테이너로 변환 하는 과정에서 시간이 많이 소모가 되는 과정에서 docker desktop으로 gui 로 컨테이너를 생성하는 법을 공유 했었습니다.

→ 현재 광운대학교 정보 통신처에서 교내 근로 생으로 근무를 하고 있습니다.

주요 업무가PC를 포맷시키고 초기 필요 프로그램들과 환경을 세팅하는 것이 었습니다.

하지만 세부 과정들이 많아 포맷을 한 뒤 직원들의 자리에 설치를 했지만 안된 과정들이 있어 다시 가져와서 처음부터 포맷을 해야 하는 일이 잦았고 그런 불필요한 과정을 줄이기 위해 포맷 메뉴얼을 제작 했습니다.

 

 

  • 공유를 받은적이 있나요 ?

→ 멘티 활동 당시 처음 접한 프로그래밍이 너무 낮설었지만 멘토분 과의 스터디를 통해 익숙해 질 수 있었고 백준이라는 알고리즘 사이트를 만나 개인적으로 공부하는 방법 또한 배울 수 있었습니다.

→ 처음 프로그래밍 공부를 시작 했던 IT 연합 동아리 UMC에서만난 서버 5조 인원들과 담당 멘토 분에게 공유를 받았었습니다.

UMC에서는 매주 강의와 과제를 제공하고 주에 1번 스터디를 진행했었습니다.

당시 서버 5조 인원들 모두 컴퓨터 전공생이었고 저만 당시 터미널과 os와 같은 기본 개념이 부족했었습니다.

저의 진행 속도가 너무 더뎌 스터디에 피해를 준다고 생각해서 미안했었습니다. 하지만 팀원들은 오히려 피어러닝 방식으로 스터디를 하자고 제안했고, 자신들 또한 이미 배운걸 타인에게 강의 하듯이 설명하면 더 잘 이해 할 수 있고 놓친 개념을 챙길수 있을꺼 같다고 하였습니다.

그로 인해 저는 하나 단원을 총 4번의 강의 를 들으며 프로그래밍에 적응 할 수 있었고 지식을 공유 받았습니다.

 

 

  • 프로젝트 방향성과 일정은 어떻게 짜셨고 동기 부여와 목표 부여는 어떻게 하셨나요 ?

→ 처음 팀원들에게 프로젝트 경험을 물어보며 이번 프로젝트를 통해 얻고 싶은점과 목표에 대해 이야기를 나눴습니다. 그 후 팀원에 맞게 목표를 부여 했고 4명 모두 4학년이라 자격증 시험과 면접일정들이 많아 일정들을 파악한 뒤 일정을 세웠습니다. 또한 이미 다들 분야를 정한 터라 한분은 프론트 엔드 다른 한분은 크롤링을 하게 되었고 그 과정에서 자신이 가장 잘하고 진로와 연관이 있는 역활을 주어 동기와 목표를 부여했습니다.

 

  • 60만원의 과금의 원인은 무엇이었고 어떻게 찾았으며 어떻게 해결 하셨나요 ?

→ 우선 처음 보는 과금 금액에 api서버의 주소가 유출 되어 남용 되지 않았나는 의심이 들어 팀원들에게 블로그나 타인에게 주소를 공유한적이 있는지 파악을 했습니다.

그 후 회의를 하며 코드를 살펴 보니 게시물 컴포넌트 내부에 있는 댓글 컴포넌트에서 렌더링 되자마자 바로 api를 호출하는 재귀적인 로직을 발견하여 ‘댓글보기’라는 버튼을 누르면 api 요청을 하게 수정 하였습니다.

하지만 당시 해당 사건에 대해 교수님과 논의한 결과 재귀적 호출도 원인이긴 하지만 그래도 너무 많은 과금이라고 하셔서 aws 인프라 쪾을 찾아 보았습니다.

aws 측에 해당 경위에 대해 말한 뒤 해킹 흔적이 있는지 확인이 되는지 문의를 하였습니다.

또한 프리티어가 끝났음을 뒤늦게 확인하여 이전에는 ec2서버 2대로 프론트와 백엔드, rds 서버로 데이터베이스를 사용하는 인프라에서 gcp 프리티어를 사용해서 인스턴스 하나에 백엔드, 프론트엔드 ,db 포트를 다르게 하여 배포를 했습니다.

 

  • 우선 순위는 어떻게 측정 했고 진행 사항 양식과 메뉴얼에 대해 설명해 주세요.

→ 우선 순위는 1. 팀원 전체 공지사항(지원 관련 프로그램, 결과), 2.기획 변경 사항 혹은 팀원 의견 듣기 3. 버그 관련 이슈 였고 버그 관련 이슈들은 이후 파트별로 나뉘어 마저 회의를 가졌습니다.

파트는 프론트 엔드파트,백엔드 파트, 기획자와 디자이너 파트로 구성 했으며 개발과 기획을 모두 담당하던 대표님은 논의가 필요할 때 마다 게터 방을 이동 했습니다. 또한 프론트엔드 개발자 또한 백엔드와 논의 할 점이 있을 때는 백엔드 방으로 기획과 디자이너 분과 논의가 필요할 때는 기획,디자이너 방으로 이동을 했습니다.

또한 당시 노션으로 프로젝트를 관리 하고 있었지만 정리가 잘 되지 않아 현재는 노션과 슬렉, 지라로 프로젝트를 관리 하고 있습니다.

 

  • 또 다른 인상 깊었던 말이 있나요 ?

네 있습니다.

창업동아리 활동을 하는 팀원들에게 ‘아낌없이 주는 혜자’라는 말이 또한 인상에 깊었습니다.

평소에 다른 사람에게 무언가를 주는것을 좋아해서 제가 알고 있는 지식과 정보,경험 뿐 아니라 자취

시 만큰 대량의 음식 또한 가져와서 나눠 먹었습니다. 또한 학교에서의 과제와 족보, 필기를 모두 나누어줘서 주변 사람들이 눈치 보지 않고 공유 받을수 있어 너무 고마웠다고 말했던 경험이 인상 깊었습니다.