코드 훔쳐보는 변태 코더
춤 좋아하는 백엔드 개발자(였으면 좋겠다)
백엔드 (25)
23-01-15 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 진행
    • 게시판 뷰 수정
    • 게시글 좋아요 , 조회수 기능 구현
      • 좋아요 취소까지 가능 
      • 레디스를 활용해 로그를 남기도록 구현
    • 게시판에 캐릭터 닉네임 출력 및 뷰 더 깔끔하게 수정
    • 등록된 캐릭터로 게시글 검색 기능 구현
    • 댓글 입력 조회, 삭제 기능 구현
    • 댓글 출력 뷰 구현 

좋아요를 누르지 않았을떄
좋아요를 눌렀을때 (나갔다 들어와도 저 모양으로 유지 및 다시 누르면 좋아요 취소가 가능하다.)

 

 

오늘 겪었던 문제 🤔

  • 영속성 전이 관련 문제
    • 자꾸 게시글에 댓글을 등록하려는데, 계속 기존에 등록된 게시글을 못찾는 것이었다.

오늘 해결한 오류 🤔

  • 영속성 전이 문제
    • 문제는 단순히 엔티티로 변환하는 메소드에 id값을 넣어주지 않아서 식별자를 확인 못해서 생겼던 문제였다.. 나 바본가...?

오늘의 배운점🤔

 

 

뭘배워~~ 그냥 하는거지

 죽자!

 

'TIL' 카테고리의 다른 글

23-01-17~18 TIL  (0) 2023.01.19
23-01-16 TIL  (0) 2023.01.17
23-01-14 TIL  (0) 2023.01.15
23-01-13 TIL  (0) 2023.01.14
23-01-12 TIL  (0) 2023.01.12
  Comments,     Trackbacks
23-01-13 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 진행
    • 게시글 출력/검색 관련 쿼리문 수정
    • 게시판 뷰 수정
    • 게시글 작성 뷰 구현
      • 토스트 UI 에디터 사용
      • 이미지 첨부 가능
      • 이미지 첨부 후 삭제 가능
      • 이미지 첨부 후 글에 같이 포함시키지 않을 시에 서버상 남은 잔여 파일 삭제 기능 구현
    • 게시글 조회 뷰 구현

게시판 _최종_최종_최최종_최2종_최종2_최종3___최최종종
토스트 UI 에디터를 적용시켰다.

 

토스트 UI 에디터의 훅 옵션을 이용하여 이미지 등록처리를 구현했다.

오늘 겪었던 문제 🤔

  • 생성자를 롬복으로 선언하지 않고, 따로 선언해 식별자 아이디를 생성자에 포함시키지 않고 dto를 엔티티 객체로 변환할 때 식별하지 못해 새로 엔티티객체를 생성하는 문제
    • 빌더패턴과 AllArgsConstructor 과 NoArgs를 롬복으로 선언해 주었을 때에는 생기지 않았으나 구조상 더 꼼꼼하게 변경하기 위해 생성자는 롬복사용을 피했더니 문제가 발생했다.
      • 프로젝트를 끝내고 객체지향에 관해서 한번 더 공부해봐야겠다. 

오늘 해결한 오류 🤔

  • 게시글을 검색할때 대소문자를 무시하지 않는 오류 -> lower()를 사용하여 해결 완료

오늘의 배운점🤔

  • 뷰를 좀더 꼼꼼하게 수정했습니다..
    • 크롬의 검사 탭을 활용하여 css를 정교하게 수정해서 이제 저도 딱히 뭔가 불편하지 않은 뷰를 구현할 수 있었습니다.
  • 게시판 외부 에디터를 적용시켰습니다.
    • 다행히 직전 프로젝트에서 이미 실행해 본 바 있었기에, 그대로 적용시켜 보았습니다.
    • 나름 직전에도 나쁘지 않게 적용시켰었는지, 그대로 긁어왔는데 오류 하나 없이 완벽하게 적용시킬 수 있었습니다.
    • 조금 걸리는 건 뷰어에서의 글씨 크기가 좀 불편합니다. 더키 우고 싶은데 제이쿼리로는 한계인 것 같습니다... 
    • 이전에는 게시글에 등록한 파일을 따로 제3의 중간연결 엔티티 객체를 생성해 연결했었는데, 이번엔 게시글에 직접 연결시켜 보았습니다. 이 방법이 훨씬 가독성도 좋고 나쁘지 않은 것 같습니다. ㅎㅎ
    • 게시글에 본인이 등록한 캐릭터를 등록시켜서 참고가 가능하게 하는 법도 구현해 봐야겠습니다.

