💻 IT 연합 동아리 YAPP

https://www.yapp.co.kr/

 

YAPP

작은 아이디어로 세상을 크게 변화시키는 IT동아리, YAPP

www.yapp.co.kr

디자이너, PM, 개발자가 팀을 이뤄 프로젝트를 진행하는 기업형 it 연합 동아리입니다.

PM 직군이 있는 연합동아리는 흔치않죠ㅎㅎ

보통 기수당 4-6개월 정도가 활동기간으로 보이고 1년에 2번 모집합니다!

대학생뿐만아니라 현직자분들도 활동 가능하며 스터디, 소모임, 해커톤 등 다양한 행사가 열립니다.


🤔 지원 동기 

대학교 1학년 조무래기 시절부터 알고있던 규모가 큰 동아리고 yapp을 수료하신 분이 적극 추천하셔서 지원하게 됐습니다.

대학교 졸업 전에 it 연합 동아리에서 개발도 하고 해커톤 같은 행사에 참여해보는게 로망이었어요ㅎㅎㅎ

보통 현직자분들이 계신 it 연합 동아리는 경쟁률이 높고 들어가기 힘들어서 지원도 경험이라는 생각으로 썼습니다!


🧾 1차 서류

22기 서류 문항은 아래와 같았습니다.

문항

- YAPP에 지원하게 된 동기를 포함하여 자유롭게 자기소개를 해주세요. 500자

- 프로젝트를 진행할 때 어떤 방식으로 팀원과 소통하는지 경험을 바탕으로 작성해 주세요. 500자

- 개발 경력 혹은 경험을 알려주세요. 프로젝트 이름, 기간, 본인의 역할, 성과를 포함하여 작성해 주세요. 5000자

- 위 프로젝트 중 기억에 남는 것을 하나 선정해 기술적인 어려움을 겪었던 부분과 어떠한 과정으로 해당 문제를 해결했는지 작성해 주세요. 700자

 

 

지원서를 많이 써보신 분들이라면 자주 보는 질문들이라 어렵지 않게 쓰실 수 있을 것 같아요.

분량도 그렇게 많지 않아 부담없이 작성할 수 있어 좋았습니다!

 

최대한 제 이전 개발 경험을 녹여내려고 노력했고

질문들이 다 제가 이전에 고민했던 부분들에 대한 질문들이라 경험을 바탕으로 썼어요.

yapp에 대한 관심과 열정도 어필했던 것 같아요.

실제로 yapp 동아리에 관심있어서 한참 전부터 yapp 인스타만 팔로우를 해두고 소식들을 보고 있었는데

이런 부분도 녹여내 썼습니다 : )

 

저도 이번엔 소제목을 붙여 쓰진않고 두괄식으로만 썼는데 많은 지원서가 몰리는 특성상 두괄식은 필수고

소제목을 붙여 작성하는 것도 좋을 것 같아요ㅎㅎ

 

결과는 서류 합격..!  🎉🎉🎉


👂 2차 면접

서류 합격 메일에 포함된 링크로 면접 시간을 선착순으로 정했습니다!

 

1차 서류가 붙고 면접을 안본지 오래된 주인장은 생각이 많아집니다.

서류 발표가 난 그 주 주말 오후에 바로 면접을 보는데 같은 날 오전에 네이버 코테가 잡혀있었어요.

구글링해보니 기술 질문이 많이 나온다돼있어서 막판엔 선택과 집중으로 거의 면접 준비만 했습니다.

 

보통의 it 연합 동아리에서 나올만한 기술/인성 질문들+제 포폴 기반 기술 질문들+블로그 글 관련 기술 질문들

이렇게 세 파트로 나눠 준비했습니다.

 

면접은 45분 정도 소요됐고

제가 본 면접 방에서는 기술 질문이 많이 나왔어요!

우연히 아는 지인(최종합격함)이 동일한 백엔드 파트로 면접을 봤는데 그 방에서는 기술 질문이 많이 없었다고 합니다!

어떻게 될지모르니 공부할겸 인성 질문, 기술 질문 둘다 준비가 필요해보여요!

 

받았던 질문들을 간략하게 복기해봤습니다.

인성질문

자기소개

취준 중일텐데 시간 많이 쏟을 수 있는지

팀원과 갈등이 생겼을 때 어떻게 해결하고 소통했는지 등

 

기술질문

기억에 남는 프로젝트 및 거기서 발생한 기술적 이슈 설명 

