본문 바로가기

공부/TIL

(84)
23.12.21 인증기능이 구현이 됐으면 그다음은 이미 익숙해져서 레퍼런스 없이도 그냥 쭉쭉 이어가면 된다. 오늘 기능구현에 성공한 것은 게시글 게시, 수정, 삭제, 조회 그리고 댓글 기능까지 게시글 삭제에서 챌린지 과제를 하나 더 구현에 성공했다. 바로 특정일자(시간)이 지나면 자동으로 오래된 게시글들을 삭제 해주는 것! 바로 Scheduler를 이용하면 된다. 스프링에서는 일정 시간이 되면 자동으로 일을 처리해주는 기능을 갖는다. 이때 나는 Scheduler를 이용해서 특정 시간(테스트를 위해 매분 30초마다 1분이 지난 게시글을 자동으로 삭제 하도록 함)이 되면 자동으로 메서드를 실행시켜 준다. 처음 Scheduler를 사용하기 위해선 설정이 필요하다. @EnableScheduling @Configuration 이..
23.12.20 오늘 찐으로 쿠키로 인증 절차 완료! 저번에 성공한 줄 알았던 쿠키 인증 방식에 문제가 있었다. 테스트를 제대로 하지 않고 진행을 했더니 성공한 줄 알고 넘어갔었다. 문제는 barrer값을 떼서 넘겨줘야 했는데, 이를 떼서 넘겨주지 않아서 생겼던 오류. 이를 잡기 위해 정말 많은 테스트를 진행했고, 드디어 성공했다. 테스트를 잡았던 1등 공신은 바로 로그찍기. 내가 요즘 알고리즘 문제를 풀 때도 그렇고, 이렇게 로그를 계속 찍어주는게 맞는 것 같다. 이래야 어느부분에서 문제가 생겼는지를 한눈에 파악이 가능하다. 앞으로 개발을 할 때 로그를 찍는 것을 습관화 해야겠다. 이제 온전히 내 힘으로 쿠키를 이용해 인증 절차를 할 수 있게 됐다. 이번에 직접 구현을 하면서 기존에 코드를 가져다 썼던 것보다 훨씬 많..
23.12.19 오늘은 알고리즘 위주로 공부! 알고리즘 풀면서 어떻게 풀었는지 블로그에 적어두었다. [프로그래머스] 햄버거 만들기 https://taeho-fighting.tistory.com/95 [프로그래머스] 햄버거 만들기 첫번째 풀이가 시간초과가 났다. 원인은 반복문 안의 indexOf()는 시간복잡도가 높음! stack 자료구조를 사용해봄. 이 자료구조는 First In Last Out 마지막에 들어온게 가장 먼저 나가는 식. 이 자료구조 taeho-fighting.tistory.com [프로그래머스] 성격 유형 검사 https://taeho-fighting.tistory.com/96 [프로그래머스] 성격 유형 검사하기 사기 자료구조 map을 썼다. key값으로 mbti의 요소를 넣고, value값으로 해당 요..
23.12.18 오늘 쿠키로 로그인 하기 완! 하다가 마주쳤던 몇가지 트러블 슈팅기록! 쿠키를 이용해서 인증 처리를 하다가 만난 에러. 구글링을 해보니 쿠키값에는 인코딩된 값을 넣어줘야 한다고 한다. 다시 생각해보니까 예전에 쿠키값을 다룰 때 벨류에 값을 넣어줄 때는 이렇게 인코딩된 값을 넣어줬던 기억이 난다. token = URLEncoder.encode(token, "utf-8").replaceAll("\\+", "%20"); // Cookie Value 에는 공백이 불가능해서 encoding 진행 요렇게 URL로 인코딩된 값을 넣어주니 예쁘게 잘 들어간다. 아직 쿠키를 다루는게 완벽하진 않다. 확실히 헤더에 실어서 보내는것보단 몇가지 로직이 추가된다. 이렇다면 쿠키에 인증 정보를 담아서 보내는 것과, 헤더에 인증 ..
23.12.15 오늘의 뻘짓.. 인증/인가 파트를 쌩으로 모두 구현해보려고 했는데 도저히 사이즈가 안나왔다. 역시나 나중에 튜터님께 여쭤보니 이걸 쌩으로 구현하는 것보단 흐름을 이해하는데 더 초점을 두는 게 더 낫다는 말. 물론 나도 그게 좋을거 같긴 했는데.. 그래도 내가 박으면서 흐름을 좀 더 구체적이고 디테일하게 이해할 수 있는 시간! 내 프로젝트 MyFavorite을 이제 더 촘촘히 구현을 해보자!!
23.12.14 오늘부터 시작되는 개인 프로젝트! 나만의 음악 게시판 만들기. 이번 프로젝트의 목표는 기존 코드를 복붙 금지. 내가 직접 처음부터 할 수 있는 최대한 직접 짜기. 어려울 것 같은 부분(인증/인가파트)가 있지만, 그래도 내가 자주 해왔던 작업이니까 할 수 있다고 믿고 해보련다. 이렇게 해야 내가 지금까지 공부했던 것 중에서 뭐를 아는지? 뭘 모르는지 알 수 있겠다 싶었다. 그냥 인터넷에 있는 코드들을 긁어와서 사용하는 것도 방법이겠지만, 그건 이제 내가 내손으로 모두 할 수 있을 때 내 입맛대로 커스텀 할 수 있을거라 생각한다. 오늘 구현한 기능들은 다음과 같다. 첫번째로 회원가입 기능. 지금은 내가 혼자 쓰는 게시판이지만, 언젠가 배포할 날을 기대하며! [ ] 닉네임, 비밀번호, 비밀번호 확인을 requ..
23.12.13 밀린 알고리즘 문제를 풀었다. 오늘 알고리즘을 공부하면서 느꼈던 것중 가장 컸던 것은 적절한 자료구조를 사용한다면 시간복잡도나 로직에 굉장히 좋다는 것. 프로그래머스의 "대충만든 자판" 문제를 풀 때 map을 이용해서 풀었더니 굉장히 잘 풀렸다. 처음 어떻게 해야할지 생각하는 것도 힘들었는데, map을 이용하니까 아주 간단한 풀이가 되더라.비슷하게 "숫자 짝꿍"도 다시 풀어봐야겠다. "숫자 짝꿍"도 map을 이용한다면 더 쉽게 풀 수 있을 것 같다. 오우 "숫자 짝꿍"을 생각보다 빨리 풀어버렸다. 내가 틀렸던 이유는 테스트 케이스11~15에서 시간초과가 떴었다. 그 이유는 String answer += i; 연산을 해서다. 공부를 해보니 String에 +연산을 하면 그냥 있는 문자열에 추가를 하는게 아닌..
23.12.12 심화 +주차 시작 오늘부터 jpa 심화 과정을 밟는다. jpa는 jdbc에 편의성을 개선시킨 버전이기 때문에 처음은 jdbc부터 시작! 처음부터 인텔리제이가 말썽이였다. 스크린샷은 못찍었지만, 대충 내용은 인텔리제이가 이미 실행되고 있어 실행이 불가능하다는 것. 재부팅으로 해결! 두번째로는 test 코드를 작성하는데 한글이 깨져서 나왔다. 해결방법은 인텔리제이의 help에 가서 editCustomVM Option idea64.exe.vmoptios에서 맨 아래에 -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 추가를 해주고 인텔리제이 재시작! 오늘은 이상하게 인텔리제이가 말을 안듣는 날.. 그동안 편하가 썼던 JPA를 안쓰고 JDBC만 쓰려니 여간 답답한게 아니다.. ..
23.12.11 팀프로젝트 발표까지 마쳤다. 이번 발표도 내가 했다. 이렇게 캐주얼한 분위기의 발표는 기회가 될 때마다 해야 된다고 생각했다. 나는 발표가 정말 너무 어렵고 너무 떨리지만, 이렇게 캐주얼하고, 준비가 덜된 상태에서도 발표를 할 수 있다면 피해선 안된다. 이런 경험들이 중요한 순간에 긴장을 덜어주고, 익숙해지겠지? 아무튼! 오늘 팀프로젝트를 마친 기념으로 프로젝트 회고를 진행해보자. [프로젝트 초반 나의 소극적 의사소통] 기본적인 사항은 지난 한달동안 진행했던 것들과 다르지 않다. 나는 이번에 인증/인가 파트를 맡았고, 유저 도메인을 맡아서 구현했다. 지난 프로젝트에서 했던 것들을 가져와서 쓰려니 이슈가 한개 발생했다. 내 코드 스타일과 팀원들과의 코드 스타일이 다르기 때문에 커스텀을 해줘야 한다는 것. ..
23.12.08 팀플을 마무리! 기본적으로 우리가 처음 기획했던 기능들은 모두 완료했다. 추가로 기능이 구현 된 것은 3개다. [백오피스] 1. 건우님이 구현하신 백오피스. 관리자 권한을 갖는 user는 막강한 권력을 휘두룰 수 있도록 했다. 게시글 수정/삭제 등 인증 정보가 필요한 api 요청을 할 수 있도록 구현이 됐다. 여기서 좀 더 디벨롭을 할 수 있다면 api 요청을 /api/admin으로 하면 더 예쁜 그림이 나올 것 같긴한데 아직 그부분까지는 다듬지는 못했다. [동적 쿼리] 2. 성훈님이 구현하신 쿼리/파람을 이용해 동적 쿼리 생성 솔직히 말해서 이거 그냥 툭 던진 거였다.. 이거 안어려울 줄 알았으니까!!! 동적 쿼리를 던지는게 생각보다 너무 어려웠다. 우리의 프로젝트는 mbti별 게시판 조회를 기획했다...