TIL 78

220704 TIL 실전프로젝트 트러블슈팅

# query did not return a unique result: 2; 이런 에러가 발생했는데 List findAllby 가 아닌, 이건 객체를 findAllby~~ 로 찾아서 발생한 오류같다. 즉, List findAllby~~ 로 하면 해결될 것. # @JsonManagedReference, @JsonBackReference 어노테이션들로 문제가 발생했다. Meeting 엔티티의 OneToMany에 @JsonManagedReference가 있고, Issue 엔티티의 ManyToOne에 @JsonBackReference가 없으면 Issue가 여러개일 때, *** java.lang.instrument ASSERTION FAILED ***: "!errorOutstanding" with message ..

TIL 2022.07.04

220701 TIL 실전프로젝트 트러블슈팅

# 깃에 민감정보가 커밋되어서 올라가 버리는 바람에 모든 브랜치와 메인 브랜치를 되돌려야 했다. 일단 첫 번째로 main브랜치를 민감정보가 올라가기 전 까지로 Hard 초기화시켰다. 그리고 Hard초기화 된 코드를 main브랜치를 푸쉬해줬다. 두 번째로 내 브랜치에서 민감정보가 들어오기 전 까지로 Hard 초기화를 시켰다. 그런 다음 내 브랜치에다가 되돌려진 Hard초기화된 코드를 다시 푸쉬해줬다. 인텔리제이 터미널에 git push [브랜치이름] -f main 이미지 업로드 기능 까지 YSH Team, User, Meeting, Issue 기능 구현 까지 ssw build gradle 추가 까지 동관님 이미지 업로드 기능 까지 인줄 알았는데... gitignore 생성이라는 커밋부터 민감정보가 포함되어..

TIL 2022.07.04

220704 WIL ( 프로젝트 트러블슈팅 )

# 깃에 민감정보가 커밋되어서 올라가 버리는 바람에 모든 브랜치와 메인 브랜치를 되돌려야 했다. 일단 첫 번째로 main브랜치를 민감정보가 올라가기 전 까지로 Hard 초기화시켰다. 그리고 Hard초기화 된 코드를 main브랜치를 푸쉬해줬다. 두 번째로 내 브랜치에서 민감정보가 들어오기 전 까지로 Hard 초기화를 시켰다. 그런 다음 내 브랜치에다가 되돌려진 Hard초기화된 코드를 다시 푸쉬해줬다. 인텔리제이 터미널에 git push [브랜치이름] -f main 이미지 업로드 기능 까지 YSH Team, User, Meeting, Issue 기능 구현 까지 ssw build gradle 추가 까지 동관님 이미지 업로드 기능 까지 인줄 알았는데... gitignore 생성이라는 커밋부터 민감정보가 포함되어..

TIL 2022.07.04

220629 TIL 실전프로젝트 트러블슈팅

#@JsonManagedReference @JsonBackReference OneToMany ManyToOne 연관관계에서 무한참조를 막아주는 어노테이션. 없으면 stackOverFlow 에러가 발생한다. # A엔티티와 B엔티티 A에 B가 여러개고, B에 A가 여러개일때 ManyToMany ManyToMany로 해결할 수 있지만 이렇게 연관관계를 구축하면, 이후 코드의 세부적인 유지보수가 힘들기 때문에, 가상의 C 엔티티를 만들어서 A-C OneToMany ManyToOne, C-B ManyToOne OneToMany 로 ManyToMany ManyToMany 관계를 풀어서 만들 수 있다.

TIL 2022.06.30

220627 슬랙클론코딩 WIL

슬랙클론코딩이니만큼 소켓에 가장 많이 신경썼다. 일단 소켓으로 실시간 소통이 성공하기는 했으나.. 복붙해서 조금만 고친 코드라서 아직도 정확히 어떻게 돌아가는 지 모르겠다. 최종프로젝트에도 소켓을 써야하는데, 슬랙보다 훨씬 복잡한 구조를 가지고 있는 프로젝트가 되어버려서, 소켓을 훨씬 더 잘 알고, 내가 원하는 대로 소켓을 가지고 프로젝트를 설계할 수 있는 능력이 필요할 것이다.

