JAVA 14

Thread 생명주기 및 주요 메서드

네트워킹은 스레드를 이용하여 소켓을 생성한다. -> Web Server에서 N개의 클라이언트에게 서비스를 제공해줄 때 스레드를 사용하여 서비스를 제공한다 (멀티 스레드) 스레드의 상태 6가지 (생명주기) - JVM이 TCB (Thread Controll Block ) 관리하는 곳을 통하여 Thread 정보를 관리 1. NEW - Thread를 생성 (실행할 준비는 안됨) 2. RUNNABLE - 실행 준비중 상태 혹은 실행중인 상태, JVM에서 RUNNABLE 상태인 스레드를 사용함 (start 메소드 호출) 3. WAITING - 대기 상태, wait() 메소드 호출 시 WATING 상태가 됨, notify() 메서드 호출 시 대기상태 스레드를 동기화 하여 재 시작 4. TIMED_WATING - 시간..

JAVA 2022.05.16

Socket Programming

소켓 (Socket) 이란? - 네트워크 상에서 수행되는 두 프로그램 간 [ (EX) Client -> Server ]의 양방향 통신 링크의 한쪽 끝 단을 의미한다. - 특정 포트 번호와 연결되어 있다 -> TCP에서 데이터를 보낼 응용 프로그램을 식별할 수 있다. - 서버 소켓과 클라이언트 소켓으로 분류 할 수 있다. • 통신 방식 - 서버 IP와 서버 Port를 가진 클라이언트 서버에서 서버 Port를 가진 Server Socket으로 접속 신호를 보낸다 서버 소켓은 또 다른 소켓을 생성하면서 클라이언트에서 요청을 보냈다 라는 인식을 하게 된다. - 서버 소켓은 클라이언트에서 정상적으로 접속이 되었는지 여부만 파악하고 새로 생성된 소켓에서 실제 데이터들이 통신 된다. - Clinet Socket ->..

JAVA 2022.05.10

InetAddress 클래스

IP 주소를 다룰 수 있는 InetAddress 클래스 브로드캐스트 - 하나의 송신자가 여러 수신자에게 데이터를 전송하는 방식 유니캐스트 - 송신자와 수신자가 1대1로 대응이 되는 데이터 전송 방식 멀티캐스트 - 하나 이상의 송신자들이 하나 이상의 여러 수신자에게 데이터를 전송하는 방식 EX) 화상회의 InetAddress 내장 메소드 URL (Uniform Resource Location) - 인터넷에 존재하는 서버들의 자원에 접근할 수 있는 주소 https:// search.naver.com/ search.naver ?where=nexearch&sm=top_sug.pre 프로토콜 호스트명(포트) 파일명 쿼리 URL 클래스 내장 메서드 URL.openStream() 메서드를 통한 url를 통해 얻은 정..

JAVA 2022.05.05

이메일 보내기 (SMTP 방식)

SMTP (Simple Mail Transfer Protocol) 프로토콜 이란? - 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜 - 송신자와 수신자 간의 연결이 성립되면 이메일을 보낼 수 있다. 사용중인 이메일 (필자는 naver 사용) 에서 SMTP 설정 사용으로 변경 javax.mail pom.xml javax.mail mail 1.4.7 Email Properties 설정 Properties props = new Properties(); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.host", "호스트 정보"); props.put("mail.smtp.ssl.enable", "true"); props.put("mai..

JAVA 2022.04.03

Retrofit2 (Java)

Retrofit 이란 - 네트워크 통신 라이브러리 OKhttp 기반으로 만들어진 서버와 클라이언트 간 http 통신을 위한 라이브러리 - 다른 서버에서 http통신을 통하여 데이터를 가져오기 위하여 필자는 사용 사용방법 maven pom.xml 설정 com.squareup.retrofit2 retrofit 2.6.1 com.squareup.retrofit2 converter-gson 2.4.0 - retrofit : Retrofit 라이브러리 - converter-gson : Json데이터를 Java객체로 자동 변환하여 데이터를 넣어주는 라이브러리 import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.GET; import ret..

JAVA 2022.04.02

JSON 변환 라이브러리 (Gson,Jackson)

