갑작스럽지만 NH투자증권의 실무면접에 합격하여 최종면접을 진행하게 되었기에 계획을 변경할 필요성이 생겼다.

 

어제 21/12/28(화) TIL을 올리지 못한 것은 크게 반성해야 할 일이지만 앞으로 1주일간 진행 될 계획을 정리하기 위해 필요한 시간이었다 생각한다.

 

TIL을 제외한 모든 프로젝트와 강의를 동결하고 면접준비를 위한 조사와 공부를 진행하도록 할 것이다.

 

블로그를 통한 자기발전은 나 자신과의 약속이었기에 만약 특별한 사유로 일시정지하게 된다면 그에 대해서도 블로그에 명시해야 할 것이라는 생각에 글을 적게 되었다.

 

-> 이 글은 면접 진행 후 잡설 게시판으로 이동하게 될 것

'계획 및 기타 > 계획' 카테고리의 다른 글

주간계획초안 작성  (0) 2021.12.26

기획서를 받았을 때에는 금방 구현하고 UI개선으로 넘어갈 수 있을 것이라 생각했지만 예상외로 발목을 잡는 건수가 하나 있었으니

바로 이 부분이었다.

음악 대기열은 현재 한개의 LinkedBlockingQueue로 구현되어있다.(우선예약을 위해서는 LinkedBlockingDeque로 바꾸겠지만)
하지만 반복 모드 OFF 상태를 구현하기 위해서는 시작곡에 대한 정보를 가지고 있어야 할 필요성이 있다.
이를 위해 구상과정에서 생겨난 의식의 흐름을 공유하고자 글을 작성한다.

반복모드 ON일 때 작동 원리

곡이 완료될 경우 곡의 진행사항을 초기화하기 위해 track을 clone하여 대기열 Queue의 맨 뒤에 다시 입력되는 방식이다.

반복모드 OFF일 때 구현되어야 할 것

  1. 재생목록을 재생하면서 재생되어 지나친 곡들의 정보를 저장해둬야한다.
  2. 재생목록을 전부 재생하였을 경우 재생이 종료되어야 한다.
  3. 재생목록을 전부 재생한 뒤 대기열에는 지금까지 재생된 곡들이 있어야 한다.

신곡 추가 이슈

첫 곡에 해당하는 track의 정보를 저장 해 둔 채로 Queue의 맨 뒤에 다시 입력하는 방식으로 구현할 경우 새로운 곡 or 리스트를 삽입할 때 이슈가 발생할 수 있다.
기존의 코드를 유지할 경우 다음 그림과 같이 추가되는 곡이 앞으로 재생할 목록에 들어가지 않게 된다.

이를 해결하기 위해 완료된 곡을 저장하기위한 nextQueue에 저장한 뒤 곡의 재생이 모두 완료될 경우 정지 후 해당 Queue를 가져오는 형식으로 구현하고자 하였다.

구현

TrackScheduler

  • 상기한 nextQueue를 추가하였다.
  • repeatMode 필드를 추가하여 반복모드의 ON, OFF를 표시하였다.
  • 반복모드를 ON, OFF하는 매서드를 만들어 nextQueue의 곡들을 다시 queue에 입력해주도록 하였다
  • 곡 재생이 완료되었을 때 반복모드 여부에 따라 queue, nextQueue중에 선택하여 입력되도록 수정하였다.

재생목록을 전부 재생하였을 경우의 처리

재생목록을 전부 재생하였을 경우 재생이 종료되고 nextQueue의 내용을 queue에 입력시켜야 한다.
이 부분에서 문제점이 생겨난다.

해당 기능을 구현하기 위해서는 재생목록이 전부 재생된 뒤 AudioPlayer가 어떤 작업을 진행하는지 이해해야하며, 만약 위 기능을 사용하기 위한 매서드가 존재하지 않거나 불가능하게 구현되어있다면 해당 class를 생성 해 주어야 할 것이라 판단된다.

