🔔[Born To Be Dev] Innovation Camp/TIL

22.08.04 (목) 4일 차

디카페인라떼 2022. 8. 5. 00:21

오늘 한것

  • <과제>합친 부분에서 오류나면 해결하기 -> 의외로 구현이 잘됐다! (대박)
  • 웹개발플러스 강의 2-4 (같은오류)/ 3-2
  • git 강의 인트로
  • 즐겨찾기 등록 후 등록 버튼이 사라지거나 완료 버튼으로 변경되게 하려고 시도함(결국못함)
  • 개인면담/회고멘토링
  • 오전에는 병원에 다녀오느라 아무것도 하지 못했다 .. 시간이 너무 아깝지만 사실은 쉬어서 너무 좋았다..
  • 프로젝트 완성 후 배포하고 제출까지 했다!!!!!!

오늘 배운 것

  • 즐겨찾기 등록 버튼과 관련해서 에러가 계속나서 나름대로 로직을 계속 짜보았다
  • =>어떻게 하면 기능을 구현할수있을까 생각해 볼 수 있어서 좋았다. 구현은 못했지만아예 얻어가는 게 없는 것은 아닌
  • ①단순히 JQuery로 클릭 시 버튼 텍스트가 바뀌게 하자! -> 새로고침 시 되돌아옴
  • ② 처음부터 버튼을 2개 만들어서 Toggleclass로 누르면 is-hidden 이 생성/삭제되게 하자! -> 등록한 책 뿐만아니라 전체 버튼에 모두 적용됨
  • ③ if (done==0){}일때와 else{}일 때 구현되는 버튼을 다르게 하자! -> done 값을 받아오려는 로직을 다시 짜야함..... 계속 파고들다보면 공부도 되고 가능하겠지만 제출까지 시간이 촉박했다ㅜㅠ
  • git 허브 readme 적는 법
  • 강의를 들어서 배운 것 보다는 면담시간과 멘토링 시간에 얻은 게 더 많았다 

오전 개인 멘토링

  1. 개발블로그를 적는 것의 중요성! - >TIL/WIL 적기, 기술카테고리 언제 할거야... 자꾸만 쌓인다
  2. 1일 1 comit (잔디심기) 의 중요성! -> 사용법을 아직 잘 모르겠다고 하니 인텔리제이화면에서 커밋하는 과정을 직접 보여주셨다. 빨리 나도 연결해서 프로젝트했던 것들을 올리고싶다

=> 일요일 채멘님 한테 깃 속성 과외 받기 / 2주차 본격 시작하기 전에 깃 강의 듣기

 

<과제>:모두의 베스트셀러 회고 멘토링

 생전 첫 코드 리뷰 시간. 구현하고 서버에 배포하고 구동한다는 것 자체로도 대단하다. 4일차인데. 능히 해냈다!!

 

  • 코드 구현 중 질문

1. (몽고DB사용시) 한 유저가 같은 책을 즐겨찾기 했을 때 리뷰작성/즐겨찾기 취소 시에 즐겨찾기 목록에서 사라지지 않음

  ◎문제의 원인

      ① 책마다 고유의 ID 값을 부여하지 않음 ->몽고DB 특성상 불가능->몽고 DB에는 auto Increment 기능이 없다  로직으로 구현 가능하나 비효율적이다!

      ② 책 등록시 책제목을 검색해서 중복 확인후 return 값을 주는 중복 체크 기능이 있었어야 함(오늘에서야 생각남)

 ◎ 해결방법

     ① (몽고DB가 아닌 경우) 고유 ID를 부여하라!

        - 일차적으로 테이블을 짤 때 중복이 되면 안되는 테이블을 확실하게 정해두어라! PK를 따서 중복이 안되도록!중복이되면 DB에서 막도록!(더 자세히 공부해보기)

        - 고유 ID를 주는 방법은 다양하다.ex) 날짜+num

        - len함수가 아닌 max 함수를 활용하라 (최대치 값에서부터 값이 부여됨)

    ② 고유 ID가 없었더라도 책 제목으로 값을 주고받았기에 등록시 먼저 DB에서 검색하여 중복 확인 후 return값을 주는 중복체크 기능을 넣었으면 된다! 

 ◎느낀점

고유ID는 첫날부터 고민하였던 부분인데 몽고DB 특성상 DB를 삭제하면 안된다고한다.->삭제해도 된다. 하지만 몽고 DB 특징이 데이터를 삭제하더라도 실제 사용 가능한 디스크 용량이 그대로이다. 이유는 몽고 DB에서 디스크를 미리 할당해서 사용하는 방식인 스토리지 엔진 방식을 사용하기 때문이다(속도적인 이점 때문에) 굳이 책 고유ID를 주지말고 몽고DB가 자체적으로 부여하는 _id 값을 사용해볼껄... 