Gson과 Jasckson 는 둘 다 Java 객체를 JSON을 표현으로 변환할 수 있도록 사용하는 라이브러리이다 Java 객체 -> JSON : 직렬화 (Serialize) JSON -> Java객체 : 역직렬화 (Desrialize) 간단히 정의하자면 이렇지만 상세한 내용은 따로 정리 해보도록 하자 (중요한 개념이므로) 여기서 JSON이란?! - JavaScript Object Notation의 약자로 key : value 값으로 데이터를 통신하는 표현 방법이다 - 데이터를 표현 하는 방식은 XML과 JSON 유형 주로 두가지가 있지만 특정 언어에 구애받지 않으며 간단한 데이터 표현 방식을 사용하는 JSON 형태의 표현방식을 많이 쓴다. • Gson 이란? - Google에서 만든 Java 객체와 J..

JAVA 2022.03.17

Optional 클래스

Optional 클래스란 ? (java.util.Optional) - 개발을 하다보면 심심치 않게 NullPointException(NPE)에러가 발생하는것을 볼 수 있다. 객체가 값이 없이 null을 참조할 때 발생하는 에러인데, java8 버전 이전에는 해당 에러를 잡아주기 위해서는 null값을 체크해주는 구문을 계속해서 작성하여 null 체크를 해주어 코드가 길어지며 가독성이 좋지 않은 현상들이 많이 발생했다. 이러한 현상들을 개선해주는 클래스가 java8 버전에서 나온 Optional 클래스이다. - Optional는 “존재할 수도 있지만 안 할 수도 있는 객체”, 즉, “null이 될 수도 있는 객체”을 감싸고 있는 일종의 래퍼 클래스이다 - Optional 클래스로 객체를 래핑하여 사용하게 되..

JAVA 2021.07.14

일급 컬렉션 (First Class Collection)

일급 컬렉션 (First Class Collection) 이란? - Collection을 Wrapping 하면서, 그 외에 다른 멤버 변수가 없는 상태를 뜻한다. - 일급 컬렉션이라는 단어는 소트웍스 앤솔로지의 객체지향 생활체조 파트에서 언급 되어있다. " 일급 콜렉션 사용 이 규칙의 적용은 간단하다. 콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈이다. 필터가 이 새 클래스의 일부가 됨을 알 수 있다. 필터는 또한 스스로 함수 객체가 될 수 있다. 또한 새 클래스는 두 그룹을 같이 묶는다든가 그룹의 각 원소에 규칙을 적용하는 등의 동작을 처리할 수 있다. 이는 인스턴스 변수에 대한 규칙의 확실한 확장이..

JAVA 2021.07.13

컬렉션 프레임워크

컬렉션 프레임워크란? - 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함 한 것 - 자바 컬렉션은 객체를 수집해서 저장하는 역할 사진 참조 : https://coding-factory.tistory.com/550 [Java] 자바 컬렉션 프레임워크(List, Set, Map) 총정리 컬렉션 프레임워크란? 배열을 사용하다 보면 여러가지 비효율적인 문제가 생깁니다. 가장 큰 문제점은 크기가 고정적이라는 것입니다. 배열의 크기는 생성할 때 결정되며 그 크기를 넘어가게 coding-factory.tistory.com Collection 유형 • List 인터페이스 (ArrayList, Vector, LinkedList 클래스 들은 Li..

JAVA 2021.07.10

프로세스와 쓰레드

프로세스(Process) 란? - 실행 중인 하나의 애플리케이션 - 여러개의 쓰레드를 가지고 있을 수 있다 - 하나의 앱이 하나의 프로세스 쓰레드(Thread) 란? - 하나의 프로세스가 두 가지 이상의 작업을 처리 할 수 있도록 해주는 기능 - 하나의 스레드가 예외를 발생시키면 프로세스 자체가 종료될 수 있어 다른 스레드에 영향을 미치게 되므로 예외 처리 필수로 해야한다. • 싱글 스레드 - 스레드가 1개 인것 • 멀티 스레드 - 스레드를 N개 이상 사용 - 실행중인 스레드가 하나라도 있다면, 프로세스는 종료되지 않는다. 스레드 생성 Runnable task = new Task(); Thread thread = new Thread(task) class Task implements Runnable { c..

JAVA 2021.07.09