# photoday project

18개의 포스트

부트캠프 회고

2022.10.20-2023.04.10 반 년간의 코드스테이츠 42기 백엔드 부트캠프 일정이 사실상 끝났다. 프리 프로젝트 깃헙 : https://github.com/codestates-seb/seb42pre015 메인 프로젝트 깃헙 : https://github.com/MNK-photoday/photoday 메인 프로젝트 발표 영상 : https://www.youtube.com/watch?v=x1y4s9WShps [ 소감과 조언 ] 프로젝트를 하면서 많이 배운다고 들었는데 정말 그랬다. 프로젝트 시작 전에는 내가 프로젝트를 잘 해낼 수 있을지 정말 막막했었는데, 새해부터 새로운 마음가짐으로 열심히 공부했던 것이 많은 도움이 되어, 2개의 프로젝트 모두 잘 마무리했다. 프로젝트 들어가기 전에 꼭 혼자서 '레퍼런스 없이 커피 주문 + 게시판 프로그램 만들어보기' 추천드립니다. 아주 많은 도움이 돼요. 모르는 건 구글링과 유능한 동기들의 도

2023년 4월 7일
·
0개의 댓글
·

2023.03.28.TUE

[ 메인 프로젝트 ] promtail과 loki로 spring boot 서버에서 콘솔로 나타나는 slf4j 로그 스크래핑 성공..! 로그 파일을 밖으로 내보내고, 우리 서버는 도커에서 실행 중이므로, 도커 내부에서 생성된 로그 파일을 도커 밖의 EC2에서 volume으로 연결했다. 볼륨 연결이 어려웠는데 팀원 분들이 도와주셨다. yml 설정에서 logging.file.name에서 경로까지 정해주니까 해결되었다. 처음에 내가 logging.file.path로 경로 지정할 때는 폴더 생성이 자동으로 안 되었음. !

2023년 3월 28일
·
0개의 댓글
·

2023.03.27.MON

[ 메인 프로젝트 ] RDS의 max-connections 수정하기. 각 사양마다 디폴트 값이 있다. 커넥션이 많을 수록 thread pool이 많아진다고 생각하면 될 것 같다. test용 DB에서 계속 Too many connections 에러 떠서 해결하려고 찾아본 내용. https://support.bespinglobal.com/ko/support/solutions/articles/73000524758--aws-rds-max-connections-%EC%88%98%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95 grafana 홈페이지에 들어갔는데, data source를 추가하려고 하니 not allowed 에러가 떴다. data source인 prometheus에 접근하려면 nginx config 설정을 수정해줘야 한다. proxysetheader Host $http_host; 추

2023년 3월 27일
·
0개의 댓글
·
post-thumbnail

2023.03.25.SAT

[ 메인 프로젝트 ] 오늘도 열심히 loki, promtail을 연결해보려 했으나 실패했고, 대신 DB 데이터라도 연결해보려 했는데 그것도 실패. https://pbj0812.tistory.com/271 대신 저번에 만들어둔 로그 시각화 dashboard를 보는데, HTTP Statistics 자료에서 like 요청이 많다는 것과, tag 검색 응답 시간이 너무 오래 걸려서 코드 리팩토링이 필요하다는 유의미한 분석 정보를 얻을 수 있었다. 밤에는 팀원들과 가비아로 도메인 사서 nginx 서버 분기하고, certbot으로 https 적용하는 것을 함께 했다. https://velog.io/@random-olive/Lets-Encrypt-%EC%9D%B8%EC%A6%9D%EC%84%9C-%E

2023년 3월 25일
·
0개의 댓글
·

2023.03.24.FRI

[ 메인 프로젝트 ] Grafana 비밀번호 변경 방법 https://nirsa.tistory.com/260 loki, promtail https://velog.io/@junsj119/%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EA%B4%80%EB%A0%A8 https://jujeol-jujeol.github.io/2021/10/28/Spring-Boot-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%EC%A0%81%EC%9A%A9-2/ 현재 spring boot -> prometheus -> grafana 로 연결되는 로그 시각화는, 메트릭 정보를 수집하여 로그 시각화를 하는 것이므로, 실제로 어플리케이션을 구동했을 때, 우리가 서버 내에서 slf4j 로 찍은 콘솔 로그는 나타나지 않는다. 실제로 우리가 원하는 로그는 nohup.out 파일의 실시간 로그를 graf

2023년 3월 24일
·
0개의 댓글
·

2023.03.23.THU

[ 메인 프로젝트 ] EC2에 ELK + filebeat 스택 설정을 통해 로그 시각화 -> kibana 서버까지 접속했으나, 너무 무거워서 EC2 프리티어에서 도저히 진행 불가능. -> 설치 및 연결은 아래 링크 순서대로 따라하면 됨. swap 메모리 할당 https://repost.aws/ko/knowledge-center/ec2-memory-swap-file ubuntu에 ELK 설치 방법 https://phoenixnap.com/kb/how-to-install-elk-stack-on-ubuntu ec2 연결 yml 설정 https://velog.io/@cbkyeong/ElasticsearchAWS-EC2%EC%97%90-Elasticsearch-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0 ![](https://velog.velcdn.com/images/youngrong/post/953990c3-a

