코드 훔쳐보는 변태 코더
춤 좋아하는 백엔드 개발자(였으면 좋겠다)
개발자 (6)
22-12-30 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 설계
    • 외부 API를 활용한 커뮤니티 서비스를 클론코딩 하기로 맘을 먹었다.

  • 알고리즘 문제풀이
    • 동적 계획법, 해시테이블, 깊이우선탐색 (?) 프로그래머스 / 백준 문제풀이
 

프로그래머스 마법의 엘리베이터 (자바) 풀이

문제 설명 마법의 세계에 사는 민수는 아주 높은 탑에 살고 있습니다. 탑이 너무 높아서 걸어 다니기 힘든 민수는 마법의 엘리베이터를 만들었습니다. 마법의 엘리베이터의 버튼은 특별합니다.

codinghentai.tistory.com

 

 

프로그래머스 귤 고르기 (자바) 풀이

문제 설명 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한

codinghentai.tistory.com

오늘의 배운 점 🤔

  • 토이프로젝트를 설계했습니다.
    • 추억을 살려서 어렸을때 많이 플레이 했었던 던전앤 파이터의 API를 활용한 프로젝트를 진행해보기로 했습니다.
    • ERD를 설계하는데 왜이렇게 테이블이 적지,, 라고 생각했던 순간 외부 API를 쓰기때문에라는 생각이 스쳐지나갔습니다....
    • 이미 만들어져있는걸 얼마나 잘 활용하느냐도 능력이라고 생각하기때문에.. 어떻게 잘 찜쪄먹을지를 많이 고민해봐야겠습니다.
    • 요즘 헤이해지고있다고 생각했었는데 새로운 시작이라고 느껴집니다.
  • 알고리즘 문제풀이
    • 동적계획법 문제를 풀이했습니다.
      • 동적계획법은 풀어도 풀어도 어떠한 조건을 설정해서 풀어나가야할지가 가장 큰 고민거리인것 같습니다..
      • 이번에도 다른 유형의 문제를 맞닥트렸을때 매번 어떻게 조건을 설정할지를 못정해서 틀리기 일수였습니다.
      • 문제를 풀때 마음을 급하게 먹지 말아야하는데.. 그게 잘안되는것 같습니다 ㅜ.ㅠ
    • 프로그래머스 2레벨 문제를 풀이했습니다.
      • 처음으로 2레벨 문제들을 풀이를 안보고 풀어보았습니다..
      • 확실히 실력이 늘고있긴 한가봅니다.
      • 마찬가지로 여러 유형중에 학습하지 못했던 알고리즘문제들은 도전조차 못해보는게 아까웠습니다.
      • 이제 새로 프로젝트도 시작했으니 진짜 하루에 2문제만 풀어보아야겠습니다.
  Comments,     Trackbacks
22-12-29 TIL

오늘 진행한 것들 🤔

  • 알고리즘 풀데이
 

백준 11726번 2xn 타일링 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 128307 48836 36026 35.916% 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2

codinghentai.tistory.com

 

 

백준 9095번 1,2,3 더하기 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 (추가 시간 없음) 512 MB 91254 59805 40667 63.913% 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이

codinghentai.tistory.com

 

 

백준 2156번 포도주 시식 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 111806 38034 27406 32.620% 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬

codinghentai.tistory.com

 

 

백준 2579번 계단오르기 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 128 MB 140615 47946 34657 33.776% 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각

codinghentai.tistory.com

 

 

백준 11727번 2xn 타일링 2 (자바) 풀이

문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)

codinghentai.tistory.com

등 몇문제

 

오늘의 배운 점 🤔

  • 오늘은 알게모르게 알고리즘 문제가 풀고싶어서 풀데이로 진행해보았습니다.
  • 동적계획법과 분할정복을 활용해 문제풀이를 진행했습니다.
  • 오늘의 수확은 그래도 어제보다 동적계획법을 활용하는법을 익힌것 같다는 것입니다.
    • 동적계획법 문제는 대부분 일정한 패턴으로 반복되는 문제가 많았습니다. 
    • 단순히 하루이틀전까지만 해도 문제를 계속 쳐다봐도 이해가 되지 않았는데 오늘은 풀이를 안보고 제출한 문제도 있어서 뿌듯했습니다.
    • 하지만 안풀린 문제들도 많았습니다. 제출까지 했으나 정리조차도 이해가 안가서 올리지 못한 문제들이 존재합니다.
    • 확실히 풀데이는 잘풀릴때는 괜찮지만 안풀리는 문제가 생기기 시작하면 그떄부터 멘탈이 흔들리는것 같습니다.
    • 내일부터는 절대 이렇게 하지 않고 두문제 이상 풀이하지 않으리라.. 다짐을 하게 됐습니다

 