내일도 파이팅!

'TIL' 카테고리의 다른 글

23-01-15 TIL  (2) 2023.01.16
23-01-14 TIL  (0) 2023.01.15
23-01-12 TIL  (0) 2023.01.12
23-01-10 TIL  (0) 2023.01.10
23-01-09 TIL  (0) 2023.01.09
  Comments,     Trackbacks
23-01-12 TIL

오늘 진행한 것들 🤔

  •  토이프로젝트
    • 스프링부트 버전 변경과 그에따른 그래들 빌드 내용 수정
    • 캐릭터 , 유저 계정 관련 테스트 코드 작성
    • 게시판, 댓글 도메인 설계
    • 게시판 핵심 비즈니스 로직 설계 및 테스트 실행
    • 더 세세한 검색과 출력을 위한 쿼리문 작성
    • 게시판 리스트 뷰 구현
    •  

처음으로 jpa를 사용하면서 쿼리문을 직접 작성해보았다.
기본적인 뷰를 구현했다.
나쁘지않게 연관관계를 맺은것 같다.

오늘 겪었던 문제 🤔

  • 딱히?

오늘 해결한 오류 🤔

  • 흠..딱히..?

오늘의 배운점🤔

  • 오늘은 전체적으로 별 일 없이 흘러갔습니다.
    • 전보다 엔티티 설계에 대한 이해도가 조금 더 늘은것 같습니다.
    • 오늘의 설계는 확실히 전보다 빨랐고, 알찼습니다 :)
    • 처음으로 jpa를 이용하면서 쿼리문을 작성했습니다.
      • 기존에 막무가내로 메소드 이름만 무작정 지어서 이용했을땐 디테일한 결과를 가져오기도 힘들었고, 2차 가공이 필요했던 반면, 직접 쿼리를 짜서 활용하니 훨씬 편리했습니다. 

 

내일도 화이팅! 

'TIL' 카테고리의 다른 글

23-01-14 TIL  (0) 2023.01.15
23-01-13 TIL  (0) 2023.01.14
23-01-10 TIL  (0) 2023.01.10
23-01-09 TIL  (0) 2023.01.09
23-01-07 TIL  (0) 2023.01.08
  Comments,     Trackbacks
23-01-07 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 진행
    • 캐릭터 랭킹 구현 설계
    • 마이페이지 뷰 수정 
    • 프로필 아이콘 변경 기능 구현 
    • 검색 페이지 기존 사이트와 똑같이 뷰 수정

캐릭터 검색 페이지 (데미지 조회는 불가능)

 

(마이페이지)

 

(프로필 아이콘 변경 모달창)
프로필 아이콘 변경 가능

 