거기에서 파생된 기술 꼬리 질문들

블로그 글 관련 기술 질문들 2개 정도

트랜잭션과 거기서 파생된 꼬리 질문들

stream api 등 

 

면접은 2:2였고 같은 시간에 동일한 파트 면접이 여러 면접관 팀에서 동시에 이루어졌습니다.

킹갓제너럴회사 현직자분과 같이 면접을 봤고 면접관분들도 딱봐도 내공이 느껴지셔서 면접 보는 와중에도 많이 배운 것 같네요ㅎㅎ

면접보고나서 더 붙고 싶었어요!


🎉 결과는 최종합격!

it 연합 동아리에서는 개발해본 적이 없어 기대됩니다ㅎㅎㅎ

 

 

차후에 공개된 경쟁률 보니 백엔드 파트는 18.5:1이더라구요. 

 

이미 팀빌딩이 끝난 상태인데 백엔드는 현직자1+대학생1로 팀이 구성됐어요.

같이 백엔드 개발하게된 팀원분도 너무 좋으시고 쟁쟁한 경쟁률을 뚫고 오신 분들이라 그런지 다른 동아리원분들도 너무 좋으시고 실력이 출중하십니다..👍👍

 

이 글을 읽고 계신 분들 중에 지원을 망설이고 계신 분이 있으시다면 꼭 지원해보셨으면 좋겠어요!

21/10/30에 진행된 학교 프로그래밍 경진대회에 참가했다.

알고리즘 스터디를 진행한지 대략 두달 정도 지난 시점이라 직접 대회에서 얼마나 늘었는지 체감해보고 

다시 한 번 실력을 점검해보는 좋은 기회가 될 것 같아 스터디원 모두 대회에 참가하여 문제를 풀었다.

 

코로나로 인해 비대면으로 진행됐고 백준 티어 기준 브론즈~플래티넘까지 다양한 난이도의 문제들이 출제됐다.

결과부터 말하자면 입상은 하지 못했지만 전체 학년에서 20등대에 들어 게임키 경품을 받았다!

입상을 하지 못한게 아쉽긴하지만 아직 알고리즘 공부를 시작한지 별로 안됐으니까 4학년 때 다시 입상을 노려보고싶다.

 

이번 대회를 통해 느낀 게 있다면 알고리즘 고수들의 문제푸는 속도가 생각보다 더 빠르다는 것과 문제를 처음부터 잘 읽고 푸는게 시간을 아끼는 길이란 걸 다시 한 번 느낄 수 있었다. 또한, 테스트 케이스가 통과하더라도 계속 틀렸습니다가 뜨면 히든케이스를 찾아서 오류를 예외 처리하는 것도 중요하지만 알고리즘 자체 로직에 문제가 있진 않으지 다시 점검해보는 것도 좋을 것 같다는 생각이 들었다. 

 

나중에 공개된 문제별 난이도 티어를 확인해보니 브론즈~실버 문제는 풀 수 있었고 골드 문제부터는 구현하기가 쉽지 않았다. 알고리즘 스터디를 진행하기전 티어가 실버5였고 2달이 지난 지금 실버2가 됐는데 다음 대회가 열릴 땐 골드 문제까지 잘 풀 수 있는 실력을 만들어 참가하고 싶다. 

 

 

라이징 캠프 ?

 

두 달동안 안드로이드, ios, 서버 세션 중 하나를 이론부터 시작해

마지막엔 클라이언트-서버 협업으로 프로젝트까지 해볼 수 있는 교육 프로그램!

( 들리는 소문에 2기부터는 파트도 추가적으로 운영되고있는 것 같다. )

자세한 커리큘럼과 수업 진행 방식은 아래 사이트를 참고해주세요 : )

https://risingcamp.com/

 

Rising Camp with 컴공선배

Rising Camp에 대해 더 자세히 알고 싶다면? 여기를 눌러 링크를 확인하세요.

risingcamp.com

 

지원 동기

 

전공생이지만 라이징 캠프를 수료하기 전까지 서버 개발 경험이 전무했다. 컴공 3학년에 재학 중이었지만 학교엔 실무와 관련된 전공 수업(웹/앱 프로그래밍)이 없었고 자바 전공 수업도 없었고 커리큘럼이 느린 학과 특성상 아직 데이터베이스나 네트워크 프로그래밍, 운영체제와 같은 과목들을 수강하기 전이었다. ( 물론 컴공은 자기주도학습이 중요한 학과라고 생각한다. )

 

