Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자동차수리시스템
- NestedFor
- 사용자예외클래스생성
- 인터페이스
- 다형성
- 예외처리
- 컬렉션 타입
- 객체 비교
- 제네릭
- EnhancedFor
- 참조형변수
- 한국건설관리시스템
- 정수형타입
- GRANT VIEW
- 집합_SET
- abstract
- 환경설정
- 예외미루기
- exception
- 오라클
- 어윈 사용법
- 생성자오버로드
- 대덕인재개발원
- 자바
- cursor문
- 메소드오버로딩
- 컬렉션프레임워크
- Java
- 추상메서드
- oracle
Archives
- Today
- Total
거니의 velog
(19) 보강 12 본문
* WebSocket (Node에서 많이 씀)
- 기존의 단방향 통신(http -> server)
- pooling : setTimeout, setInterval로 주기적으로 서버에 요청을 보냄. 약간의 사기침
- 새로운 양방향 프로토콜이 필요하다 해서 나온 것이 웹 소켓. 2012년 즈음...
- 새로운 기술이라고 일부 브라우저만 지원하는 바람에 SockJS가 나온 것. 이제는 의미가 없다(거의 다 지원)
- new Websocket(); 으로 사용 가능.
* end-point : 접수창고. 중개소라고 생각하면 된다.
- /ws-chat으로 만들었다면, 여러 명의 접속자가 생길 수 있는데, 접속자 끼리는 대화를 할 수 없다. (P2P 프로토콜 이용시 가능)
- 서버를 경유해야 채팅이 가능하므로 그런 의미에서 중개소인 것.
* 웹 소켓 Session은 프로토콜을 WS라고 사용한다. Http Session에 대응하는 것은 Https로 대응. 즉, 세션이 다르다는 말.
- Https 를 WS에 담기 위해 들어가는 것이
[ websocket-context.xml ]
<bean id="chatHandler" class="패키지명.ChatHandler" />
<websocket:handlers allowed-origins="*">
<websocket:mapping handler="chatHandler" path="/ws-chat" />
<websocket:handshake-interceptors>
<bean class="org.springframework.web.socket.server.support.HttpSessionHandshakeInterceptor" />
</websocket:handshake-interceptors>
</websocket:handlers>
* AJAX로 댓글을 달기 등의 행위를 하고 컨트롤러에서 OK 사인이 떨어지면 websocket.send("중계소") 에 알리는 구조를 잘 사용해 보자.
- SPA로 페이지 이동이 없게 비동기식으로 처리해야 한다. 페이지 전환시 자바스크립트는 사라지기 때문.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- VO와 테이블컬럼명에 있는 언더바 대응 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!-- 오라클 Nullable 컬럼 대응 -->
<setting name="jdbcTypeForNull" value="VARCHAR"/>
</settings>
<typeAliases>
<typeAlias type="kr.or.ddit.users.login.vo.MemberVO" alias="memberVO"/>
<!-- 양이 많아지면 패키지로 선택 -->
<!--
해당 경로에 VO가 대문자로 자동 등록 된다.
<package name="kr.or.ddit.vo" />
-->
</typeAliases>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p: %c - %m%n" />
</layout>
</appender>
<!-- Application Loggers -->
<logger name="kr.or.ddit">
<level value="debug" />
</logger>
<p>디버깅 ${myName}</p>
<h1>에휴...</h1>
<script>
var myName = "소현짱"ㅣ
alert(`체킁1 : ${myName}`); // Spring EL(JAVA) 과 자바스크립트 Template literals 는 문법이 일치한다.
alert(`체킁1 : \${myName}`); // 자바스크립트 Template literals 는 문법으로 인식하게 하는 방법
// JSP -> JAVA로 바뀌고(서블릿) -> 실행 -> 브라우저로 전달 -> HTML/CSS/JS가 맨 나중에 실행됨
</script>
'대덕인재개발원_final project' 카테고리의 다른 글
(21) 웹 소켓 세팅 (1) | 2024.02.01 |
---|---|
(20) 토요일 수업 4 (0) | 2024.01.13 |
(18) 토요일 수업 3 (0) | 2024.01.08 |
(17) Tomcat Servers 설정 (1) | 2024.01.05 |
(16) 보강 11 (0) | 2024.01.05 |