2023년 3월 23일
·
0개의 댓글
·

2023.03.22.WED

[ 메인 프로젝트 ] DB clustering (수평 구조) DB 서버를 여러 개 두고 서버 한 대가 죽었을 때 대비하는 것 동일한 DB를 여러 개의 서버가 관리. 로드밸런싱 가능 Active-Active 방식, Active-StandBy 방식 여러 대의 서버가 동일한 DB를 공유하므로 병목 현상 발생 가능 https://mangkyu.tistory.com/97 https://tecoble.techcourse.co.kr/post/2021-09-18-replication_clustering/ Replication (수직 구조) 복제된 DB. 동일한 내용 가짐. master-slave 구조 master : 원본 DB slave : 비동기 방식으로 동기화된(복제된) DB. 무결성 깨질 수 있음. SQL thread, IO thr

2023년 3월 22일
·
0개의 댓글
·

2023.03.21.TUE

RDS 생성 에러 : Cannot create a publicly accessible DBInstance. The specified VPC does not support DNS resolution, DNS hostnames, or both. Update the VPC and then try again VPC DNS 활성화해서 해결 https://iamreadytocommit.tistory.com/42 AOP 이용해서 logging 작성 중에 Pointcut || 조건으로 합칠 때 에러가 났다. 에러 로그도 보고

2023년 3월 21일
·
0개의 댓글
·

2023.03.20.MON

[ 메인 프로젝트 ] DB index 데이터 빠르게 찾기 (소거법) 예시) 1~100 에서 숫자 하나 찾을 때 인덱스 : 복사해서 '정렬해 둔' 컬럼 (DB 용량 차지) 데이터 변경은 성능이 좀 떨어지고, 검색 성능은 올라감. Single Block I/O 기반으로, 소량 데이터 읽을 때 좋음. B-tree : 바이너리 서치 트리에서 노드마다 데이터를 하나만 넣는 게 아니라 여러 개. B+tree : 가장 아래 노드에만 데이터 저장. 윗 노드에는 데이터 검색 가이드만 제공. 데이터끼리도 정렬되어 연결되어 범위 검색 가능. 유튜브 인덱스 설명 https://www.youtube.com/watch?v=iNvYsGKelYs Jpa 복합 인덱스 설정 카디널리티(고유성)가 높은 컬럼 순서로 선택할 것

2023년 3월 20일
·
0개의 댓글
·

2023.03.18.SAT

[ 메인 프로젝트 ] Jpa 쿼리와 페이지네이션 동시 적용하려면 JPQL 이용. 지금껏 본능적으로? 이렇게 사용하고 있었음..ㅋㅋㅋㅋ https://stackoverflow.com/questions/22345081/spring-data-jpa-query-and-pageable 기존 IPv4 CIDR 규칙에 a 참조된 그룹 ID을(를) 지정할 수 없습니다. aws 인바운드 설정 시, 기존 것 삭제하고 다시 추가하면 됨. https://intrepidgeeks.com/tutorial/existing-ipv4cidr-rules-cannot-specify-the-group-id-of-the-reference-target ec2 AMI 2023년 최신버전으로 했다가, 코드 디플로이 설치 지원 안 돼서 삽질 한참함,,,ㅋㅋㅋ 결국 ec2 삭제했다. 다시 만들어야할 듯. https://sangchul.kr/entry/aws-codedeploy-%EC%97

2023년 3월 18일
·
0개의 댓글
·

2023.03.17.FRI

[ 메인 프로젝트 ] 북마크랑 라이크랑 로직 똑같은데, 라이크는 삭제가 안 됨. 그래서 전에 썼던 방법으로 jpa 레포지토리 인터페이스 만들고 deleteAllByIdInBatch 메서드 사용했다. 일단은 굴러가게 만들기,, Cannot resolve table 에러. 쿼리 쓸 때 종종 테이블 못 찾는 에러 나온다. 이번에는 쿼리를 포기하고 레포지토리를 만들었지만, 다음에 한 번 이 방법으로 시도해봐야겠다. https://goddaehee.tistory.com/283 DB 스키마, 초기 yml 설정 https://wan-blog.tistory.com/52 트랜잭션과 jpa 성능 사이의 관계 https://2dongdong.tistory.com/29 <느

2023년 3월 17일
·
0개의 댓글
·

2023.03.16.THU

[ 메인 프로젝트 ] 오전 내내 쿼리와 다시 싸워봤으나, 또다시 졌다. 제대로 공부해봐야 할 것 같다. 테스트에서 builder 사용시, 초기화해야할 필드가 있을 때, 필드에 @Builder.Default 적용해서 에러 해결 가능. https://lokie.tistory.com/24 시큐리티 적용된 코드의 테스트를 작성할 때. 오늘 작성한 테스트 로직은 @WithMockUser 을 사용했다. https://tecoble.techcourse.co.kr/post/2020-09-30-spring-secu