이런 상황에서 3학년이 되고 취업에 관심이 생길수록 프로젝트와 실무 경험에 대한 갈증이 점점 커져갔던 것 같다. 작게는 학과 내에서, 넓게는 외부 유명동아리/우테코와 같은 여러 활동들을 다 알아봤었는데 시기도 맞고 서버 관련 프로젝트 경험이 아예 없는 3학년 전공생이 갈 수 있는 곳이 많지 않았다. 단순하게 과 동기들과 프로젝트를 할 수도 있었지만 누군가 이끌어주는 사람이 존재해서 짧은 시간 안에 많은 걸 배워가고 싶었다. 이때 우연히 라이징 캠프 모집 공고를 보게 됐고 보자마자 지원해야겠다는 생각이 들었다.

 

 

2달 간의 교육을 통해 얻은 것들

 

교육을 받기 전엔 DBMS, ERD, API, SQL, AWS, 스프링 부트 등등 거의 서버에 관련된 모든 걸 몰랐다. 배웠던 것들 중에서 그나마 해본 게 자바였는데 이마저도 학교에서 깊게 배운 게 아니라 한참 전에 따로 자바 문법 기초 인강을 수강하며 코드를 따라쳐봤던 게 다였다. 교육이 끝난 지금, 서버 개발 과정의 흐름에 대한 감이 생겼으며 실제로 마지막에 진행했던 프로젝트에서 아이디어스 앱을 클론 코딩하여 클라이언트 분과 결과물을 만들어냈다. 이 결과물을 통해 우수 수료자로도 뽑힐 수 있었다.

 

 이 과정들을 통해 서버 관련 지식들(환경 구축, ERD 설계 부터 API 설계/구현, 외부 API 사용, 스프링부트 사용 등)은 물론이거니와 클라이언트와 소통하는 방법, 매주 진행했던 수업에서는 어떻게 다른 개발자분들한테 내 작업을 정리하여 설명하면 좋을지 고민해 보는 시간 등을 가질 수 있었다. 또한, 학교에서 배웠던 과목들 중에 실무와 크게 관련이 없어보였던 과목들도 결국엔 코딩을 하기위한 기초 체력이 된다는 걸  느꼈다.

 

8주 동안 좋기만 했나?

 

컴공에서 공부를 하면서 한 번도 과제를 못 냈던 적이 없었다. 그래서 솔직히 라이징 캠프를 시작할 땐 '무조건 우수 수료, 힘들어봤자 얼마나 힘들겠어'라고 생각했었는데 이게 웬걸 수료라도 되길 바랐던 순간들이 많았다.

 

아무래도 서버에 관련된 지식들이나 자바로 코드를 짜본 경험이 거의 없는 상태에서 교육을 받아서 남들보다 더 많은 노력이 필요했던 것 같다. 진도가 너무 안 나갈땐 밥 먹고 자는 시간 빼고 책상에 앉아있었고 그마저도 시간이 부족할 땐 밥을 먹으면서 코딩하거나 밤을 새울 때도 있었다. 이런 막막함을 처음 경험하게 됐을 땐 자려고 누웠다가 계속 잠이 깨길래 결국엔 다시 책상에 앉았던 적도 있었다. ( 이후 오류 해결하고 아주 푹 잤다: ) )

 

계속하다 보니 놓지만 않고 계속 붙잡고 있으면 모든 오류는 해결된다는 것을 알게 됐고 점점 오류를 직면하거나 감을 못 잡고 헤맬 때도 담대함을 가질 수 있었다. 수업 외적으로 중요하게 얻어 가는 부분들 중에 하나라고 생각하며 혹시나 나와 비슷하게 서버 관련 지식이 거의 없는 분이 라이징 캠프나 비슷한 활동들을 고려하며 이 글을 읽고 계시다면, 이 글을 읽고 걱정하시기보단 그러니까 더 부딪혀보시라고 말씀드리고 싶다! 아마 나보다 더 잘 해내실 거라고 생각한다.

 

 

내가 느낀 라이징캠프 메리트 요약

 

- 기간이 짧다 ( 대학에 재학 중인 학생들도 참여할 수 있다. )

- 단순 주입식 교육이 아니다

- 기초부터 프로젝트까지 다 경험할 수 있다