이 부분에 대해서는 한개의 글이 완성될 것이라 생각되어 별도의 글로 작성하도록 하겠다.

오늘 한 일

강의 - 자바 ORM 표준 JPA 프로그래밍

  • 엔티티 매핑 - 기본키 매핑
  • 엔티티 매핑 - 실전예제 1

    프로젝트 - Nice Club

  • 주제선정, 기획단계 블로그 글쓰기
  • ver.0.0.0. 기능 분석 및 문서화
  • NextCommand 누락사항 추가
  • QueueCommand에 현재 실행중인 곡 정보 추가
  • QueueCommand의 순서를 역순으로 조정하여 디스코드 채널에서의 가독성 증가
  • 반복모드 로직 구상 (아직 결론 못냄)

    취업관련

  • 이베이 채용 신청 (1지망 - 백엔드 / 2지망 - 플랫폼)

동기

내가 사용할 디스코드 봇을 위해

친구들과 사용하는 디스코드에서는 현재 노래하는 하리보를 사용하고 있다.
하지만 이 봇의 경우 우선 예약, 한 곡 반복 기능이 없다는 단점이 존재한다.
또한 노래하는 하리보를 사용하기 전에 사용한 hydra의 UI가 매우 편리하였지만, 유튜브에서 hydra를 막아버렸기에 사용 편의성이 매우 떨어졌다.
봇을 구현해서, 기능을 추가하고, UI를 예쁘게 만들어 '내가 편리하게 쓰기 위해' 프로젝트를 구상하였다.

나의 실력향상을 위해

면접에 가면 자주까지는 아니지만, 종종 듣는 말이 있다.
그러면 java는 Spring에서만 사용해 보신 건가요?
이 말을 들을 때 마다 '나는 Spring의 편리함에 젖어 java에 대한 이해도를 높이고 있지 못한 것이 아닐까?'라는 생각을 하게 된다.
실질적으로 SpringBoot로 웹 백엔드를 개발할 때를 제외한다면 나는 알고리즘 문제 풀이 외의 방면에서 java를 사용해 본 적이 없다.
그렇기에 java를 사용하지만, 웹도 문제 풀이도 아닌 사용처를 찾던 도중 안드로이드 네이티브 앱 제작과 봇 제작이라는 후보를 찾게 되었고 비교적 UI에 대한 고민이 적은 디스코드 봇 프로젝트를 선택하게 되었다.


기획

본 프로젝트는 기획 담당자 "서강대학교 게임교육원 게임개발-기획 이원동"을 섭외하여 진행하였다.

 

브레인스토밍은 같이 진행하였으나 세부 기획은 상기 기획 담당자가 진행하였으며 버전1의 기획은 다음과 같다.


모델

JDA 4.0버전을 사용하는 모델이다
MenuDocs라는 유투버의 JDA 4 Bot Tutorial영상을 따라하며 봇의 버전0를 구성하되 Ep.5 ~ Ep 17 파트는 목표로하는 봇에 필요로하지 않는 기능이라 판단하여 제외하였다.
위 유튜브를 통해 작성된 버전0의 경우 여기에서 확인할 수 있다.

2021년 12월 26일 현재 나는 취준생이다.

2021년 2월 학부를 졸업해서 개발자로 진로를 정한 뒤 1월부터 시작한 삼성 청년 소프트웨어 아카데미(SSAFY)에서 공부하였다. 하지만 지난 1년간을 돌아보면 결코 만족할 수 없는 나 자신을 발견할 수 있었다.

취직을 목표로 한다면 준비해 둬야 할 것들. 자기소개서, 이력서, CS지식, 깃허브, 개발블로그 어느 것 하나 충분하다 자신할 수 없다. ‘공부할게 너무 많았다’, ‘프로젝트에 쫒겨 시간이 없었다’ 핑계는 찾으면 많다. 하지만 핑계를 찾고, 과거에 매몰될 여유는 남아있지 않다. 지금이라도 시작해야 옳지 않겠는가.

