To do list

  • 운영체제 과외
  • 프로그래머스 월간 챌린지 문제 2번 정리
  • 코어자바스크립트 - 클로저 활용 코드
  • 면접질문 개발을 할 때 내가 성장했다고 느꼈던 것은? 대하여
  • AWS Redshift, DynamoDB, Snowflake
  • 알고리즘

개발자로 내가 성장했다고 생각한 순간

나의 대답은 ‘구현하고 싶었던 것을 구현했을 때’ 라고 했지만 너무 추상적인 대답이다.

지금 다시 생각해보면 ‘문제를 해결하는 과정’ 라고 생각한다. 문제상황을 마주하게 되면 어디서부터 잘못됐는지 일이 발생한 순간부터 일을 처음 시작했을 때 까지 역순으로 되짚어본다. 그런 생각을 하다보면 실패했던 일을 다시 하지 않겠다는 자아성찰을 하게되고 그에 맞는 공부를 한다. 실패했다는 것에 집중하는 것은 아무 소용이 없다. 이미 지나간 일이다. 내가 문제를 해결하기 위해 얼마나 노력을했고 그 과정에 초점을 맞춰야한다. 그리고 다음번에는 효율적으로 문제를 해결하는 방법에 대해 고민한다.

두번째로는 ‘두려움을 극복했을 때’이다. 최근에 나는 알고리즘을 공부하기 시작했는데 내가 알고리즘을 잘 할 수 없을거라는 두려움에 사로잡혀 계속해서 미뤄왔다. 하지만 반드시 취업에 필요한 역량이었고 나는 할 수 밖에 없었다. ‘내가 과연 잘 할 수 있을까?‘라는 생각에 사로잡혔지만 나는 앞으로 계속해서 잘 모르는 문제와 마주치게 될 것이고 당장 프로그램을 돌려도 알 수 없는 에러들이 발생한다. 알고리즘이라는 문제 하나를 외면해버리면 앞으로 발생하는 문제들과 시련에 대해서도 모른척 하는 사람이 될 것 같았다. 그래서 나는 한발 한발 나아가기로 결심했다. 알고리즘을 잘 하는 선배에게 부탁하여 알고리즘 스터디도 하였고, 후배와 하는 스터디에서도 알고리즘 몇 문제 풀기 하는 약속도 하였다. 이제는 둘다 취업 때문에 바쁘고 이제는 문제를 푸는 것에 대한 거부감이 없어졌다. 최근에는 알고리즘 인증방에서 일주일동안 제일 많이 푸는 사람이 되려고 노력중이다.

앞으로 실제 면접에서는 알고리즘 문제를 풀면서 문제를 보고 for문을 써야할지 if문을 써야할지 막막했지만 이제는 문제를 읽고 자료구조와 JS의 filter 함수를 사용해야할지 프로그래밍적 사고를 할 수 있게 되었다.

또한 최근에 CICD를 진행하게 되면서 배포를 어떻게 해야할지 고민이 되었다. 원래는 S3에 zip 파일로 전달이 됐었는데 zip파일로 전달하는 것이 마음에 들지않아 도커 허브를 통해 배포를 하는 방식을 선택했다. 이런식으로 프로젝트를 완성도를 높이기 위해 노력하는 과정이 나를 성장하게 만들었다.


AWS Redshift, DynamoDB, Snowflake

  • Redshift : AWS의 데이터 분석 제품
  • DynamoDB : AWS의 Nosql DB
  • Snowflake


알고리즘 3진법 뒤집기

원래는 5줄로 코드를 짰었는데 1줄로 줄였다. 속도가 100배나 줄었다.