Dev22 2022 스마일게이트 윈터데브캠프를 통해 성장하기 4 - 구현 : 접속상태 서비스 개요 2022 스마일게이트 윈터데브캠프를 통해 성장하기 3 - 구현 : 채팅 서비스 (tistory.com) 앞 글에서 채팅 서비스를 구현했는데요! 이번에는 접속상태 서비스를 구현하여 제가 구상한 아키텍처를 참고하여 서비스들간 통신을 하려고 합니다. Flow는 다음과 같습니다. 1. 애플리케이션에 접속시 자신의 접속 상태를 업데이트 시킵니다. (on & off) 2. 자신의 접속상태를 자신과 친구관계인 유저에게 자신이 접속했다는 정보를 소켓을 통해 전달합니다. 3. 채팅 메시지 전송시 채팅 서버에서 접속상태를 접속상태서버를 확인하고 경우에 따라 처리합니다. 3.1. "online" 소켓을 통해 채팅메시지 전달 3.2. "offline" 푸시서버에 채팅 메시지 전달 1. 접속상태 서비스 1.1. 웹소켓 메.. 2023. 3. 1. 2022 스마일게이트 윈터데브캠프를 통해 성장하기 3 - 구현 : 채팅 서비스 Implementation 제가 맡은 파트는 채팅서버, 접속상태서버입니다. 전체 계획으로는 2주간 채팅서버, 1주 접속서버, 1주 통합, 성능 테스트, 1주 최종발표준비로 세웠습니다. 1/22~1/28 (1주) : 채팅 서버 29 (2주) : 채팅 서버 5 (3주) : 접속서버 12 (4주) : 통합, 성능 19 (5주) : 최종발표준비 2주간 개발 1. 서버 세팅 Spring Initializr 2. 서버 환경 Spring Boot : 2.7.8 Java : Jdk 11 build : Gradle 설정파일 : application.yml 인텔리제이 : 소스 코드 문서 UTF-8 디펜던시 Spring Actuator 서비스의 상태 정보를 실시간으로 모니터링 가능 Lombok Spring Boot DevT.. 2023. 2. 28. 2022 스마일게이트 윈터데브캠프를 통해 성장하기 2 - 프로젝트 설계와 마음가짐 구현에 들어가기전 대규모일 경우 애자일 개발 프로세스로 짧은 주기로 나눠 반복적으로 개발해도 되지만 소규모 단기간 프로젝트이기 때문에 폭포수 개발처럼 SDLC를 따라 요구분석 - 설계 - 구현 - 테스트 순으로 개발할 것 전체적으로 MSA구조로 인증,유저, 알림, 채팅, 접속상태 마이크로서비스가 있는데 제가 맡은 부분인 채팅, 접속상태 서비스 위주로 작성겠습니다. 1. 요구 분석 프로젝트 개요 소켓 통신을 활용한 메신저 앱 개발 1:1 채팅과 그룹 채팅 모두 지원하는 메시징 앱 서비스로 "페이스북 메신저"를 벤치마킹하여 로직을 참고하였습니다. 기술 스택 Java11 Spring Boot 2.7.8 kafka mongoDB Gradle Git JUnit5 AWS Docker 주요 기능 ● 채팅 서비스 1:.. 2023. 2. 26. 2022 스마일게이트 윈터데브캠프를 통해 성장하기 1 - 좋은 목표는 좋은 실행에서 나온다. 팀 프로젝트 시작 윈터데브캠프에서 개발뿐만 여러 활동을 하면서 원래 알고 있던 부분에 대한 정의를 깨는 등 새롭게 깨달은 것들을 기록하고 당시에 어떻게 생각했는지 그러한 생각들이 어떻게 변했는지 적으면서 생각정리를 할 것입니다. PMP 작성에 목표를 세우는 데 있어서 멘토님 강의가 있었습니다. 일반적으로 생각하는 목표는 이러했습니다. ... 구현 능력 향상 .. 이해하기 .. 적용하기 ..블로그에 기록하기 하지만 멘토님의 강의에서 정의하는 목표는 달랐습니다. 개발자로 성장하기 위해서는 프로젝트 경험라는 실행과 목표라는 데이터를 가지고 경험하는 과정을 거친다 그 속에서 문제해결, 깨달음을 얻고 성찰한다. 그런 것들을 회고하면서 성장을 하는 파이프라인을 가진다. 개발자는 성장을 위해 실행이라는 프로젝트 경험.. 2023. 2. 25. [프로젝트] Spring Boot + JSP 시큐리티 로그인, 권한부여, url 접근 제어, 시큐리티 @Configuration @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) // @PreAuthorize("isAuthenticated()") 사용 public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private UserFailHandler userFailHandler; @Bean public BCryptPasswordEncoder encodPwd() { return new BCryptPasswordEncoder(); } @Override protected void configure(HttpSecurity http) thro.. 2022. 8. 1. [프로젝트] Spring Boot + JSP를 이용한 함께 부산 여행할 사람을 구하는 웹 사이트-이슈 MySQL 에 AI 가 걸려있는 테이블 조회시 int 값에 문제 발생 -> Integer 타입으로 해결 java.lang.IllegalArgumentException: Can not set int field com.tour.app.domain.ReviewBoardPK.num to org.hibernate.id.IdentifierGeneratorHelper$2 @IdClass(ReviewBoardPK.class) public class ReviewBoard { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int num; @Id private int boardId; @Setter @Getter @NoArgsConstructor public.. 2022. 8. 1. [프로젝트] Spring Boot + JSP를 이용한 함께 부산 여행할 사람을 구하는 웹 사이트-4-JSP 페이지 JSP를 이용한 화면 구성과 처리 메인 홈 http://localhost:8888/ 카드 형식으로 TourArea 출력 mainHome.jsp ${tourareaDTO.title } ${tourareaDTO.contents_name } Tour c:forEach : c태그를 통해 반복 값 표현 : ${ .. } 그전에 JSP 에서 DTO 객체를 사용하고 싶다면 @Controller 클래스에서 해당 페이지가 맵핑된 메소드에 Model 객체를 이용해 담아놓아야된다. model.addAttribute("tourareaDTOs",tourareaDTOs); TourReviewDTO @Data @NoArgsConstructor @AllArgsConstructor public class TourReviewDTO { .. 2022. 7. 31. [프로젝트] Spring Boot + JSP를 이용한 함께 부산 여행할 사람을 구하는 웹 사이트-3-JPA JPA 를 통해 Entity 생성 E-R Diagram Member @Getter@Setter@Entity @NoArgsConstructor public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="userid") private int userid; //필수, 사용자 ID @Column(nullable=false) private String name; //필수, 성명 private String nickName; //필수, 별명 private String password; //필수, 패스워드 private String gender; //필수, 성별 private String email; //필수, 메.. 2022. 7. 31. [프로젝트] Spring Boot + JSP를 이용한 함께 부산 여행할 사람을 구하는 웹 사이트-2-요구분석, 설계 (간단한) 요구분석 1. 개발환경 프로젝트 개발환경 스프링부트 버전 : 2.6.7 java 버전 : 11 DBMS : MySQL 8.0 2. Use Case Diagram 3. 기능적 요구사항 3.1 기능 리스트 기능 식별자 기능명 액터 비고 UC-01 회원 관리 1 로그인 비회원, 관리자 2 로그아웃 회원, 관리자 3 회원 가입 비회원 4 회원정보 조회 회원 내프로필 5 회원정보 수정 회원 6 회원탈퇴 회원 7 회원리스트보기 관리자 8 회원삭제 관리자 UC-02 여행 관광지 관리 9 여행 관광지 등록 회원 10 여행 관광지 수정 회원 11 여행 관광지 삭제 회원 12 여행 관광지 목록보기 비회원, 회원 13 여행 관광지 구군별, 테마별 보기 비회원, 회원 14 여행 관광지 상세보기 비회원, 회원 15 .. 2022. 7. 30. [프로젝트] Spring Boot + JSP를 이용한 함께 부산 여행할 사람을 구하는 웹 사이트-1-기획 몇 주간 배운 Spring Boot , JPA를 이용한 CRUD, 시큐리티를 적용해 보는 팀 프로젝트 시작 기간 : 2022년 05월 16일~ 프로젝트 기획 함께해요 부산여행 기간 : 5월 09일(월) ~ 5월 10일(화) 2022. 7. 30. 이전 1 2 다음