본문 바로가기

spring9

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.
java spring 커넥션 풀 , jdbcTemplate 1. 컨테이너 초기 설정 또는 1_1 자파 파일로 만들기 @Configuration public class DBConfig { @Bean public ComboPooledDataSource dataSource() throws PropertyVetoException { ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setDriverClass("oracle.jdbc.driver.OracleDriver"); dataSource.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:xe"); dataSource.setUser("scott"); dataSource.setPassword("tiger").. 2020. 8. 13.
java spring 세션 & 쿠키 세션 일반적인 로그인 상태 유지, 장바구니 등의 기능 1. HttpServletRequest @RequestMapping(value = "/login", method = RequestMethod.POST) public String memLogin(Member member, HttpServletRequest request) { Member mem = service.memberSearch(member); HttpSession session = request.getSession(); session.setAttribute("member", mem); return "/member/loginOk"; } 2. HttpSession @RequestMapping(value = "/login", method = Reque.. 2020. 8. 10.
java spring , Controller 설정팁 Member Join ID : PW : MAIL : PHONE : - - LOGIN MAIN @Controller //@RequestMapping("/member") // /lec17/member/memJoin : member가 겹쳐서 있을 때 public class MemberController { // MemberService service = new MemberService(); // @Autowired @Resource(name="memService") MemberService service; // @RequestMapping("/memJoin") //GET 방식일 경우 @RequestMapping(value="/memJoin", method=RequestMethod.POST) // public .. 2020. 8. 9.
java spring , controller & dao & service 객체 1. controller @Controller public class MemberController { // MemberService service = new MemberService(); //지양 // @Autowired //자동주입 @Resource(name="memService") MemberService service; 2. dao //@Component @Repository //자동 주입 가능 public class MemberDao implements IMemberDao { 3. service 컨테이너 설정 안해도 주입 가능 //@Service //(추천)서비스로 컨테이너에 담겨라 //@Service("memService") //@Component //@Component("memService".. 2020. 8. 8.
java spring 스프링 설정 파일 분리 (xml), 범위 하나의 xml 을 기능별로 분리하여 작성할 경우 유지보수, 관리가 쉬워진다. 기능별, DB설정, DB연결이 필요한 작업-기능 등등 분리된 파일을 불러올 때 String[] appCtxs = {"classpath:appCtx1.xml", "classpath:appCtx2.xml", "classpath:appCtx3.xml"}; GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(appCtxs); import도 가능 스프링 설정 파일에서 그렇게 할 경우 import 한 파일만 불러도 된다. GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:appCt.. 2020. 7. 26.
java spring 다양한 의존 객체 주입 (DI) , 초기메서드-destroy메서드 .xml 1. 생성자로 주입 public StudentRegisterService(StudentDao studentDao) { this.studentDao = studentDao; } --> 주입 객체를 먼저 등록하고 로 감싼다. 2. setter 로 주입 public class DataBaseConnectionInfo { private String jdbcUrl; private String userId; private String userPw; public String getJdbcUrl() { return jdbcUrl; } public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public String getUserId() { retu.. 2020. 7. 24.
java spring 프로젝트 생성과 실행 기초 1. 메이븐 프로젝트로 생성 2. pom.xml 4.0.0 spring4 test1 0.0.1-SNAPSHOT org.springframework spring-context 4.1.0.RELEASE maven-conpiler-plugin 3.1 1.8 1.8 utf-8 3. src/main/resources/applicationContext.xml 4. 메인클래스에서 컨테이너에 있는 빈 불러 오기 public static void main(String[] args) { // TransportationWalk t = new TransportationWalk(); // t.move(); //Xml 불러옴 GenericXmlApplicationContext ctx = new GenericXmlApplicati.. 2020. 7. 21.