20210315-TIL

나영원·2021년 3월 15일
0

T.I.L.

목록 보기
121/145
post-thumbnail

오늘 할일

  • 채용공고 읽기
  • 개인프로젝트 준비
  • 알고리즘 문제풀기
  • 기술면접 준비

오늘 한 것 & 배운 내용

채용공고 읽기

  • 채용 공고에 채용과정을 들여다보면 내가 정말 저 많은 과정들을 통과할 수 있을까 의구심이 들고 더 준비해서 지원해야겠다는 마음 밖에 들지 않는데 또 준비만 하는건 크게 의미가 없고 저중에 몇단계라도 거쳐봐야 준비가 완성될 수 있지 않을까라는 다양한 생각이 든다
    • 일단 채용단계를 최대한 많이 거친다는 생각으로 마음에 드는 기업이 있으면 이력서를 넣어보는 쪽으로해서 서류부터라도 경험을 쌓아가는 쪽으로 해야될 것같다
  • 어느정도 관심있는 기업이 생겨도 잡플래닛 리뷰를 보면 가고싶은 마음이사라지는데.... 어떻게 하면 다양한 채널에서 기업정보를 얻을 수 있을지 찾아볼 필요를 느낀다
  • 오늘 많은 기업들의 공채들이 발표됬는데 다 지원해봐야하나 하고 마음이 급해지면서도 해야되는 것들이 쌓여있어서 어떤 것 부터해야되나 약간 혼란스러웠다
    • 현재 진행하고 있는 것들에 대한 우선순위들이 어느정도 조정이 될 필요가 있어보인다

기술면접 준비

  • 모의 기술면접에서도 나온 질문이지만 Java버전별 특징도 정리해두면 좋을 것 같다

    • 잠깐 살펴봤는데 java8에서 람다식과 stream이 등작한것과 그 상위 버전에서는 immutable Colletion과 GC변경점들을 정리해두면 될 것같다
    • GC는 버전별 변경점 + 알고리즘에 대해서 한번 따로 정리할 필요가 있을 것 같다
  • 이론 공부가 제일 하기가 껄끄러워서 오늘은 처음에 진행하였는데 집중력도 좋고 사용하고 있는 내용들도 다시한번 정리하게 되니까 도움이 되는 것 같다

    • 기업에 지원해 나가면서 면접을 실제로 준비한다면 훨씬 더 집중력도 생기고 어떤 질문들을 준비해야될지 범위도 좁혀져서 좋을 것 같다
  • 객체지향에 대해서 정리하며 찾은 글 중 객체지향 Object-Oriented Programming 핵심 개념의 이해 은 객체지향의 탄생 배경부터 각각 특징이 가지는 유기적인 설명을 해주는 글이라 도움이 많이되었다

    • 다른 부분에도 적용되겠지만 단순히 각각의 특징이나 원칙들을 암기식으로 외우는 것보다 왜이런 것들을 만들었고 그렇기 때문에 이런 특징들을 가질 수 밖에 없구나라고 이해하면 훨씬더 좋은 공부가 될 것 같다

    • 추상화란 객체들간의 공통점을 찾아서 추상메서드나 인터페이스를 만드는 것을 뜻하는 줄 알았는데 대상에서 객체를 만들어내는 과정 자체가 추상화라는 사실을 새롭게 배웠다

      • 구체적인 대상에서 프로그래밍의 관심사에 집중하여 중요한 특징들을 뽑아낸 결과가 객체가 되는 것으로 정리해보았다