목표를 지키지 않으니 세우지 않겠습니다.. 🫠

'TIL' 카테고리의 다른 글

23-01-04 TIL  (0) 2023.01.05
23-01-02 TIL  (0) 2023.01.02
22-12-28 TIL  (0) 2022.12.28
22-12-26 TIL  (0) 2022.12.26
22-12-22 TIL  (0) 2022.12.22
  Comments,     Trackbacks
22-12-28 TIL

오늘 진행한 것들 🤔

  • 컴퓨터 구조 정리
 

컴퓨터 시스템의 기본 구성과 정보의 표현과 저장

컴퓨터 시스템의 기본 구성 하드웨어 물리적인 실체가 있는 장비, 부품 시스템 소프트웨어 OS를 포함하는 부트로더, 장치드라이버, 쉘 같은 것들을 얘기함 응용 소프트웨어 애플리케이션 하드웨

codinghentai.tistory.com

 

 

컴퓨터 시스템을 구성하는 방법과 동작 원리

컴퓨터 시스템을 구성하는 방법과 동작 원리 시스템 버스 → 통신하기 위한 경로를 버스라고 통하는데, CPU와 메모리간의 통신, CPU와 IO간의 통신은 모두 시스템 버스를 이용하게 된다. 컨트롤 버

codinghentai.tistory.com

  • 토이프로젝트 리팩토링
  • 동적계획법 알고리즘 문제 풀이
 