오늘의 배운 점 🤔

  • 뷰를 좀더 원본 사이트와 비슷하게 수정했습니다.
  • 크롬의 검사 탭에서 css에 어떤 속성을 추가했는지까지 조회가 가능했습니다.. 조금 도움이 되었습니다.
  • 아이콘 변경 기능을 구현했습니다.
    • 기존에 파일 입출력을 구현해봤어서 별로 어렵지 않았습니다.
  • 캐릭터 랭킹 기능 구현에 대해서 어느정도 설계를 했습니다.
    • 캐릭터가 조회될때마다 조회된 정보중 통계를 낼 수 있는 캐릭터 스텟 수치를 가진 캐릭터를 db에 저장하고, 해당 정보를 토대로 데미지 공식을 계산해 통계를 낼 수 있을것 같다는 생각이 들었습니다.
    • 레디스나 몽고디비 같은 no sql 을 따로 사용해야 하나 생각을 했었는데, 어차피 그렇게 해봤자 객체 맵핑이 안되있는데 들쑥날쑥한 데이터로 통계를 내는것 또한 어려울거라고 느껴졌습니다.
    • 따라서 주변 지인에게 도움을 얻어본 결과, 스프링 배치를 사용해보는것이 어떻겠냐는 답변을 얻었습니다.
    • 생각을 해보니 스프링배치까지 사용할 필요가 있나 싶지만, 일단 전체적인 틀은 머릿속으로 그려지는 느낌입니다.
    • 허나 지금 당장 구현이 필요한건 이런것보다 캐릭터를 조회하고 계정 엔티티에 묶는 것과, 커뮤니티를 먼저 구현하고 마지막에 랭킹을 구현하는게 맞겠다 싶어서 우선순위를 뒤로 미뤄놨습니다. (커뮤니티가 훨씬 시간이 적게 걸릴것 같은..)
    • 후에 랭킹을 구현한다면 전 프로젝트처럼 기능을 점점 추가하면 재밌을거같다는 생각이 듭니다.

다음주도 화이팅!

'TIL' 카테고리의 다른 글

23-01-10 TIL  (0) 2023.01.10
23-01-09 TIL  (0) 2023.01.09
23-01-06 TIL  (0) 2023.01.07
23-01-05 TIL  (0) 2023.01.05
23-01-04 TIL  (0) 2023.01.05
  Comments,     Trackbacks
23-01-06 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 진행
    • 파싱 한 데이터 객체 맵핑
    • 검색 기능, 결과 페이지네이션 구현
    • 마이페이지 뷰 구현

 

 

 

오늘의 배운 점 🤔

  • 데이터를 파싱하고 결과물을 출력하는 것까지 성공했습니다.
    • 고민이 정말 많이 되었던 구현이었습니다.
    • 데이터를 DB에 저장하지 않고 단순히 객체를 맵핑해서 프런트로 내보내야겠다는 생각이 들었습니다.
    • 어제 거의 반나절동안 작업한걸 모두 삭제했습니다 ㅠ.ㅠ
    • 겪었던 오류는 왜 캐릭터마다 없는 스탯이 존재하는지를 모르겠습니다.. 그래서 객체 맵핑에 어려움을 겪었고 NullPointerException을 자주 던져주었습니다.
    • 고민했던 부분은 원본 사이트에는 해당 캐릭터의 능력치와 장비 스킬까지 참고하여 대미지 계산 공식을 세웠는데, 그러면 한번 캐릭터를 조회할 때 어느 데이터까지 파싱해와야 할지가 많이 고민이 되었습니다..
    • 일단은 캐릭터 결과에 캐릭터의 이름, 모험단 이름, 모험가 명성이 출력되는 형태였기 때문에 한번의 목록을 불러올 때 전체 조회 1번, 각 캐릭터별로 능력치 조회 1번씩 진행해서 성능을 조금이라도 더 챙겼습니다. (중복되는 부분들은 최대한 빼려고 노력했습니다.)
  • 페이지 네이션도 구현했습니다.
    • 기존에 페이지네이션은 JPA repository 에서 받아온 정보를 Page 타입으로 묶어서 프런트에 내보냈기 때문에 스프링에서 자체적으로 지원해주는 기능으로 구현했지만, 이건 따로 db에 저장하지 않고 파싱해온 데이터를 페이지로 내보내야 했기 때문에 많이 까다로웠습니다.
    • 타임리프로 페이지네이션을 구현했는데, 거의 알고리즘 문제를 푸는것 같았습니다...
  • 마이페이지의 뷰를 구현했습니다.
    • 원래 오늘의 목표는 마이페이지의 정보수정 뷰 구현과 캐릭터 검색 후 등록이 목표였는데, 캐릭터 검색만 하루종일 구현했습니다.
    • 아쉽지만 뷰 구현으로 마무리했습니다. 
    • 껍데기 이기 때문에 제대로 동작하는건 닉네임 출력밖에 없지만 다른 부분들은 생각보다 머리로 잘 그려지는 부분들이라 오래 걸리지 않을 것 같습니다.

 