2023년 3월 16일
·
0개의 댓글
·

2023.03.15.WED

[ 메인 프로젝트 ] 어제도 그렇고, 생각보다 순환참조를 많이 만난다. 어제는 Dto로 반환 안 해서 그런 것이었지만, 오늘은 DI 때문에 순환 참조가 일어났다. 서로 참조되는 DI 의존성을 제거해줌으로써 해결했다. 임시 비밀번호 이메일 발송 로직 작성 Random 난수에도 규칙성이 있다는 것을 알았다. SecureRandom이 더 복잡하고 안전하다. https://kdhyo98.tistory.com/48 https://moonsiri.tistory.com/39 쿼리 공부 https://school.programmers.co.kr/learn/challenges?tab=sqlpracticekit 쿼리가 너무 어렵군요,, 이메일 발송은 프리 프로젝트 때

2023년 3월 15일
·
0개의 댓글
·

2023.03.14.TUE

[ 메인 프로젝트 ] A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance 에러 새로운 객체를 만들시, JPA 특성상 추적이 안 돼서 생기는 오류. 새로 객체 만들지 말고 비우고 채워넣기로 해결 https://blog.leocat.kr/notes/2016/04/26/hibernate-no-longer-reference 폼 데이터 요청은 post, get 메서드만 가능함 https://mangkyu.tistory.com/218 Cannot call sendError() after the response has been committed 에러 Jpa

2023년 3월 14일
·
0개의 댓글
·

2023.03.10.FRI

[ 메인 프로젝트 ] EC2 테넌시 (전용/호스트) : 하드웨어와 인스턴스 관계 https://velog.io/@golddong98/aws-EC2-%ED%85%8C%EB%84%8C%EC%8B%9C NAT instance https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-NAT-Gateway-NAT-Instance-%EB%8C%80%EC%B2%B4%ED%95%B4%EC%84%9C-%EB%B9%84%EC%9A%A9-%EC%A0%88%EC%95%BD#nat%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%ED%83%84%EB%A0%A5%EC%A0%81ip%EC%A3%BC%EC%86%8C_%ED%95%A0%EB%8B%B9 scp 명령어로 EC2에 파일 업로드 https://dev.classmethod.jp/articles/use-scp-upload-scp/ ICMP

2023년 3월 10일
·
0개의 댓글
·

2023.03.07.TUE

[ 메인 프로젝트 ] 포스트맨으로 form-data, requestBody 두 개 동시에 요청하려니 에러 났다. 아래 포스팅 보고 둘 다 form-data로 요청하니 해결됨. https://emoney96.tistory.com/258 jpa delete 관련 https://stackoverflow.com/questions/24724152/jpa-clear-collection-and-add-new-items 멘토링 정리 유저 테이블의 카운트 필드들을 없앴다. ui를 위해서 이미 DB에 있는 내용을 table에 중복 저장하므로 비효율적이기 때문. 누가 좋아요 누르면 2개 업데이트해야함. open api 3.0 == global standard 알고리즘

2023년 3월 7일
·
0개의 댓글
·

2023.03.06.MON

[ 메인 프로젝트 ] S3에 파일 업로드 해봤다. 파일 여러 개도 업로드 해보고, 다운로드도 구현! 아래 블로그에서 블로깅을 정말 잘 해놨다. https://www.sunny-son.space/spring/Springboot%EB%A1%9C%20S3%20%ED%8C%8C%EC%9D%BC%20%EC%97%85%EB%A1%9C%EB%93%9C/ The bucket does not allow ACLs 에러 https://velog.io/@shinsw627/The-bucket-does-not-allow-ACLs build.gradle is not part of the build defined by settings file 에러. 빌드 후에 파일 경로 변경해서 나는 에러. 경로 안 맞음. https://stackoverflow.com/questions/56293162/build-gradle-is-not-part-of-the-build-define

2023년 3월 6일
·
0개의 댓글
·

2023.03.05.SUN

[ 메인 프로젝트 ] open api 3.0 이란 무엇인가... 내가 이전에 프리 프로젝트 하면서 만들었던 API 문서와는 무엇이 다른가... 하나 하나 yml 작성하기 귀찮을 것 같아서, postman collection을 api 3.0으로 변환하는 방법을 찾아봤다. 귀찮은 건 싫으니까... 2.0과 3.0의 차이는 component로 묶어서 간결하게 나타내는 정도..? https://gruuuuu.github.io/programming/openapi/ https://velog.io/@hyex/Swagger-Components-Section-OpenAPI3#differences-from-openapi-20 Open API 3.0 튜토리얼 https://itchallenger.tistory.com/798 postman-to-openapi https://github.com/joolfe/postman-t

2023년 3월 5일
·
0개의 댓글
·