백준 1003번 피보나치 함수 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 0.25 초 (추가 시간 없음) 128 MB 176402 51239 40178 31.870% 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { print

codinghentai.tistory.com

 

 

백준 1463번 1로 만들기 (자바) 풀이

문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산

codinghentai.tistory.com

오늘의 배운 점 🤔

  • 컴퓨터구조를 정리했습니다.
    • 하드웨어, 소프트웨어, 응용소프트웨어 이렇게 크게 3구조로 나누는것을 알게 되었습니다.
    • 하드웨어는 말그대로 부품, 소프트웨어는 하드웨어에 의존적인 운영체제 따위를 구동하기 위한 로우레벨 언어로 이루어진 프로그램, 응용 소프트웨어는 흔히 아는 프로그램 같은 것이라고 할 수 있는것 같습니다.
    • 단순히 하드웨어가 한부품 부품이 단독적으로 동작하는게 아닌 시스템 버스를 통해서 이런저런 데이터가 오가는것을 알게 되었습니다.
    • 살짝 MVC 패턴과 비슷하다고 생각했습니다. 단방향 통신을 하는 주소공간 버스와, 양방향통신을 하는 데이터, 컨트롤버스가 모델 뷰 컨트롤러 사이의 요청응답과 비슷하다고 느꼈습니다.
    • 단순히 키보드 키 하나를 눌렀을때에도 상태레지스터, 데이터 레지스터를 확인해서 입력이 된다고 하니, 어느정도 머릿속으로 구조가 그려지는 기분입니다.
    • 폰노이만 구조에 대해서 살짝 공부했습니다.
    • 폰노이만 구조와 하버드 구조의 차이점에 대해서도 살짝 공부하게 되었습니다.
    • 하지만 아직 한번 본것으로는 이해가 안되니 다시 공부해봐야겠습니다.
  • 동적 계획법 알고리즘을 활용하여 문제를 풀이했습니다.
    • 풀이를 하다보니 느낀점은 분할정복은 쪼갤 수 없는 부분을 브레이크 포인트로 정한다면, 동적 계획법은 브레이크 포인트를 정하는 대신에 값을 기억해둬 반복 호출을 멈추는..? 그런 정도로 이해가 되었습니다.
    • 관건은 결과값을 얻으려고 풀이를 하는것이 아닌 문제에서 요구하는 답을 구하기 위한 풀이로 사용된다는 점이었습니다.
    • 일반적으로 배열을 사용하는것 같습니다.
    • 다시 글로 정리하면서 생각해보니 이해가 됩니다. 동적 계획법 같은 경우에는 문제의 규칙성을 찾는것  또한 중요한것 같습니다.
  • 토이프로젝트 리팩토링을 하였습니다.
    • 기존에 내 댓글이 아닐때 수정이나 삭제버튼이 등장했던 부분에 대해서 단순 if문을 추가하여 비활성화를 시켰습니다.
    • 그리고 게시글과 댓글 삭제에 대한 고민이 생겼었습니다. 데이터를 백업하고 삭제를 하는것이 일반적일지, 단순히 비활성화를 하듯이 삭제 컬럼을 온오프 하는게 맞는것일지에 대한 고민을 해보았습니다.
    • 전자를 redis 로 구현했다가 레디스는 인메모리 데이터베이스라는것이 떠올라 죄다 삭제해버렸습니다.
      • 만료기한을 1년으로 잡고 레디스에 백업 후 삭제하는 로직을 구현했는데, 메모리에 1년동안 저장이라니.. 끔찍한 방법이었습니다.

 

내일 목표 🤔

  • 동적계획법 문제 2문제 이상 풀이
  • 가능하면 토이프로젝트 설계하기
  • 컴퓨터 구조 정리

 

'TIL' 카테고리의 다른 글

23-01-02 TIL  (0) 2023.01.02
22-12-29 TIL  (0) 2022.12.29
22-12-26 TIL  (0) 2022.12.26
22-12-22 TIL  (0) 2022.12.22
22-12-21 TIL  (0) 2022.12.21
  Comments,     Trackbacks
22-12-20 TIL

어제의 목표 🤔

  • 알고리즘 힙구조/재귀용법 정리하기 ⭕️
    • 기존 실버1수준 까지 풀 수 있던 자료구조 골드 하위 문제 도전해보기  ⭕️ (실버 1문제로 타협)
  • 이펙티브 자바 한 챕터 읽고 정리하기 / JPA 한 챕터 읽고 정리하기 (챕터 야바위) ❌(시간부족)
  • 게시판 프로젝트 리팩토링 마무리 / 테스트 코드 작성 하고 끝내기 ❌(시간부족)
    • 작성한 코드를 왜 그렇게 작성했는지에 대한 이유를 설명할 수 있어야 할 것 같다. 🤔

 

오늘 진행한 것들 🤔

  • 힙 자료구조에 대해서 정리
 

힙 자료구조에 대해서 알아보자 🤔

힙 힙이란 뭘까 ? 🤔 데이터에서 최대값과 최소값을 빠르게 찾기 위해 고안된 완전 이진트리이다. 브랜치가 최대 2개이다. (이진) 노드를 삽입할 때 최하단 왼쪽 노드부터 차례대로 삽입하는 트

codinghentai.tistory.com

 

  • 재귀용법에 대해서 정리
  • 힙 자료구조 알고리즘 1문제, 재귀 알고리즘 1문제 풀이
 

백준 19638번 센티와 마법의 뿅망치 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 1024 MB 1869 625 506 33.488% 문제 센티는 마법 도구들을 지니고 여행을 떠나는 것이 취미인 악당이다. 거인의 나라에 도착한 센티는 자신보다

codinghentai.tistory.com

 

 

백준 17478번 재귀함수가 뭔가요? (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 38589 15339 12735 38.831% 문제 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하

codinghentai.tistory.com

 

  • 데이터베이스 실시간 강의
  • 그룹스터디 인사이트 공유

오늘의 배운 점 🤔

  • 힙구조에 대해서 배웠습니다.
    • 이진 탐색 트리와 완전 이진 트리의 차이점에 대해서 알게 되었습니다.
    • 이진 탐색 트리는 말그대로 탐색을 위한 구조이고 완전 이진 트리는 최소/최댓값을 빠르게 찾기위한 구조라고 정리했습니다.
      • 완전 이진트리는 값을 무조건 왼쪽 끝 부터 삽입하고 최소/최대 정렬에 따라 부모 노드와 위치를 계속 바꿔가면서 삽입하고 (윗 노드의 값이 자식 노드의 값보다 크거나 같아야 한다 (최대힙일경우)) , 이진 탐색 트리는 부모 노드보다 값이 크면 오른쪽, 작으면 왼쪽 으로 삽입하는것을 알게 되었습니다.
  • 재귀용법에 대해서 배웠습니다.
    • 따로 정리라고 할것은 재귀 함수에 어떤 부분에 스탑을 넣을 것인지 조건을 잘 정하는게 관건인것 같았습니다.
    • 자료구조부분은 생각보다 어려웠던 부분도 없었고 이미 구현이 되어있는 api 도 많았지만, 재귀나 정렬부터는 제가 직접 머릿속으로 고민해야될 문제가 많은것 같아서 차분차분 풀어나가야 할 것 같습니다.
      • 멘토님께서 어떠한 문제를 잘 풀게 되는건 알고리즘 풀이의 실력이 늘은것이 아닌 해당 문제에 쓰이는 것에 대한 실력이 상승한거라고 하셨는데, 이제 다시 브론즈부터 풀어나가야 할 문제들이 생긴것 같습니다.
  • 알고리즘 문제를 풀었습니다.
    • 재귀 문제는 실버 5로 도전했다가 큰코를 다쳤습니다. 
    • 메소드가 스택에 어떻게 쌓이는지는 이해를 했지만, 직접 풀이를 해보려니 이해가 완전히 되지 않은 느낌입니다.
    • 다시 브론즈부터 풀어봐야겠습니다.
    • 힙 문제는 실버 1문제를 풀이했습니다.
      • 이제 골드문제도 도전해도 되겠다는 생각이 들었습니다. (언제 한번 알고리즘 풀데이를 가져봐야겠습니다.)
  • 데이터베이스 실시간 강의
    • JOIN, GROUP BY, HAVING, ALTER ,인덱스 에 대해서 배웠습니다.
      • GROUP BY 같은 경우에는 말그대로 같은 값을 가진 row 끼리 그룹별로 묶어서 관리할 수 있게 해줍니다.
      • 인덱스 같은 경우에는 정리가 더 필요할 것 같습니다.
        • 보통은 pk로 설정해버리면 pk가 되는 컬럼은 자동으로 인덱스가 생성되나, 그렇지 않은 컬럼들도 따로 인덱스를 생성 할 수 있습니다.
        • 따로 제약조건을 붙여서도 관리가 가능했습니다.
      • JOIN 은 이너조인과 아우터 조인이 있으나 이너조인만 배웠습니다.
        • 이너조인은 단순히 두 테이블간 겹치는 부분만 데이터를 가져와서 퍼즐처럼 붙여준다고 이해했습니다.
        • 따로 찾아보니 아우터조인은 중복이 되지 않는 값까지 다 가져와서 중복이 되지 않은 값들을 null 로 입력후 붙여준다고 합니다.
      • having 은 where 과 비슷하지만, having 은 그룹으로 묶었을때의 로우에만 적용되고 where 은 개별 데이터별로 적용된다는 차이점을 갖고있습니다.
      • alter 는 테이블에 변경사항이 존재할때 수정하는 정도의 문법으로 알고있으면 될 것 같습니다.
  • 그룹 스터디에서 인사이트 공유를 진행했습니다.
    • 호승님은 네트워크, 컴퓨터구조에 대한 짤막한 정보들을 가져와주셨습니다.
      • 메모리? 의 크기가 작을수록 컴퓨터의 성능이 좋아진다.. 라는 내용이 존재했었습니다. 생각해보니 맞는것 같습니다. 장치 하나하나가 굉장히 작아서 같은 면적에 많이 들어가고 감당이 된다면 그게 최고의 성능을 발휘 할 수 있겠다 생각했습니다.
      • 네트워크같은 경우에는 lan과 wan 의 차이에 대해서 설명해주셨습니다. lan은 제한된 구역내의 네트워크, wan은 광범위한 구역의 네트워크 를 뜻한다고 합니다. 흥미롭네요
    • 이안님은 토이프로젝트를 진행하시면서 겪었던 문제에 대해서 공유를 해주셨습니다.
      • 주변에 누군가가 고민을 하는것을 같이 공유한다는것은 좋은것 같습니다.
        • 저도 그 부분에 대해서 한번 더 생각할 수 있게 되어서 좋았습니다.
        • 주변에 동료가 한계단 한계단 올라가는걸 볼때마다 짜릿한 기분이(?) 듭니다.
    • 진혁님께서는 정적 팩토리 메소드에 대해서 공유를 해주셨습니다.
      • 이펙티브 자바로 정리했던 내용인데 책 자체가 어려워서 솔직히 다시봐도 크게 이해되는 부분은 없었습니다.
      • 하지만 또 다시 보게되니 그 이후로 배웠던 무언가와 연관지어서 생각할 수 있게 되었습니다.
        •  이러한 부분에서 보람을 한번 더 느끼게 되는것 같습니다. 꾸준한 학습이 정답인것 같네요.

 

내일 목표 🤔

  • 알고리즘 정렬/ 공간복잡도 정리하기
  • 자료구조 실버 상위문제 2문제 이상 풀이하기
  • 이펙티브 자바 반 챕터 읽고 정리하기 / JPA 한 챕터 읽고 정리하기 (챕터 야바위)
  • 게시판 프로젝트 리팩토링 마무리 / 테스트 코드 작성 하고 끝내기

 

내일도 화이팅! 

'TIL' 카테고리의 다른 글

22-12-26 TIL  (0) 2022.12.26
22-12-22 TIL  (0) 2022.12.22
22-12-21 TIL  (0) 2022.12.21
22-12-19 TIL  (0) 2022.12.19
22-12-15 TIL  (0) 2022.12.15
  Comments,     Trackbacks
22-12-13~22-12-19 개발공부 회고록

기존의 주간목표를 작성했던 부분에서 매일 TIL에 일일목표를 작성하는것으로 변경했습니다.

진행했던 것들 🤔

  • 알고리즘 정리
    • 시간복잡도 개념익히기
    • 해시 테이블 익히기
    • 트리 구조 익히고 구현해보기
    • 해시/우선순위 큐 문제 풀이
  • 스프링 토이 프로젝트
    • 전체 코드 리팩토링 
      • 각 메소드별로 중복된 부분 추출후 함수화
      • 기존 DTO 하나로만 전달하던 것에서 필요한 정보만 주고 받을 수 있도록 Request Response DTO를 사용하도록 수정
      • JPA 공부하면서 DB조회 빈도를 줄일 수 있도록 고민 후 수정
    • 테스트 코드 작성/수정
  • JPA 5장,7장,장 정리
    • 연관관계 매핑
    • 고급 매핑
    • 프록시와 연관관계 관리
  • 그룹스터디 워크샵 준비
    • 회의/발표 준비/모의발표/ 워크샵 진행

 

느꼈던 점 🤔

  • 이번 한 주는 유난히 힘들었습니다.
    • 매일 먹고자고싸는 시간 제외 머릿속에 코딩생각과 공부생각으로 살아왔는데, 드디어 한계가 온 것 같았습니다.
    • 생각해보니 내가 춤을 그만둔 이유도 너무 춤에 모든것을 쏟아버린 나머지 흥미를 잃어서 그만둔것이었는데, 이렇게 하면 의미가 있나 라는 생각이 들었습니다.
      • 최대한 붙잡아보려 했지만, 주말은 그냥 쉬도록 날렸고, 일단 우선순위가 가장 높았던 그룹워크샵 준비에 힘을 약간 쏟아 부었습니다.
      • 다행히 좋은 결과가 있었던것 같았습니다.
  • 마인드셋 특강에서 해당 그래프 얘기가 나온적이 있습니다.

  • 지금 절망의 계곡 쯤 온 것 같습니다. 더 열심히 하지 말고 지금처럼 꾸준히만 하자를 목표로 삼아야겠습니다.
  • 이제 주간 회고록에서 목표를 TIL을 꾸준히 작성하는 것으로 변경했습니다.  빈도를 늘려서 일간회고를 습관화 해야겠다는 생각이 들었습니다.

좋았던점  🤔

  • 오랜만에 정말 아무 생각도 안하고 주말을 잘 보낸 것 같습니다.
    • 요즘 신경쓸게 너무 많았는데도 컨디션이 따라주지 않고, 생각보다 혼자 지내는게 외로웠던 한 주였는데 잘 버틴것 같습니다.
  • 힘들어하는 와중에 포기하지 않았습니다. 
    • 하루에 적어도 두시간이상이라도 붙잡았던것 같습니다. 쉴땐 쉬고 놀땐 놀자가 이제 몸에 익은 것 같습니다.
  • 그룹 워크샵 발표는 개인적으로 성공적이었다고 생각합니다.
    • 생각보다 설계가 잘되었다고 생각했습니다. 부족한 부분은 계속 보완해나가며 각 역할별로 최선의 결과를 내려고 노력했던 것 같습니다.
  • 어렵다고 생각했던 알고리즘에 한걸음 더 다가가게 되었습니다.
    • 남은 힙 자료구조만 정리하게 되면, 제가 알고있는 자료구조에 대한 기본적인 개념은 다 나가게 됩니다.
    • 그런데 생각보다? 해당 자료구조 자체가 어렵다는 생각은 들지 않았습니다.
    • 앞으로 그 자료구조들을 어떻게 찜쪄먹을지에 대한 노하우정도만 익히면 코딩테스트 가 아닌 단순 구현에 어려움은 겪지 않을것 같다는 희망이 생겼습니다.
  • 토이프로젝트를 진행하고 리팩토링에 대한 노하우가 살짝 생긴 것 같습니다.
    • 전에는 리팩토링을 한다 할때 겉모습만 바뀌었지 결국 유지보수 하기 쉬운 코드를 작성했다 생각한적이 없었지만 지금은 그래도 관리하기 쉬운 코드를 작성하는 방법을 흉내라도 내는것 같은 착각?이 듭니다.
    • 그 착각을 확신으로 바꾸기 위해서 코딩을 더더욱 습관화 해야겠다는 생각이 들었습니다
      • 마찬가지로 알고리즘 문제 하나를 풀더라도 다른사람들은 어떻게 풀었느냐를 참고하는것도 리팩토링 실력 상승에 영향이 있다고 생각이 들었습니다. 
  • 드디어 기본적인 토이프로젝트는 끝난것 같습니다.
    • 남의 코드를 보고 참고하는것이 아닌 이제 내 자료를 보고 무언가를 새로 시작할 수 있게 되었습니다.
    • 이래서 문서화가 중요하구나 라는 생각이 들었습니다. 다행히 프로젝트를 진행하는 내내 거의 모든 기능 구현에 대한 글을 남겨놓길 잘했다는 생각이 듭니다. 

 

아쉬웠던점 🤔

  • 현타가 온다면 쉬어야하는데 저는 자책을 하고 있습니다. 내가 개발을 당장 그만둬도 내가 먼저인데. 더 제 자신을 사랑해줘야겠습니다.
  • 쉴땐 쉬고 놀땐 놀아라 를 실천하지 못했습니다. 위에는 조금이라도 더 해보려고 노력했다는데, 아닌날에는 쉬어야겠습니다.
  • 생각보다 한 주를 돌아보니 아쉬웠다는 생각은 크게 안듭니다. 제가 그동안 열심히 해와서 덜 찔리나봅니다. 유지라도 열심히 해야겠다는 생각이 듭니다.

 

 

 

  Comments,     Trackbacks
22-12-15 TIL

오늘 진행한 것들 🤔

  • 해쉬 자료구조 정리
 

해쉬 자료구조에 대해서 알아보자 🤔

해쉬테이블 🤔 키에 데이터를 맵핑할 수 있는 데이터구조이다. 키와 값을 어떻게 맵핑할까? → 해쉬 펑션에 키를 넣으면 키를 저장할 수 있는 주소를 리턴을 해준다.(인덱스) 해당 주소에 키에

codinghentai.tistory.com

  • 시간 복잡도 정리
 

시간복잡도에 대해서 쉽게 이해해보자 🤔

알고리즘 복잡도 표현 방법 🤔 어떤 문제를 풀이하는데 완벽하게 똑같은 코드는 존재하지 않으나 어떤 풀이가 좋은 풀이냐 ? 라는 기준을 표현하는 방법을 익히는 것이다. → 어느 알고리즘이

codinghentai.tistory.com

  • 해쉬 자료구조 알고리즘 문제 풀이
 

백준 1764번 듣보잡 (자바)풀이

문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한

codinghentai.tistory.com

 

백준 2910번 빈도 정렬 (자바) 풀이

문제 위대한 해커 창영이는 모든 암호를 깨는 방법을 발견했다. 그 방법은 빈도를 조사하는 것이다. 창영이는 말할 수 없는 방법을 이용해서 현우가 강산이에게 보내는 메시지를 획득했다. 이

codinghentai.tistory.com

  • 스프링 부트 게시판 Article/ArticleComment 도메인 리팩터링
    •  게시글 조회 시에 민감한 정보가 포함되지 않도록 수정 (account dto 제외시킴)

  • Article Service 테스트 코드 작성

  • 그룹스터디 워크숍 준비 (발표자료 수정 및 모의 발표 진행)

 

오늘의 배운 점 🤔

  • 해쉬 자료구조에 대해서 공부했습니다. 왜 프로젝트 강의에서 강사들이 데이터 저장을 위한 자료구조로 해쉬 셋을 사용하는지 알게 되었습니다.
    • 해쉬 맵을 활용하고 싶은 마음이 생겼습니다. 레디스를 연동시켜보면 될까요? 🤔
    • Repository는 어떤 자료구조로 구현되어있는지 궁금해졌습니다. 한번 찾아봐야겠습니다.
  • 시간 복잡도에 대해서 공부했습니다.
    • 사람들이 그렇게 말하던 시간 복잡도가 무엇인지 드디어 알게 되었습니다. 생각보다 어렵지 않았습니다.
    • 시간 복잡도라는 개념을 이해하고 문제를 풀이하니 자연스럽게 해당 코드가 얼마나 오래 걸리지 머릿속으로 그려지게 되었습니다. 🤔
      • 공간 복잡도는 디테일하게 공부하지 못했지만 대충 해쉬 자료구조 같은 것들을 공부하면서 느껴보니 체이닝 기법 같은 오픈 해슁 기법 같은 경우에 메모리 초과가 발생할 수 있겠다..라는 생각이 듭니다. 🤔
  • 테스트 코드를 오랜만에 작성해보았습니다.
    • 전에는 Inject Mock과 Mock 이 무슨 역할인지 몰랐으나 지금은 이해가 됩니다. 제대로 알지 못했지만 꾸준히 테스트 코드를 조금씩이라도 작성해온 보람이 있습니다.
    • 하지만 연관관계 맵핑이 되어있는 엔티티에 대해서 테스트코드를 작성할 때 유연하지 못한 느낌이 듭니다. 해당 서적을 읽어봐야겠습니다.
  • 리팩터링을 진행했습니다.
    • 기존에 문제라고 생각했던 부분이 있었습니다. 프로젝트 내에서 response request dto를 적극적으로 생성하여 사용하지 않고 dto를 통짜로 사용해왔습니다.
      • 해당 부분에 대해서 조회 부분에는 response를, 삽입 부분에는 request를 사용해 확실히 분리를 해뒀습니다.
      • 전체적으로 코드가 더러웠던 부분 중에 공통부분을 빼버리고 핵심 로직은 최대한 코드의 깊이가 깊어지지 않도록 리팩터링을 진행했습니다. 
        • 이제 누구한테 제 프로젝트를 보여줄 수 있겠다 하는 생각이 들었습니다. (물론 작성해야 하는 테스트 코드가 한 무더기입니다. 🤔
  • 그룹스터디 워크숍 발표를 준비했습니다.
    • 자료를 보면서 아직 2달도 안됐지만, 저희 그룹원들이 얼마나 많은 성장을 했는지 , 그리고 저 또한 얼마나 많은 성장을 이뤘는지 다시 한번 짚어보는 시간을 가졌습니다.(물론 제 머릿속으로)
    • 항상 부족하다 생각했는데 되돌아보니 열심히 살아왔고 잘한 거 같아서 좀 쉬어도 되겠다는 생각이 듭니다. 큰일이네요 ;(
    • 모의 발표를 살면서 처음으로 진행해보았습니다. 매번 준비된 거 없이 프리스타일로 춤만 춰오다가 처음으로 가짜 상황극을 해보니 떨렸습니다. 그래도 발표는 잘할 거라 믿습니다. 🤔

 

내일도 파이팅!

'TIL' 카테고리의 다른 글

22-12-26 TIL  (0) 2022.12.26
22-12-22 TIL  (0) 2022.12.22
22-12-21 TIL  (0) 2022.12.21
22-12-20 TIL  (0) 2022.12.20
22-12-19 TIL  (0) 2022.12.19
  Comments,     Trackbacks