5일 동안 코딩과 공부만 약 50시간 이상 한 것 같습니다... 재밌네요!

'TIL' 카테고리의 다른 글

23-01-09 TIL  (0) 2023.01.09
23-01-07 TIL  (0) 2023.01.08
23-01-05 TIL  (0) 2023.01.05
23-01-04 TIL  (0) 2023.01.05
23-01-02 TIL  (0) 2023.01.02
  Comments,     Trackbacks
23-01-05 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트 진행
    • 캐릭터 데이터 파싱 및 페이지네이션
    • 파일업로드, 조회 기능 추가

 

오늘의 배운 점 🤔

  • 배운점이 있을까요? 정신없이 하다보니까 뭔가를 계속 하긴 했습니다.

죽겠습니다.

 

꼴까닥

!

 

  • 오늘 발생한 오류중 대부분은 접근 제어자를 실수로 깜빡했다거나.. 하는 오류가 대부분이었습니다.
  • 페이징 기능을 오랜만에 구현해봤는데 이 부분에서 헤맸습니다.
  • 전 프로젝트를 진행할때는 queryDsl 까지 사용해서 검색기능을 구현했던것 같았는데 이번엔 단순히 Data JPA 를 활용해서 구현이 되었습니다. (?)
    • 쿼리 dsl 은 대용량 데이터를 가공할때 사용해야하나.. 하는 의문점이 들었습니다.
  • 제대로 클론코딩을 하고싶은데 핵심 기능을 어떻게 구현해야할지 모르겠는 경우가 많습니다. 이 부분을 제작자에게 직접 문의를 해보면 어떨까.. 라는 염치없는 생각이 듭니다.

 

이제 사이트에 로그인 회원가입도 가능하고, 프로필에 아이콘도 등록이 가능하며 닉네임또한 출력이 됩니다.

첫 프로젝트를 생각하면 장족의 발전이라는 생각이 드네요...

내일도 화이팅!

 

 

'TIL' 카테고리의 다른 글

23-01-07 TIL  (0) 2023.01.08
23-01-06 TIL  (0) 2023.01.07
23-01-04 TIL  (0) 2023.01.05
23-01-02 TIL  (0) 2023.01.02
22-12-29 TIL  (0) 2022.12.29
  Comments,     Trackbacks
23-01-04 TIL

오늘 진행한 것들 🤔

  • 토이프로젝트
    • json 데이터 파싱 후 db에 저장
    • 로그인/회원가입 뷰 및 검증 & 핵심 로직 구현

 

오늘의 배운 점 🤔

  • 토이프로젝트를 진행하고있습니다.
    • 로그인과 회원가입 로직, 그리고 뷰를 구현하였습니다.
      • 스프링 시큐리티를 사용하여 구현하니 훨씬 쉽습니다.
      • 정말 프로젝트는 하면 할수록 재밌고 새롭고 짜릿한것같습니다.

 

  • 크진 않지만 이게 다 내가 구현한거라니.. (물론 부트스트랩의 도움을 받았지만..) 정말 뿌듯합니다 :)
  • 데이터 파싱을 해보았습니다.
    • 오늘 겪었던 오류는 GSON을 이용하여 전달받은 json 을 객체로 맵핑하려는데 자꾸 오류가 떴었습니다.
    • 이유는 바로 RestTemplate 을 이용하여 json을 전달받을때 String class 타입으로 전달받지 않아서 따옴표가 다 떨어져서 와서 였습니다....
    • https://www.jsonschema2pojo.org/ 라는 사이트를 이용하여 파싱용 dto를 생성하여 진행해보았습니다.
      • 처음에는 replaceAll 로 덕지덕지 붙어있던걸 다 떼고 알고리즘 문제 풀듯이 맵핑했었는데, 이제 그렇게 안해도 된다고 하네요......... 세상 참 좋아졌습니다.

