반응형 I LEARNED78 [TIL] 최종프로젝트 ERD설계 지금 작성하는 이 글은 해당 웹사이트를 만드는 동안 있던 내용을 기록했다. https://www.homecomingdaycare.com/ Homecoming Day 대학교 졸업생 동문 커뮤니티 사이트입니다 www.homecomingdaycare.com 1차 설계 최종프로젝트에 진입하면서 백엔드끼리 우선적으로 고려했던 테이블이다. ERD설계처럼 처음에 코드를 진행했는데 불필요하게 테이블이 많아지는 느낌이 있어서 좀 더 효율적인 설계를 위해 팀원들과 회의를 진행했고, 이 과정에서 articleFlag라는 Column을 넣는 의견이 나왔다. articleFlag를 사용하면 처음 설계했던 DB와 같이 불필요한 자원낭비를 줄일 수 있을 뿐 아니라, 동일 코드를 반복해서 작성할 필요가 없었다. 중간 피드백을 받을 .. 2022. 10. 10. [TIL] 참여하기와 게시물2 575번에 articleFlag를 비교하는 이유는 게시판이 4가지로 구성되고 있다.다른 게시판들은 형식이 모두 같지만 calendar만 형식이 다르기에 우선 비교를 해준 뒤 로그인한 유저의 이메일(고유값)과 연관관계로 있는 게시물의 유저 이메일을 비교해준다. 576번의 비교값이 true면 위에서 Dto를 통한 정보들을 업데이트하여 게시물에 저장한다. articleFlag가 calendar인 경우 Dto에 다음과 같은 값이 넘어온다 maxPeople의 값이 변경될 때 현재 참여해 있는 인원 아래로 값을 변경하려고 하면 값을 변경하지 못하도록 해야했기에 두 번 째 사진에서 586번 째 줄에서 MaxPeople과 참여자 수를 비교해준 뒤에 true면 업데이트 해주도록 했다. 다음과 같이 이미 참여자의 수가 3.. 2022. 10. 10. [TIL] 참여하기와 게시물 코딩을 하며 인상 깊었던 부분을 계속해서 적어갈 계획이다. 우리 팀이 서비스한 웹사이트로 졸업생 동문 커뮤니티 사이트이다. https://www.homecomingdaycare.com/ Homecoming Day 대학교 졸업생 동문 커뮤니티 사이트입니다 www.homecomingdaycare.com 기획을 동문들을 만날 기회를 제공하는 것이 서비스의 목적이었기 때문에, 그에 걸맞은 서비스를 제공하고자 참여하기 기능을 추가했다. 코드를 보여주기 전에 현재 연관관계는 다음과 같다 따로 참여자라는 column을 만들기보다는 테이블을 생성해 Participant의 길이를 파악하여 사용할 계획이었다. 기존에 게시판 형태에서 조금 더 디테일하게 다루다보니 하면서도 재미가 있었다. 693번줄에서 연관관계를 통해 해당.. 2022. 10. 9. [이쓰]IntelliJ 단축키+자동완성 고냥저냥 갑자기 하고 싶어져서 작성 자주 쓰는 단축키 필수 Alt + Enter : Context actions & 퀵 픽스 Shift Shift : search everywhere Ctrl + Space : 기본 코드 자동 완성 Ctrl + Shift + Space : 스마트 자동 완성 추천 Alt + Ins : Generate code Ctrl + P : Parameter info Ctrl + W : Extend selection (입력할 수록 범위 커짐) Ctrl + Shift + W : Shrink selection Ctrl + E : 최근 사용 파일 라인 Ctrl + D : 라인 복사 Ctrl + Y : 라인 삭제 Ctrl + Shift + ↑↓ : 라인 위/아래 이동 리펙토링 Ctrl + Al.. 2022. 10. 7. [TIL] [troubleshooting] findAll을 지양해야 하는 이유 오늘도 나란 똥멍청이가 코드를 이상하게 짜서 배포한 프로젝트에서 조회가 엄청 느려진 이슈가 있었다. 정말 간단한 문제였는데 코드를 먼저 본 것도 아니고, 캐시나 fetchJoin을 먼저 찾고 있었다는게 문제를 해결하고 나서 너무 한심했다.. 결과만 먼저 말하자면 딱 한줄 바꿨는데 속도적인 면에서 약 26배 정도가 개선되었다. 그럼 기존에는 빨랐냐?기존에는 속도가 문제가 발생하기 전보다 좋았었다. 그러나 기능적으로 불필요한 부분을 쳐내면서 코드를 일부 수정했는데 이 때 기존에 사용하던 코드를 잘못 삭제했는데 확인을 못한 것이었다. 해당 게시물에 대한 상세조회를 하는 것이었는데 위에서 해당 articleId에 따른 게시물을 찾아놓고 게시물에 연관관계를 맺은 댓글들을 찾는 것이 아닌 모든 댓글을 조회하다보니 .. 2022. 10. 6. [TIL] [troubleshooting] Permission denied,리눅스에서의 권한 허가 거부 Springboot에서 이미지를 업로드 과정에서 생긴 문제이다. 이미지를 리사이징 하는 과정에서 파일을 새롭게 만드는 코드가 있었는데,계속 그 부분에서 에러가 팡팡터졌다. 이상하게 로컬에서는 잘되다가 서버만 연결하면 에러가 발생했다. 이미지를 포함한 게시글을 올릴 때 지속해서 에러가 발생했다. java.io.IOException : Permission denied를 검색해보니 IOException은 input/output시에 생기는 에러였고, Permission denied는 리눅스에서의 허가 거부였다. Springboot에서 이미지파일을 리사이징할 때 리눅스 서버에 새로운 파일을 만드는 로직을 넣었었는데, 거기서 에러가 같이 터졌다. resizedImage.setExecutable(true, false.. 2022. 10. 5. [TIL] [troubleshooting] 엔진엑스 연결 후 왜 1MB이상의 파일이 안올라갈까? 프로젝트 진행 중 서버를 도메인에 연결 후 프론트와 연동을 했다. 엔진엑스와 연결하기 전까지만해도 잘올라가던 파일이 엔진엑스와 연동 후에 프론트에서 1MB이상의 파일을 올리지 못하게 됐다. 기존에는 에러가 나는 부분이 Multipartfile의 리스트에서 null값을 체크하는 부분에서 계속 에러가 나다보니 Spring에서 용량 최대허용량을 100MB로 해둬서 프론트쪽 오류인 줄만 알고 인지하고 있었다. 그러나 무엇이 S3와 엔진엑스와 관련이 있을까 하던 도중.. 엔진엑스에서 서버공격을 방지하기 위해 기본 전송 용량 설정이 1MB로 되어 있음을 확인할 수 있었다. Nginx는 큰 용량의 파일을 대량으로 업로드하는 서버의 공격을 막고자 기본값이 1MB로 되어 있다. 따라서 하나의 파일이 1MB가 넘건 여러 .. 2022. 10. 3. 이전 1 ··· 4 5 6 7 8 9 10 ··· 12 다음 반응형