TIL 2022.06.27

220622 TIL 클론코딩 트러블슈팅

# 소켓 연결이 계속 안돼서 한참 찾다가 스킵패스리스트에 ws-stomp를 추가해줘야 한다는 사실을 깨달았다. 추가해주니 소켓 연결은 잘 작동한다. 비슷한 문제로 , 당시 TIL에 정리하진 못했었던 문제. EC2 인스턴스 인바운드 보안규칙에 6379번 포트를 안 열어줘서 안 됐던 문제도 있었다. # 하드코딩이란? https://tecoble.techcourse.co.kr/post/2020-05-07-avoid-hard-coding/

TIL 2022.06.23

220620 TIL

# redis 를 추가한 이후로 로컬에서 스프링 실행이 안된다. 자꾸 EC2 환경에서 돌리라고 하는데, 생각해보니 EC2에 redis 예쁘게 깔아놓고 내 컴퓨터에 redis가 없다.. 로컬에서 6379 포트가 안 열려있으니 당연히 안되겠지..,ㅎ #포스트맨으로 확인할 때 엔티티에 User가 manytomany로 묶여져 있고, User 객체를 자꾸 반환하여 유저 패스워드까지 콘솔 바디에 찍히는 대참사가 벌어지고 있었다. 그래서 반환 Dto에 List로 반환하는 리스트를 List타입으로 바꾸고, 인덱스에 user.get~~~~ 으로 필요한 스트링만 내려주는 방식으로 해결했다. #포스트맨으로 아무 기능도 작동하지 않아서 확인해봤더니 시큐리티에 cors에 내 EC2 주소가 안 풀려있었다. 풀어주니 역시 잘 동작..

TIL 2022.06.20

220619 TIL

#EC2에 redis 설치하기 ●주의 사항 -maxmemory 설정 나의 경우에는 total memory가 1G이기때문에, maxmemory를 500mb로 설정. -bind 설정 127.0.0.1 로 설정되어 있으면, 로컬에서의 접속만을 허용하기 때문에, 0.0.0.0 으로 설정해서 모든 아이피에 대한 접속 요청을 허용한다. ( 이것은 일단 연습이기 때문에 이렇게 설정을 해 놓았지만, 나중에 현업에서는 어떻게 사용하는 지 알아볼 필요가 있다. ) -maxmemory-policy 옵션 ( 데이터 교체 알고리즘 ) 모든 키에 대해서 사용된 지 가장 오래된 데이터를 삭제하는 방법인 allkeys-lru 알고리즘을 선택 https://wookgu.tistory.com/26 https://heeestorys.ti..

TIL 2022.06.19

220620 WIL

일주일간 팀원들과 미니프로젝트를 진행하며 아쉬웠던 점: ResponseEntity나 HttpstautsCode에 대한 이해도가 완벽하지 않아서, 프론트 엔드에 정보를 더 자세하게 내려주지 못한 것 같다. 좀 더 매끄러운 협업을 위해서 프론트에 정보를 내려줄 때 어떻게 하면 더 받는 쪽이 편하게 받을 수 있을 지 연구해야할 것 같다. 뿌듯한 점 : 이번 프로젝트에서 처음으로 깃을 제대로 사용해봤다. 브랜치를 나누고, 각자 작업한 내용을 병합하고 원격 저장소에 Push하고 Pull request 까지 어느정도 손에는 익은 것 같다. 새로운 프로젝트에 돌입한 지금, 깃을 만지는 데에 있어서 아직까지도 혹시라도 잘못 건드려서 팀원들의 파일이나 내 파일이 잘못되지는 않을까 망설여지고 두렵기도 하지만, 언젠가는 넘..

TIL 2022.06.19