전체 글 555

캡스톤 디자인 : 중고거래 사이트 (2) 채팅 시 jwt 인증토큰으로 인증

메세지를 보내기 전에 jwt 인증토큰을 검증해서 검증된 사용자만 채팅을 칠 수 있게 만들었습니다. jwt 인증토큰을 만들고 검증하는 코드는 다 만들었는데 jwt 인증토큰을 헤더에 어떻게 담는지 몰라서 한참을 헤맸습니다. 헤더에서 jwt 인증토큰을 꺼내와야 한다는데 헤더에 어떻게 하는건지 원... 그래서 그냥 컨트롤러에서 response 객체를 받아와서 setHeader로 집어넣었습니다. (이렇게 하는거 맞나?) https://kukekyakya.tistory.com/12 스프링부트 웹소켓 stomp를 이용한 실시간 알림 구현 스프링부트, stomp를 이용해서 실시간 알림을 받을 수 있도록 해보겠습니다. ​ 구현할 내용은 다음과 같습니다. 1. 사용자 1번이 접속해서 웹소켓이 열린다. 2. 사용자 2번이 ..

캡스톤 디자인 : 중고거래 사이트 (1) 채팅 구현

우선 가장 중요한 채팅 기능을 만들어봤습니다. 웹 소캣 중에서도 SocketJS와 STOMP 프로토콜을 이용해 만들었습니다. 코드는 구글에서 검색해서 복붙했지만 디비에 입력하기 위해서 코드를 많이 수정하긴 했습니다. 따라 만드시려면 SocketJS와 STOMP프로토콜의 대략적인 이해는 필요하다고 생각합니다.(완전히 다 이해하진 않더라도 어떻게 굴러가는지는 이해해야 한다는 소리입니다.) 그리고 중요했던게 채팅 치는 순간 나와 상대방을 구별하는 방법이 필요했습니다. 카톡만 하더라도 나는 노란색 상대방은 흰색 이렇게 정해져있기 때문에 그냥 일자로 쭉 뽑을게 아니었기 때문에 구별해야했습니다. 문제는 웹 소켓에 연결해서 하는 채팅은 자바스크립트로 구별이 가능했지만 이미 디비에 저장되어있는 채팅은 어떻게 구별할지 ..

캡스톤 디자인 : 중고거래 사이트 (개요)