애초에 처음부터 중복확인 부분을 넣을껄... 아침에 생각하였으나 오전내 병원에 다녀오느라 해내지 못해서 아쉽다. 개인시간에 시도해 봐야겠다.

 

2. github 협업시 효율적인 방법은?

-> 팀원 모두가 github은 잘 몰라서 제대로 활용하지 못하였다. 나도 그래서 많은 아쉬움이 있었다.

협업은 현직에서는 각 회사마다 git flow가 따로 있고 지금부터 효율적인 방법을 강구하지 않더라고 앞으로 프로젝트를 계속 진행해보면 자연스럽게 여러가지를 시도해 볼것이고 체득하게 될것이다!

=> 나는 아예 잔디심기도 모를정도로 초보라서 따로 공부를 해야겠다

 

  • 앞으로의 꿀팁

1. 매일매일 알고리즘을 푸는 연습을 하라!

  -> 2주차 부터는 알고리즘을 푸는 연습을 해볼텐데 비단 이 주차가 끝나더라고 1일1문제는 아니더라도 시간을 정해두고 알고리즘을 푸는 연습을 해두는 것이 좋다! ex)9시~9시30분 알고리즘 푸는 시간 (안풀리면 다음날 같은 시간에 같은 문제 보기)

-> 알고리즘=사고력. 많이 풀수록 실력이 늘 수 밖에 없다! 소홀히 하다보면 다른 걸 진행하는 동안에 문제푸는 실력이 휘발 될 수 밖에 없다

-> 프로그래머스가 기업들이 많이 코테에서 사용하는 것이니 프로그래머스 위주로 하되 비슷한 문제를 백준에서 찾아서 연습하라! 

 

2. 언어를 알아야 도구도 더 잘 사용한다!

 -> 알고리즘을 많이 풀어서 사고력이 좋아지더라고 그걸 표현할 언어를 잘 모르면 힘들어 질수 밖에 없다

 -> 주특기 (스프링)을 배우기 전에 언어의 기초를 잡고 가라! (자바) 

 -> 알고리즘 주차동안에 심화까지는 기초는 꼭 힘들더라도 한번다 훑고 책과 구글링을. 블로그도 많음

 -> 기초를 알고 스프링 강의를 듣다보면 객체지향언어라는 것이 어떤 건지 감이 잡힐 것이다

 

3. 시간이 남는다면 HTTP 에 대해서 공부하기 -> 시간이 남으면이 아니라 백엔드라면 우선적으로 해당 개념을 먼저 익힌 후 개발 진행이 맞음

 -> 어차피 모든건 HTTP규약에 따라서 표현하는 것 . 시간이 남으면 http에 대해서도 공부해놓기!


 

내일 할 것

  • git 강의 보기 (1주차라도 완강)
  • (웹개발플러스 2-4 에러가 해결된다면-매니저님이 봐주신다고했음) 나머지 강의 보기
  • 제발 블로그 기술 카페고리 정리하기(이대로 둘 순 없다)
  • 발제 후 2주차가 어떻게 진행 될지 모르겠다..
  • 하루에 하나씩 CS용어를 TIL에 적으며 공부하는 게 어떨까?

 


오늘은 오전에 전혀 참여를 하지 못하였고 멘토링과 과제제출을 하고나니 정말 불태웠다 싶어서 공부를 하고싶지 않았다..

강의를 보다가도 집중하지 못해서 다른 강의 첫부분만 보고 다시 다른 강의를 보는.. 집중력 부족의 끝판왕이었다.

그래도 오늘은 머리싸매고 고민하거나 1,2,3일차처럼 에러와 싸운다거나 채멘을 밤늦게까지 괴롭히지 않아도 되어서 심적으로도 좋았다. 기능 구현도 다했고! 서버에도 배포하고! 배운지 4일만에 웹페이지 하나를 뚝딱해낸거다! 대단하다! 능히 해냈다! 잘하고 있다! 

물론 배워야 할 게 산더미고 내가 지금까지 한 것도 완전히 다 파악했다! 말할 수도 없지만 그래도 퇴근 후에 조금씩 강의보면서 혼자서 했던 것 보다 4일간의 경험으로 얻은 게 더 많다! 잘하고 있다!

 

채멘님께 검수도 받았다.. http 공부도 필수적으로 해야겠다.. 제대로 알지도 못하면서 쓴거 다 들켰다..

 

 

 

'🔔[Born To Be Dev] Innovation Camp > TIL' 카테고리의 다른 글

22.08.06(토) 6일차  (0) 2022.08.07
22.08.05 (금) 5일 차  (0) 2022.08.06
22.08.03 (수) 3일차  (0) 2022.08.04
22.08.02 (화) 2일차  (0) 2022.08.03
22.08.01 (월) 1일차  (0) 2022.08.02