TIL 78

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

# 헤더에 정보를 내려주는 법 고민을하다가 로그인 할 때, 우리가 JWT토큰을 헤더에 내려주고 있으므로 JWT로직을 응용하자 는 생각이 들었다. 결과적으로 이는 정답이었고, 파라미터에 final HttpServletResponse response 를 넣어주고 response.addHeader(AUTH_HEADER, TOKEN_TYPE + " " + token); 물론 저 AUTH_HEADER(Autholization으로 설정되어 있음)와 TOKEN_TYPE(BEARER로 설정되어 있음) 은 따로 위에서 선언해줘야한다.

TIL 2022.08.11

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

#에러메세지 Handshake failed due to invalid Upgrade header: null Origin check enabled but transport 'jsonp' does not support it 구글링을 해보니, proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_http_version 1.1; 라는 코드를 리눅스에 넣으라는 글만 줄창 나온다. 뭔 고로쇠물마냥 글도 몇 개 없는데 전부 다 저 세줄의 코드를 넣었더니 코드가 돌아가요! 이러고 있길래 나도 넣어봤더니 광고사기였다는 것을 깨닫고 통한의 눈물을 흘리던 도중 nginx -t ( 이것도 관리자 권한에서 돌려야 잘 돌아감 ) 를..

TIL 2022.08.11

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

#must run as root EC2 설정 및 패키지 설치시에 발생한 에러 must run as root 는 관리자 권한으로 실행하는 것을 요청하는 에러이다. sudo su 를 하면 최상위 권한으로 리눅스를 실행할 수 있다. ip:/home/ubuntu#가 뜬 상태에서 cd를 입력하면 최상위 폴더인 ~#로 이동할 수 있다. 이 상태에서 certbot 설치를 진행하면 된다. #nginx가 실행중인데도 아이피로 접속해서 nginx가 안 뜬다면? 인스턴스를 재부팅해보자. 재부팅은 상당한 시간이 걸리기 때문에, git bash에서 접속이 안되더라도 줄담배를 태우지 말자. 손을 떨지 말자. 인스턴스를 믿어라 인스턴스는 짱짱쎄다 인스턴스 짱짱맨. # sites-available 로 검색해서 나오는 코드를 리눅스의..

TIL 2022.08.11

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

# yaml혹은 properties 파일에 ${경로} 로 설정하고 민감정보를 인텔리제이 -> 구성 편집 으로 들어가서 빌드 설정은 상관 없고, 어플리케이션 쪽에서, 옵션 수정 -> 환경 변수에 체크한 뒤에, ${경로} 에서, 경로를 등록하고, 그에 맞는 민감 정보 값을 등록해준다. ( 앞에 띄어쓰기가 있는 등, 작은 오타로도 코드가 작동하지 않기 때문에 꼼꼼하게 체크해줘야한다. ) # '2022-07-17' 형식으로 들어오는 String타입으로 객체를 정렬 할 수 있을까? 결과적으로는 성공이었다. TimeStamped도 따지고보면 String타입인데 정렬이 되지 않는가? 객체의 Repository로 가서 findAllByOrderByModifiedAtDesc(); 를 변형시켜서 findAllByOrder..

TIL 2022.08.11

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

# The input is not a valid base 64 encoded string 소켓이 자꾸 자동으로 디스커넥트되고, 그 아래에 저런 토큰 오류가 생겨서 토큰 값이 잘못 들어오고 있는지 의심을 해봤고, 그것이 정답이었다. 토큰 값 앞에 Bearer가 붙어서 생겼던 오류, substring으로 앞글자 7개를 끊어주니 잘 실행 된다. # failed to lazily initialize a collection of role, .....no Session (through reference chain ㄴ서버 연관관계 때문에 생긴 녀석인가? 결론을 말하자면 연관관계에서 생긴 문제가 맞았다. chatMessage 엔티티에 user를 ManyToOne으로 연결시켜놓았는데, user에도 연결되어있는 TeamL..

TIL 2022.08.11

TIL 220709

# 사실 웹소켓을 통한 실시간 채팅은 클론코딩주차에서 slack을 따라 만들어보며 한 번 구현을 해봤었지만, 제대로 알지도 못하고 사용한 코드들이라 웹소켓과 stomp가 어떻게 구동되는지에 대한 원리를 파악해야겠다고 생각했다. 아래 벨로그에서 웹소켓과 stomp의 구동원리를 잘 파악할 수 있게 정리해 놓았고, 기본 소스도 같이 들어있어서 참고하기 좋았다. 참고 : https://velog.io/@rainbowweb/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-STOMP%EB%A1%9C-%EC%B1%84%ED%8C%85%EB%B0%A9-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0

TIL 2022.08.11

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

# 스트링 타입으로 들어온 회의 시작 시간을 스트링 타입으로 들어오는 회의 예정 소요시간에 더해줘서 스트링타입으로 반환해줘야하는 CRUD를 요구받았다. String[] meetingTime1 = meetingTime.split(":"); String[] meetingDuration1 = meetingDuration.split("시"); String meetingTime2 = meetingTime1[0]; String meetingDuration2 = meetingDuration1[0]; String meetingOverTime1 = ""; int meetingTimeInt = Integer.parseInt(meetingTime2); int meetingDurationInt = Integer.parseIn..

TIL 2022.07.08