- 클라이언트와 협업을 해볼 수 있다

- 언제든 슬랙을 통해 질문을 할 수 있다 

- 서버를 거의 몰라도 참가할 수 있다

- 수료 후 다양한 혜택들이 있다( 메이커스 동아리 서류 통과, 멘토링 활동, 취업 도움, 특강 참가, 외주 등 )

- 단기간에 많은 걸 배울 수 있다

 

 

내가 느낀 라이징 캠프 디메리트 요약

 

- 기간이 짧은게 장점이자 단점이다( 당연한 말이지만 노베이스면 그만큼 시간투자를 많이 해야한다)

- 실제로 앱 런칭까지 해본 경험자라면 얻어가는 양이 다를 것 같다

21/02/28

 

3-1 학기에 알고리즘 과목을 수강하며 본격적으로 배우기 전에 프로그래밍 대회가 어떤 식으로 진행되는지 맛보면 공부할 때 방향 잡기가 수월할 것 같아서 SUAPC 2021 Winter에 참가했다.

ICPC 대회처럼 3인1팀으로 진행되는 대회라 동기 2명을 섭외해서 참가했다.

(대회를 위해 자취방을 제공해준 동기에게 무한한 감사를ㅎㅎ)

c++로 대회에 참가하려고 하는데 2-1에 객체지향 프로그래밍을 배운 이후로 c++을 안쓴지 반 년이 넘어서

대회 일주일 전쯤부터 c++을 복기하고 알고리즘 내용을 간단하게라도 공부해서 정리했다.

그리고 종만북에서 대회 정보에 관련된 부분을 보며 어떤 식으로 대회에 접근해야되는지 공부했다.

입상은 하지못했지만 아직 시작하는 단계이기 때문에 앞으로 이 경험을 바탕으로 더 성장해 나가고 싶다.

아래는 간단하게 알고리즘들을 정리한 내용이다.

 

선택정렬 n^2

가장 작은 것을 선택해서 제일 앞으로 보내는 알고리즘

버블정렬 n^2

바로 가까이에 있는 두 숫자끼리 비교를 해서 더 작은 숫자를 앞으로 보내줌

삽입정렬 n^2

각 숫자를 필요할 때만 적잘한 위치에 삽입하는 방식

데이터가 이미 정렬됐을 경우 최적

퀵정렬 n*logn n^2

분할 정복 알고리즘

하나의 큰 문제를 두 개의 작은 문제로 분할 하는 방식

특정한 값을 기준으로 큰 숫자와 작은 숫자를 서로 교환한 뒤 배열을 반으로 가름

병합정렬 n*logn

분할 정복 알고리즘

일단 정확히 반으로 나누고 나중에 합치는 순간에 정렬을 수행

c++ STL sort함수

#include <algorithm

sort(시작점 주소, 마지막 주소+1);

기본적으로 오름차순 정렬

bool 함수를 추가하여 sort 마지막에 인자로 넣어주면 오름차순이 아닌 다른 순으로도

정렬 가능함

대회용으로는 pair함수와 같이 사용하는 것이 좋음

힙정렬

힙트리 구조를 이용하는 정렬 방식

이진트리

모든 노드의 자식 노드가 2개 이하인 트리 구조

완전이진트리

데이터가 루트노드부터 시작해서 자식 노드가 왼쪽 자식 노드, 오른쪽 자식 노드로 차근차 근 들어가는 구조

최솟값이나 최댓값을 빨리 찾아내기 위해 완전 이진 트리 기반

최대힙

부모 노드가 자식 노드보다 큰 힙

힙 생성 알고리즘

특정한 노드의 두 자식 중에서 더 큰 자식과 자신의 위치를 바꾸는 알고리즘

계수정렬

크기를 기준으로 개수를 세는 알고리즘

스택

후입 선출

택배 상하차

선입선출

은행 창구

너비우선탐색

큐 사용

탐색을 할 때 너비를 우선으로 하여 탐색을 수행

최단 길이를 보장할 때 많이 사용

깊이우선탐색

스택사용

스택의 최상단 노드를 확인한 후 방문하지 않은 인접 노드가 있으면

그 노드를 스택에 넣고 방문처리함

방문하지 않은 인접 노드가 없으면 최상단 노드를 뺌

유니온 파인드(합집합 찾기)/서로소 집합

여러 개의 노드가 존재할 때 두 개의 노드를 선택해서

