프로젝트 일기12 프로젝트 마무리 프로젝트를 6/17 자로 종료되었다 그동안 시간에 쫒겨 일기도 제대로 못 썻지만 정리해보려고 한다. websocket 충돌은 아주 가벼운 오류였다. aws 서버에 올려버리니 dto에서 오류가 생겼다 패키지명이나 아예 다르지만 autowired 인지 어디서 오류가 났는지는 몰라도 내 dto에 있는 변수들을 다른 패키지의dto에서 찾고있었다. 시간이 부족해 오류를 찾고 정상 작동하게 만드는 점에만 급급하여 모든 dto에 내 변수들을 추가해 주었다. 그렇게 되니 해결은 되었지만 결국 이유는 찾지를 못했다. 또 새로운 기능을 마지막에 계속 추가하다보니 에러가 끝없이 터졌다. 상황이 안좋아지다가 발표 몇분전에 서버까지 터져버렸고 원래 발표순서를 미루고 미뤄 마지막 순서로 발표했다. 정말 미리 만들고 욕심을 부리지.. 2020. 6. 23. 06/12 통합 채팅을 마무리하고 다른 팀원들이만들 메인 페이지에 붙혀넣어보았다. 하지만 무슨이유인지 모르게 서버에 servlet 오류가 생기면서 실행이 안되었다 오류 로그를 보니 코드가 잘못되서 나온 오류는 아닌 것 같았지만 정말 찾기가 힘들었다. 정확히 어디가 오류인지 나오지 않았고 잘못된거같기는 했지만 알수가 없었다. 그래서 정말 하루종일 찾았지만 찾을수 없었다. 계속 바꾸면서 실행해보다가 pom.xml의 di주입에서 충돌이 났다는것을 알았다. 하지만 di가 많기도 하고 어떤것이 충돌을 불러오고 하는지 몰라서 하나하나 빼고 실행해보면서 찾았다.. 결구 내가 쓰고있는 SpringWebSocket이 충돌을 불러온다는 것을 알았고 내가 쓰고있던 버전에서 이상이 있었다. 그후에 버전을 맞춰주니 에러가 사라졌고 그걸로 해결.. 2020. 6. 13. 06/10 1:1 채팅 완료 stomp와 sockJS를 이용하여 채팅을 구현 뷰페이지와 연동하고 회원 목록 회원번호를 합쳐서 sub를 구현 메시지주고받을때 db연동까지 끝마쳤다 db연동할때 새로고침을 해야하는지 비동기식으로 데이터를 주고받을때 어떻게 구현할지 조금 어려웠지만 ajax를 사용하여 비동기 구현을 완료했다. 더 디테일한 기능을 구현하고 싶은 마음이 많았지만 팀프로젝트이고 기간이 정해져있기 때문에 단체 채팅까지만 구현하고 다른 팀원들의 부분을 도와주려고한다. 단체채팅방은 회원들의 번호를 배열에 저장하고 정렬해 String형으로 변환아여 채팅방 id를 구성하고 다른 회원이 초대됐을때는 roomid를 새로운 회원도 더해 새롭게 구성한다 라고 계획했는데 이게 맞는지 약간 의구심이 든다. 다른 회원이 초대됬을때도 항상 채팅방 번호.. 2020. 6. 11. 0609 ajax 미리 설계한 interceptor로 구현해보려 했지만 생각해보니 될 수가 없었다. 조언을 구하고 구글링을 해본결과 ajax를 이용하여 새로고침없이 동적으로 데이터를 받아 올 수 있었다. ajax를 잘 알지 못했기때문에 생각조차 할 수가 없었고 내일은 꼭 ajax를 이용하여 채팅기능을 마무리하고 실시간 알림과 단체채팅기능등 디테일한 기능을 추가해볼 생각이다. https://github.com/yssy3135/projectchat 2020. 6. 10. 0608 일기 순항중 오늘은 컨트롤 db 단을 설계했던대로 받아서 구현해보았다. view와 연동하는 것도 별문제가 없었고 성공적이였다 하지만 마지막이 걱정이다 전에 고민했던 메시지 db저장시점 또한 옆에 회원 목록을 눌렀을 때 채팅창이 활성화 된다. 그후에 자동으로 내가 채팅하고 싶은 상대와 이전에 채팅했던 내용들이 로딩이 되어야하는데 이 부분이 main화면이 로딩이 될때 내용을 가지고 있다가 출력하는 것 인지 아니면 채팅방이 활성화 될때 db에 접근해 데이터를 가져오는건지 모르겠다. 또한 종료시점에 머리로 미리 설계해본 interceptor를 구현하여 마무리 작업을 해봐야겠다. https://github.com/yssy3135/projectchat 2020. 6. 9. 0607 db연동 채팅 시스템 구현에 있어서 어느정도 틀을 만들었다. 1:1 1:N 통신이 가능하게 하였고 stomp의 sub/pub를 이용하여 구현하였다 sub/pub의 주소는 나와 상대방의 회원 번호를 합쳐만들기로 하였고 작은번호가 앞에 오도록 구현할 것이다. 문제가 생겼다 채팅목록에서 상대방 id를 클릭하면 채팅내용을 불러오도록 할 계획인데 db에 저장을 할때는 언제 저장을 할 것인지가 난감했다. 메시지를 보낼때 마다 저장을 하기에는 너무 무거운 작업이였다 그래서 생각한것이 프로그램 창을 종료하거나 대화창을 종료, 로그아웃할시에 intercepter를 이용해서 내용을 저장해보려고 구상했다. 또한 생각이 확실하지 않은 한가지는 메시지를 불러오고 저장을 할 때 새로 전송하고 받은 메시지만 더해서 저장이 가능한가? 아니면.. 2020. 6. 8. 0603 프로젝트 일기 어제 못했던 stomp통신을 성공했다. stomp에 대한 통신 개념 흐름을 이해하고 정리했다. https://y00ns00.tistory.com/41 spring websocket + stomp /app은 메세지를 처리할 수 있도록 서버측의 annotated method 로 흐르도록 하기 위한 라우팅 /topic , /queue 는 broker로 흐르도록하기 위한 라우팅 STOMP는 여러 prefix를 통해 흐름을 결정하는데 자주쓰인p y00ns00.tistory.com 하지만 부트 예제를 보고 바꾸다 보니까 boot에서만 지원하는 annotation들이 스프링에서는 어떻게 적용해야 할지 낯설면서 너무 어려웠고 조금 더 공부해야겠다. spring에서는 많은 annotation들이있는데 아직 모르는 부분이.. 2020. 6. 4. 0602 프로젝트 boot....stomp 저번에 이어서 websocket과 stomp를 이용하여 채팅을 구현해보려고하였다. 하지만 구글링을 더 열심히 해도 boot를 사용한 예제가 대다수 였다. 그래서 boot를 잘모르지만 boot 의 구조를 이해해서 예제를 spring설정으로 바꾸는 작업을 해보려서 애썻다. boot는configuration annotation을 이용하여 설정하지만 spring은 xml을 이용하여 설정했다. 방식을 찾다가 너무 예제가 없어서 좌절했지만 어느정보 성공했다. 하지만 문제가 끝이 아니였다 에러가 터졌는데 어디서 터졌는지를 모르겠다 애초에 boot 구조를 잘 모르고 해석을 한다는게 어려운 일이었다. 내일은 꼭 성공하여 소켓통신까지 구현하는게 목표이다. https://github.com/yssy3135/projectchat 2020. 6. 2. 0601 프로젝트일기 stomp!!! 본격적으로 프로젝트 프로그래밍이 시작되었다 나는 websock을 이용하여 채팅을 구현해볼생각이였지만 강사님이 stomp를 사용하는 방식을 추천해주셨다. 예제를 참고하여 구현해보려고 했지만 spring-boot를 사용하는 예제들 밖에 안보였고 포기함고 sockJS를 통해 해보려고 했지만 잘 구현되지 않았다. socket을 채팅방 단위로 만들어 주어야하는데 이것이 첫번쨰 문제였고 새로고침을하면 새로운 소켓이 접속이 되는것이 였다. spring websocket을 배우지 않은 상태로 구글링을 하며 구현해 보려고 하니깐 막히는 부분이 너무 많았고 이해가 되질 않았다. 그래도 포기하지않고 내일은 stomp예제를 꼭 찾아서 구현해봐야겠다. 2020. 6. 2. 이전 1 2 다음