목록전체 글 (157)
알고보면코딩천재
실행되면 성(서버) 만들어진다. 1. Finish Class 생성 Servlet - 아파치 톰켓 제공 메인 실행시 @-- 어노테이션 JVM이 보고 JVM의 주석 런타임시 주석으로 확인하고 메서드를 때린다. 8080 포트 이미 쓰고 있다 오라클. 포트 바꾸러 가기 console을 보고 확인해보자 웹서버 - 자바파일을 들고 있으면서 동작 return값을 소켓이 잡아서 bufferdwrite flush 해주는구나 웹 브라우저로 요청 layer7 내가 만약에 요청했는데 브라우저로 요청을 안했으면 저렇게 해석이 안된다 어떤 layer7계층으로 요청했는지에 따라 응답을 달리한다. 아 꿀잼 ㅎ 주소를 요청해서 응답을 받는 것! 소켓으로 하면 어렵다 sevlet으로 하면 또 어렵다 직접 구현을 해야하니까 Servlet..
Type - 의존성 관리도구 (라이브러리 파일 관리) Gradle 선택 Group - 자기회사 도메인을 거꾸로 적는다 protocal Artifact - 프로젝트명 Version - 라이브러리 체크 다운로드 중에 아무것도 건들지 말것 라이브러리 관리 써드파티 라이브러리 넣는법 https://mvnrepository.com/ build.gradle에 복붙 저장하고
VScode는 이미 설치가 되어 있다.. 폴더열기 확장 프로그램 설치 STS 설치 - 스프링 전용 툴 쉘언어 - 커널 jar파일 압축풀고(터미널에서 d: jar..-jar..ps?뭐엿지 ㅎ) exe파일 설치 모르는거 끄고 -폰트설정, size 글자 좀 크게!,, -인코딩설정 다크 모드 설정
관리용이, 협업용이 자바 - 웹서버 소켓으로 만들면 됨. url 요청하면 html 파일안에 있는 내용을 주고 연결을 끊어 stateless 자바 - 소켓통신 - 웹 (http프로토콜을 지켜야함) - 라이브러리(Servlet -소켓통신에서 http프로토콜이 지켜진 것) Servlet(자전거)가지고 노니까 사용하는 방법이 다 달라 그래서 나온게 EJB(틀) -(Servlet) - EJB(프레임워크) -> gov -> spring (자바 세상에,,, 따뜻한 봄이 왔ㄸr,,,,but,,) -> springboot spring은 배낭(라이브러리)이 무겁고 springboot 배낭이 가볍다 삼성, LG, SK, 포스코 같은 큰 회사들이 EJB를 가지고 커스터마이징해서 각자의 프레임워크를 가진다 -> GoV (전자정..
HTTP 통신과 SOCKET 통신의 비교 HTTP 통신 -Client의 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료 특징 -Client가 요청을 보내는 경우에만 Server가 응답하는 단방향 통신 -Server로부터 응답을 받은 후에 연결이 바로 종료됨 -실시간 연결이 아니고, 필요한 경우에만 Server로 요청을 보내는 상황에 유용하다. -요청을 보내 Server의 응답을 기다리는 어플리케이션의 개발에 주로 사용된다. SOCKET 통신 -Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식 특징 -Server와 Client가 계속 연결을 유지하는 양방향 통신 -Server와 Client가 실시간으로 데이터를..
전이중 통신이란? 스레드의 핵심은 메서드! 버퍼가 두개가 걸려있어야 한다. 메인스레드 - 쓰는 거 새로운스레드 - 받는 거 Thread t1 = new Thread(); t1.start(); 내부클래스로 짠다. class ReadThread implements Runnable { @Override public void run() { try { while(true) { String msg = br.readLine(); System.out.println("받은 메시지 : "+msg); if(msg.equals("싸이코::bye")) { break; } } } catch (Exception e) { e.printStackTrace(); } } } br 오류 나는 이유 init()에 만들어 있기 때문에 Buff..
3. 서버는 read만 하고 있다. while문 write도 하고 싶으면 스레드! 자바는 cpu가 일하는 연산장치 - 메인 스레드를 들고 있다. 멀티 프로세스 내가 두개면 cpu가 하나 더 필요하다 내가 하난데 두개의 일을 하고 싶으면 스레드로 쪼개서 왔다갔다 하면 된다.(동시에 하는 건 아님)-타임 슬라이싱 왔다갔다= context switching 스레드는 속도가 아니라 ux를 위해서 쓰는 것 스레드마다 context기록 - meta data 메타 데이터라고 한다. 자바는 최초에 실이 하나가 있다 - 메인 스레드 실이 만들어진 시점부터 새로운 스레드 진행 + 메인 스레드 진행 (왔다갔다하면서) 새로운 스레드도 메인 메서드를 들고 있다. 그 메서드의 길이가 스레드의 길이. 하나의 스레드라도 돌고 있으면..
서버 종료하는 프로토콜을 만들어보자 package sock.ex03; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class MyServerSocket { ServerSocket serverSocket; public void init() { System.out.println("서버 시작---------------"); try { serverSocket = new ServerSocket(10000); // 0~65525 이중에서 0~1023 well known port 8080,..