기록은 기억을 이긴다. 이 말은 개발블로그를 추천하는 대부분의 사람들이 입에 담는 말이다. 코딩을 하다 보면 같은 문제를 여러 번 마주치게 되고, 같은 시행착오를 반복하기에 반드시 정리해 기록해 두어야 한다. 이건 비단 지식에 대한 것 만이 아니다. 열정 또한 기록하지 않는다면 이틀도 채 가지 않아 사라지고, 열정만으로 세워놓은 계획에 파묻히고, 버티고 버티다 번아웃이 온다.

이런 과정을 두세번 반복한 뒤 지쳐있을 때 마음속 깊이 꽂힌 하나의 말이 있었다.

‘열정이 큰 사람보다 시스템을 잘 만든 사람이 목표를 달성한다.’

사실 이 한마디가 이 블로그를 만들고, 루틴에 따라 작업하겠다는 결심을 하게 된 계기이다.

계획

못생겼지만 일단 시작하자

1. 인터넷 강의

  • 말 그대로 강의를 듣는다. 현재 수강중인 강의는 스프링 부트 JPA 강의 (김영한)
  • 이후 듣고 싶은 강의로는 GraphQL / MSA / Cubernetes 인데 순서대로 들어볼 것이라 예상된다.
  • 실습한 내용을 커밋할 수 있다.

2. 자격증 공부

  • 현재 SQLD와 정보처리기사를 준비하고 있다.
  • 정처기는 지난 3차 필기합 하였으니 정처기를 우선적으로 공부하되 SQLD 시험 전후로는 SQLD에 집중할 것이다.

3. 도서 공부

  • 책을 읽는 습관을 유지하기 위한 시간. 무조건 '종이책'을 보도록 하자
  • 현재 읽을 예정인 도서는 '이펙티브 자바', 다음으로는 '데이터 중심 애플리케이션 설계'
  • 현재 목록에는 개발 관련 도서뿐이지만 비개발 도서도 읽을 예정이다

4. 프로젝트

  • 프로젝트를 설계하고, 코드를 작성하고, 배포해보자
  • 상놈식 공부법이 실력을 만든다. (커밋할 거리를 만드는 것이 본심)
  • 작업 결과물이 과하게 밀릴 경우 블로그 글쓰기 또한 병행한다

5. 블로그 글쓰기

  • 기록을 위해 정리하는 과정이야말로 가장 큰 공부다.
  • 프로젝트를 진행하다 생긴 이슈들, 공부한 내용들을 큰 주제로 묶어서 완성된 글로 구성한다.
  • 토요일은 주간 자기평가

6. 취준

  • 자소서 쓰고, 이력서와 포폴 퀄리티 향상시키고, 공고찾아 지원하기
  • 매번 전날 밤새서 쓰고 다음날 계획 조지는거 방지용

7. 비개발

  • 기업 경력직 공고를 보고 방향성 체크 (신규 1개 필수)
  • 기업 기술블로그 글 읽기 (읽어지는데까지만이라도, 20분 이상 필수)
  • 취업, 채용, 인사관련 자료 시청 (5분이상 유투브 1개)

8. 데일리 스크럼

  • TIL + 커밋안한거 커밋하기

9. 개인정비

  • 조금만...놀자...

10. 빈칸

  • 예비일이 따로 없으면 급한일이 생기면 가장 하기 싫은 일을 빼고 그 시간에 하게 된다.
  • 특이사항 없을경우 휴식

매주 다음 계획표의 내용을 채우고, 토or일요일에 업로드할 예정

주간계획표.docx
21.2 kB

열심히 하자!

  • docs 파일의 경우 한국현님의 돌파구노트를 참고하였습니다.

'계획 및 기타 > 계획' 카테고리의 다른 글

21/12/29~22/01/03 임시계획  (0) 2021.12.29

+ Recent posts