이러한 데이터를 Gson 라이브러리를 통해 객체에 맵핑하면

하드코딩이긴 하지만 파싱한 데이터에 따라서 이렇게 영속화를 시킬수 있답니다.

전달받은 데이터를 db에 저장할 수 있습니다.

 

  • 생각해보니 전처럼 일일히 손으로 replaceall 해주면.. 곧 다가올 장비 라던가.. 어마어마한 데이터를 맵핑할수 없었을거라는 생각이 듭니다.
    • 역시 사람은 신기술을 잘 활용할 줄 알아야합니다 후후.

 

'TIL' 카테고리의 다른 글

23-01-06 TIL  (0) 2023.01.07
23-01-05 TIL  (0) 2023.01.05
23-01-02 TIL  (0) 2023.01.02
22-12-29 TIL  (0) 2022.12.29
22-12-28 TIL  (0) 2022.12.28
  Comments,     Trackbacks
23-01-02 TIL

오늘 진행한 것들 🤔

  • 알고리즘 3문제 풀이 (정렬,그리디)
 

백준 1946번 신입사원 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 44813 14819 10815 32.065% 문제 언제나 최고만을 지향하는 굴지의 대기업 진영 주식회사가 신규 사원 채용을 실시한다. 인재 선발 시험은 1

codinghentai.tistory.com

 

백준 1431번 시리얼 번호 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 128 MB 11139 6005 4941 55.133% 문제 다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는

codinghentai.tistory.com

 

백준 11497 통나무 건너뛰기 (자바) 풀이

시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 6971 3993 3265 59.635% 문제 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한

codinghentai.tistory.com

  • 토이프로젝트 개발
    • 계정 엔티티 모델링 후 스프링 시큐리티 적용, 리액트 적용

 

오늘의 배운 점 🤔

  • 오랜만에 정렬 문제들을 다시 풀어보았습니다.
    • 전보다 정렬에 대한 이해도가 더 높아진것 같습니다.
    • 조금 더 신경쓰면 좋을것은 정렬을 직접 구현할 수 있는 문제가 나온다면 힘들어할것 같다는 생각이 들었습니다.
    • 단순히 comparator 를 이용한 정렬은 이제 어느정도 감이 익은것 같습니다.
  • 토이프로젝트를 진행했습니다.
    • 리액트를 처음으로 활용해보았습니다.
      • 전부터 배워보고싶었던 리액트를 사용해보았습니다.
      • 타임리프로 구현했던 뷰와 다르게 리액트를 활용하니 모든 상황에서 데이터를 파싱하여 사용해야하는구나 를 느끼게 되었습니다.
      • 하지만 제이쿼리와 타임리프를 활용해 구현했던것과 다르게 확실히 모듈화라는게 얼마나 좋은것인지 다시 한번 느끼게 되었습니다.
      • 프론트엔드를 객체지향방식처럼 짤 수 있으면 굉장히 효율적이겠다라는 생각을 했었는데 정말 머지않았구나.. 라는 생각이 듭니다.
    • 계정 로그인 관련 기능들을 구현했습니다.
      • 단순히 백엔드쪽에서 로그인을 할떄는 신경쓸게 없었는데, 프론트와 백을 완전히 분리시켜버리니 로그인을 어떻게 해야할까에 대한 고민이 생겼습니다.
      • 이전에 쿠키에 JWT토큰을 저장하는 방식으로 로그인을 구현했었는데, 이번에도 고민을 해봐야할것같습니다.

오늘은 적을게 별로 없으니 코딩 시간 인증

'TIL' 카테고리의 다른 글

23-01-05 TIL  (0) 2023.01.05
23-01-04 TIL  (0) 2023.01.05
22-12-29 TIL  (0) 2022.12.29
22-12-28 TIL  (0) 2022.12.28
22-12-26 TIL  (0) 2022.12.26
  Comments,     Trackbacks