알고리즘 문제 풀이

  • 분수찾기

  • 내풀이 - 1시간 20분 걸림

    • 처음에 대각선 방향으로 순선대로 증감하는 분수인줄 알고 풀었는데 답을 넣으니 틀려서 다시 천천히 읽어보니 지그재그로 푸는 문제라 더 시간이 오래걸렸다
    • 다른 풀이 방법은 찾질 못해서 눈에보이는데로 증감을 시켜주는 방식으로 풀다보니 하드코딩이 된것 같아 아쉽다
      • 이런 수학적 규칙을 푸는 것에 아직 자신이 없고 오래걸리는데 집중적으로 노력을 해야되는 부분 같다
    • 어제 문제풀이를 보다가 주석을 달아가면서 풀면 나도 정리되고 상대방도 이해하기가 좋은것 같아서 주석을 달자고 생각했는데 잊어버리고 안붙였다
      • 앞으로 습관 될 수 있도록 계속 의식적으로 반복을 해야될 것 같다
  • 다른사람 풀이

    • 대각선의 누적 합을 구한뒤 대각선이 홀수인지 짝수인지를 구해서 해당 값을 찾아가는 방식으로 풀었다
      • 나는 각각을 for문으로 돌리고 거기다 반복문까지 겹쳐있으니 성능이 떨어질수밖에 없지만 위와 같이 규칙을 발견해서 간단하게 풀어내니 성능도 훨씬 잘나왔다
    • 위와 같이 규칙을 찾아서 푸는 것을 연습을 해야될 것 같다
  • 피보나치 수 5

    • 내풀이 - 16분 걸림
      • 피보나치 수 옆에 숫자가 붙어있어서 다른 문제인가하고 풀어봤는데 기존에 풀었던것과 크게 다르지 않아 쉽게 풀수 있었다
    • 다른사람풀이
      • n이 0과 1일대 어떻게 해결해나갈가 고민했었는데 if (num <= 1) return num; 이런식으로 그냥 num을 return해버리면 쉽게 풀수있는 문제였다
      • for문이 아니라 재귀함수로 만들어 fibonacci(num-2) + fibonacci(num - 1); 이런식으로 풀수도 있었던것 같다
  • 오픈톡방에 알고리즘 공부법에 대한 영상들이 있던데 혼자 문제푸는 것도 좋지만 어느정도 공부방법에 대해 읽힐 필요가 있어보인다

    • 내일은 조금 시간투자해서 몇개라도 빠르게 찾아봐야될 것 같다

개인프로젝트 준비

  • 어제 만든 API들을 활용하기 위하여 mustach를 템플릿엔진으로 사용해서 간단한 화면을 구성하는 예제가 이어졌다
    • 화면 구성에 대해서 이전에는 나는 백엔드 할거니까 하고 쉽게 지나갔지만 웹 개발자로서 기본적인건 모두 알아둬야 한다는 마음도 생기고 자꾸보다 보니 익숙해지는 면도 있어서 더 관심있게 볼 필요성을 느꼈다
    • mustache를 사용하며 {{#posts}} 라는 간단한 문법으로 list를 순회할 수 있는점이 인상적이었다
  • 글삭제하는 Service에서 바로 delete or dleteById하지 않고 findbyId해서 해당 데이터가 있는지 확인한 후 해당 객체를 삭제하는 것 기억해두면 좋을 것 같다
  • Oauth를 이용한 소셜로그인 예제를 진행하는데 Security가 어떻게 동작하는지 전체적인 그림을 못그리고 있으니 Oauth 빼고는 다 프로젝트 때 해본 것인데도 어떻게 동작하는지 명확히 파악하기가 어렵다
    • 그래도 일단 진행하면서 이런방식으로 진행되는 구나 이해해놓으면 다른조에서 Oauth와 Jwt를 함께 이용한 예제를 이해하는데 도움이 되지 않을까 기대하고 있다
    • 예제를 진행하고 디버깅을 하고 이런점들은 확실히 많이 늘었다고 생각이 들지만 Security같은 중요 개념들에 대해서는 확실히 잘모르고 사용한게 티가나서 이런부분들을 중점적으로 보충하면 실력이 다음 단계로 넘어가지 않을까 생각이 든다
    • Oauth 로그인테스트 해서 작동이 잘되는 것 까지 확인하고 마무리 하였다
      • 내일 Oauth 리팩토링 + 시큐리티 테스트 하는 것까지 하면 목표 했던 부분까지는 예제가 끝나는데 뒤에 예제들도 좋은게 많아서 일단 계속 진행해야될 것 같다
        • Oauth가 끝나는 부분까지하고 다른팀에서 했던 Oauth먼저 공부하고 나머지 예제들을 진행하면 좋을 것 같다

내일 할일

  • 채용공고 읽기
  • 개인프로젝트 준비
  • 알고리즘 문제풀기
    • 알고리즘 공부법 영상보기
  • 기술면접 준비
profile
배우는 개발 일기

0개의 댓글