관리 메뉴

거니의 velog

(19) 보강 12 본문

대덕인재개발원_final project

(19) 보강 12

Unlimited00 2024. 1. 8. 09:33

* WebSocket (Node에서 많이 씀)

- 기존의 단방향 통신(http -> server)

- pooling : setTimeout, setInterval로 주기적으로 서버에 요청을 보냄. 약간의 사기침

- 새로운 양방향 프로토콜이 필요하다 해서 나온 것이 웹 소켓. 2012년 즈음...

- 새로운 기술이라고 일부 브라우저만 지원하는 바람에 SockJS가 나온 것. 이제는 의미가 없다(거의 다 지원)

- new Websocket(); 으로 사용 가능.

https://e-7-e.tistory.com/42

 

초간단 WebSocket 채팅

Http(Https) 프로토콜은 단방향이당. 곧 클라이언트 request(요청)에 서버가 response(응답) 하면 끝이당. 클라이언트만 요청할 수 있공, 서버는 요청할 수 없당. 뭔가 불편하당. 그래서 나왔당. WebSocket

e-7-e.tistory.com


* 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로 페이지 이동이 없게 비동기식으로 처리해야 한다. 페이지 전환시 자바스크립트는 사라지기 때문.


https://e-7-e.tistory.com/67

 

MyBatipse

mybatipse 플러그인은 참 좋은뎅, 1.2.5버젼은 sts3.9.X를 망가 뜨린당~~ ㅠㅠ 귀찮지만 수동으로 1.2.4 버젼으로 낮추어 설치하장 아래 파일은 sts 압축 푼 디렉토리 아래의 feature 폴더에 아래 파일은 plug

e-7-e.tistory.com

<?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