본문 바로가기

코딩도전기/JAVA8

Interceptor / RequestDispatcher - forward() VS Response - sendRedirect() Interceptor Interceptor : 클라이언트의 요청 전, 후 특정 작업을 처리하고자 할 때 사용하는 기능 ex) 로그인 처리, PC/모바일 분기 처리 등 AOP의 @Around와 비슷한 성격 AOP는 메소드 단위 (코드)로 설정, 인터셉터는 특정한 URL 단위로 설정 Filter : 주로 인코딩 처리 시 사용(선처리만 가능) 실행순서 : Filter > DispatcherServlet > Interceptor > AOP RequestDispatcher/forward() RequestDispatcher : 전달 받은 요청을 다른 리소스(servlet, html, jsp)로 넘겨주는 역할을 하는 인터페이스 forward() : 요청에 의해 컨테이너에서 생성된 request와 response를 다.. 2023. 12. 21.
CODO Day31_JAVA(Network-Sender&Receiver) Sender & Receiver Server와 Client만 존재할 경우 요청&응답이 1회성으로 끝남 계속해서 요청과 응답을 받기위해 Sender와 Receiver 사용 Server 와 Client 1:1 Chat ChatServer package chap02.ex06; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class ChatServer { public sta.. 2023. 3. 17.
CODO Day30_JAVA(Network) JAVA Network Network는 서로 다른 computer끼리 연결되어있는 망을 의미 Computer가 사물(Thing)로 변화하면서 IOT(Internet Of Things)가 됨 / ex) 인터넷 냉장고 등 client는 server를 찾아가 특정한 목적을 이루기위해 request를 하고 response를 받음 서로 다른 computer끼리 연결하기 위해서는 주소가 필요함 IP Port Domain 211.147.68.35 :8080 www.java.com PC 주소 web에서 연결할 주소 찾아오기 쉽도록 지어준 이름 IP 주소 얻기 java로 IP 주소 가져오기 local IP 얻기 InetAddress ia = new InetAddress.getLocalhost( ); domain으로 IP.. 2023. 3. 16.
CODO Day29_JAVA(Thread 제어) Thread 제어 Thread는 Round Robin 방식을 사용하여 빨리 처리한 Thread가 다음 일을 받는 방식 먼저 시작했다고 먼저 끝나지 않기 때문에 Thread를 여러개 실행하다 보면 순서가 제멋대로임 Thread는 여러일을 동시에 주기적으로 처리해 줄 수 있으나 순서를 제어하기 힘 Synchronized(동기화) Thread는 memory를 공유하기 때문에 객체 간의 데이터 간섭이 일어남 한 Thread가 사용하고 있 데이터를 다른 Thread가 사용하여 값이 바뀔 수도 있음 그래서 한 Thread의 작업이 다 끝나기 전에는 아무도 접근하지 못하게 하는 것이 동기화 예) Vector, HashTable Synchronized 방법 Synchronized method : 오직 하나의 스레드만 .. 2023. 3. 15.
CODO Day29_JAVA(Multi Thread) Multi Thread Thread는 어떤 program을 실행하게 해주는 원동력 대표적으로 main(String[] args) 는 thread를 동작하게 해주는 method(없으면 실행X) Process와 Thread의 관계 Process는 1개 이상의 Thread로 구성되어 있음 가장 대표적인 차이는 memory Share 여부 Process 간에는 memory Share가 되지 않으나 Thread 간에는 가능 Process가 하나의 웹 브라우저라고 가정하면 Thread는 브라우저 안에 열려있는 탭으로 볼 수 있음 웹 브라우저는 하나의 process로 동작하지만, 각 탭은 각각의 thread로 동작하기 때문 각 탭에서는 동시에 여러 작업이 이루어지지만 하나의 브라우저 창에서 같은 자원을 공유함 Mul.. 2023. 3. 14.
CODO Day13_JAVA(Overload/멤버 호출/Static/Final/Import/접근제한자) Overload* 생성자 overload : 같은 이름으로 여러개의 생성자를 만드는 것 - 생성자 이름은 class 이름과 같아야하기 때문에 원칙적으로 1클래스 1생성자임 매개변수의 개수나 형태가 달라야 함 package chap04.ex06.overload; public class NoteBook { String name; String color; int price; //노트북을 만들 때 다음의 경우가 있다 //1. 일단 만들어 놓는 경우 public NoteBook() { //생성자 } //2. 모델명을 만들면서 지정하는 경우 public NoteBook(String name) { //생성자 this.name = name; } //3. 모델명과 가격을 지정하는 경우 public NoteBook(Str.. 2023. 2. 17.
CODO Day12_JAVA(type/method/문자열비교/switch/while/배열/클래스(API/Member(생성자)) Type 최소/최대 값 public class MinMax { public static void main(String[] args) { System.out.println("int 최소값 : "+Integer.MIN_VALUE); System.out.println("int 최대값 : "+Integer.MAX_VALUE); System.out.println("long 최소값 : "+Long.MIN_VALUE); System.out.println("long 최대값 : "+Long.MAX_VALUE); System.out.println("float 최소값 : "+Float.MIN_VALUE); System.out.println("float 최대값 : "+Float.MAX_VALUE); System.out.pri.. 2023. 2. 16.
CODO Day11_JAVA(객체지향언어/변수/scope/casting) JAVA - 객체 지향적 프로그래밍 언어 객체지향언어(Object Orient Language) : 남의 소스를 부품처럼 가져와 편리하게 사용하도록 설계한 언어 이식성이 높다.(한번의 컴파일로 window, Linux, IOS 모두 실행 가능) OPEN SOURCE 라이브러리가 풍부 JAVA 설치 JAVA SDK : https://corretto.aws/downloads/latest/amazon-corretto-11-x64-windows-jdk.msi JAVA SE 11 을 다운로드 후 설치 하자 내 PC > 속성 > 고급 시스템 설정 > 환경변수(어떤 위치에서 부르던 나타나도록 설정하는 것) > 새로 만들기 JAVA_HOME 이라는 변수를 만들어 자바 설치 폴더 지정 이후 path 선택 후 편집 버튼... 2023. 2. 15.