현재 이 노드가 같은 그래프에 속하는지 판별

부모를 합칠 때는 일반적으로 더 작은 값 쪽으로 합침

재귀함수를 사용해서 타고타고 올라가서 같은 그래프인지 확인

크루스칼 알고리즘

가장 적은 비용으로 모든 노드를 연결

1. 비용을 기준으로 오름차순 정렬

2. 정렬된 순서에 맞게 그래프에 포함

3. 포함시키기 전에 사이클 테이블 확인

4. 사이클을 형성하는 경우 간선에 포함안함

전위 순회

자기 자신, 왼쪽 자식, 오른쪽 자식

중위 순회

왼쪽 자신, 자기 자신, 오른쪽 자식

후위 순회

왼쪽 자신, 오른쪽 자신, 자기 자신

다이나믹 프로그래밍

하나의 문제는 단 한 번만 풀도록 하는 알고리즘

메모이제이션을 활용해 이미 계산한 결과는 배열에

저장한 후 재사용

에라토스테네스의 체

가장 대표적인 소수 판별 알고리즘

소수를 대량으로 빠르고 정확하게 구하는 방법

다익스트라 알고리즘

다이나믹 프로그램 활용 최단경로 탐색 알고리즘

특정한 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를 알려줌

하나의 최단 거리를 구할 때 그 이전까지 구했던 최단 거리 정보를 재사용

현재까지 알고 있던 최단 경로를 계속해서 갱신

이차원 배열 형태로 처리해야 함

플로이드 와샬 알고리즘

다이나믹 프로그래밍 활용 거쳐가는 정점을 기준으로 최단거리를 구함

위상 정렬

순서가 정해져있는 작업을 차례로 수행해야 할 때

그 순서를 결정해 주기 위해 사용하는 알고리즘

DAG(사이클이 발생하지 않는 경우)에만 적용 가능

SCC 알고리즘, 강한 결합 요소

그래프 안에서 강하게 결합된 정점 집합

같은 scc에 속하는 두 정점은 서로 도달이 가능함

사이클이 발생하는 경우 무조건 scc에 해당

타잔 알고리즘

모든 정점에 대해 dfs를 수행하여 scc를 찾는 알고리즘

네트워크 플로우

특정한 지점에서 다른 지점으로 데이터가 얼마나 많이 흐르고 있는지 측정 알고리즘

최대 유량 문제

각 간선에 정해진 용량이 있을 때 최대로 보낼 수 있는 유랑의 크기를 구하는 문제

bfs이용이 일반적

==에드몬드 카프 알고리즘

순서가 상관없으므로 음의 유량도 계산 가능함

이분 매칭

a집단이 b집단을 선택하는 방법에 대한 알고리즘

두 개의 집단이 있음

그래프 형태로 표현

kmp 알고리즘

대표적인 문자열 매칭 알고리즘

모든 경우를 다 비교하지 않아도 부분 문자열을 찾을 수 있음

접두사와 접미사가 일치하는 최대길이를 활용해 모든 경우를 다 비교하지

않고도 부분 문자열을 찾을 수 있는 알고리즘

문자열 매칭 알고리즘

특정한 글이 있을 때 그 글 안에서 하나의 문자열을 찾는 알고리즘

단순 비교 문자열 매칭 알고리즘

하나씩 일일이 확인하는 가장 간단한 형태의 알고리즘

문자열의 위치를 세트로 하나씩 밀어가며 맞을 때까지 찾는 알고리즘

라빈 카프 알고리즘

항상 빠르지는 않지만 일반적인 경우 빠르게 작동하는 간단한 구조의 문자열 매칭 알고리즘

문자열의 해시 값을 비교하여 그 일치 여부를 검사하는 알고리즘

해시 값이 일치할 경우 하나씩 비교해보며 실제로 맞는지 확인

긴 글의 해시 값을 빨리 계산하기 위해서 제일 앞에 문자의 수를 빼고

들어올 문자의 해시값을 더해도 됨

해시

긴 데이터를 그것을 상징하는 짧은 데이터로 바꾸어 주는 기법

완전 탐색

가능한 경우를 일일이 다 탐색

탐욕적 기법(그리드 알고리즘)

항상 눈앞의 가장 큰 이익만을 좇는 방법

 

 

 

'활동 > 대회' 카테고리의 다른 글

2021 홍익대학교 프로그래밍 경진대회 회고  (0) 2021.11.10

+ Recent posts