교수님께서 1학기만 캡스톤디자인 하는 것 처럼 말씀하셔서 2학기는 없을 줄 알았는데 2학기도 있었네요... 좀 난감하긴 하지만 한번 해보겠습니다. 1. 왜 중고거래 사이트인지? 생각보다 아주 간단한 이유입니다. 바로 채팅 기능에 대해서 공부해보고 싶었기 때문이죠. 채팅 기능을 구현하려면 웹 소캣을 써야한다는 사실은 알고 있었습니다. 하지만, 웹 소캣을 한번도 안써봤고 한번쯤 써보고싶어서 선택했습니다. 또한, docker에 대해서도 공부해보고 싶어서 겸사겸사 선택했습니다.(docker와 중고거래 사이트를 선택한 이유는 전혀 관계없습니다.) 그럼 카톡은 왜 아니냐. 라고 하신다면 카톡처럼 채팅기능만 들어가있는 (물론 채팅말고도 엄청나게 많은걸 지원한다는걸 알고있습니다. 하지만, 주 기능이 채팅이라 저렇게 말..

캡스톤 디자인 : 간단한 홈쇼핑 만들기 (개요)

티스토리 카테고리 아래 카테고리를 또 나눌 수 있다는 것을 오늘에서야 알았다.(머쓱..) 이미 앞선 카테고리들은 망했으니까 지금이라도 잘 써야겠습니다. (추후에 정리할듯..?) 시작하기전에 Q. 캡스톤 디자인이란? A. 그냥 졸업 작품입니다. 학교에서도 졸업 작품을 좀 멋드러지게 표현하고 싶었나봅니다. 시작하기 전에 (2) Q. 좋은 포트폴리오란 무엇일까요? A. 저같은 애송이가 답변하긴 좀 뭣하지만... 좋은 포트폴리오는 제 생각에 스토리가 있는 포트폴리오라고 생각합니다. 그 이유는 너무 길어서 생략하겠습니다. 스토리라함은 내가 어떤 문제가 있어서 혹은 세간에 어떤 문제가 있어서 그것을 해결하는 프로젝트를 만드는 것입니다. 예를 들어서 내가 뭘 하다가 음...이게 있으면 좋을거같다. 해서 만드는 포트폴..

aws 배포 ec2 (4) : 모놀리식 배포

이번엔 쉘 스크립트를 작성해서 git pull부터 빌드해서 실행하기 까지의 과정을 자동화시키려고 한다. 일단은 이전에 clone에서 받은 프로젝트 폴더로 들어가보겠다. 필자는 chatting이라는 리포지토리 이름을 사용하고 있다. 우선 이 폴더를 sources라는 폴더로 통째로 옮긴다. # sources 폴더 생성 mkdir sources # chatting 폴더를 sources 폴더 내부로 옮기기 mv chatting ./sources/ # sources 폴더로 들어가기 cd sources 그리고 chatting 폴더에 들어가서 gradlew의 권한을 바꿔준다. # chatting 폴더로 들어가기 cd chatting # gradlew의 권한 변경 chmod + ./gradlew # 이전 디렉토리로 복..

DevOps/AWS 2022.08.12

스프링 부트 ec2 배포중 gradlew 빌드 후 Execution failed for task ':test' 에러

몇시간 동안 별에별 짓은 다해봤다. 1. gradle 버전를 바꾸면 된다고 해서 wrapper폴더에 있는 gradle.properties에 버전을 4.10.2로 바꿔보기 2. swap 메모리 4.0기가로 늘리기 3. gradle 깔고 gradle --debug build 하고 재시작 이렇게까지 했는데도 해결 안된 사람을 위해 남긴다. stackoverflow에서 해결방법은 찾았으며 build.gradle에 tasks.withType(Test) { scanForTestClasses = false include "**/*Test.class" } 를 추가하니 정상적으로 빌드가 됐다.

오류해결 2022.08.12

aws 배포 ec2 (3) : 모놀리식 배포

putty로 서버와 연결됐다면 아래의 명령어를 입력하자. # aws corretto 다운로드 sudo curl -L https://corretto.aws/downloads/latest/amazon-corretto-11-x64-linux-jdk.rpm -o jdk11.rpm # jdk11 설치 sudo apt-get install openjdk-11-jdk GitHub Repository에 코드 배포하기 IntelliJ IDEA 기준 GitHub에 Repository로 코드를 배포하는건 매우 간단하다. 위의 메뉴중 VCS - Share Project on GitHub를 누르면 되는데 막상 처음하면 안될것이다. 왜냐면 Git 연결이 안되어있기 때문인데 Ctrl + Alt + S 를 눌러 환경설정에 들어간 다..

DevOps/AWS 2022.08.12

aws 배포 ec2 (2) : 모놀리식 배포

putty를 깔게 되면 이런 화면이 나온다. (설치하는 것은 생략한다) 우선 퍼블릭 IP를 알아야 한다. aws ec2 인스턴스 세부사항에 퍼블릭 IPv4를 복사하자 복사! 먼저 호스트네임을 ubuntu@퍼블릭IPv4를 적는다. 그리고 세션을 저장할 이름을 적고 Save를 누른다. 그리고 SSH에 들어가서 Auth 항목에 들어간다. 브라우저를 클릭하고 아까 우리가 다운 받았던 ppk 파일을 업로드한다. 그리고 Open을 누르면? 접속 완료!

DevOps/AWS 2022.08.12