본문 바로가기

Java/공부공부

(13)
[Java] 자바 HTTP통신 (HttpURLConnection) [ URL 설정 ]요청을 보낼 url객체 생성하고,  openConnection() 메소드 호출하면해당 URL에 대한 연결 객체를 반환한다. 이 반환된 객체를 HttpURLConnection 로 캐스팅하면  네트워크 연결 준비 완료.URL url = new URL("https://example.com");HttpURLConnection con = (HttpURLConnection) url.openConnection(); // 연결 열기* 실제 네트워크 연결은 getInputStream(), getOutputStream() 메서드 호출 시점.  [ 네트워크 옵션 ] (메서드, 헤더, 입출력 사용 설정)con.setRequestMethod("POST"); // "GET", "PUT", "DELETE..
[Java] 자바 HTTP 통신_GET요청 (RestTemplate) * RestTemplateSpring에서 제공하는 동기식 HTTP 클라이언트 (요청에 대한 응답을 수신할때까지 대기) - GET, POST, PUT, DELETE, HEAD, OPTIONS 등의 HTTP 메서드 지원.  (GET요청)- getForObject 메소드 RestTemplate request = new RestTemplate(); String url = "http://example:8080"; String response = restTemplate.getForObject(url, String.class); System.out.println("Response: " + response);=> url에 get요청을 보내면 지정된 타입의 객체로 응답 반환. (위의 예시에서는 St..
[Java/intelliJ] Serializable 인터페이스 / 객체 직렬화 & 역직렬화 * Serializable 인터페이스 ( java.io ) 객체를 파일로 저장하거나 다른 서버로 전송할 수 있도록 JVM에 알리는 역할. ( 직렬화* ) 메서드가 없는 마커 인터페이스 (marker interface). package java.io; public interface Serializable { } 해당 객체의 클래스에 Serializable 인터페이스를 구현해주면 된다. import java.io.Serializable; public class exampleClass implements Serializable { private static final long serialVersionUID = 1L; // 직렬화 호환성을 위한 UID ....... } * SerialVersionUID 객체를 ..
[Java] Lombok @ 어노테이션 * Lombok Java 코드 작성을 도와주는 라이브러리. 어노테이션 기반으로 코드 자동생성. https://www.daleseo.com/lombok-popular-annotations/ [자바] 자주 사용되는 Lombok 어노테이션 Engineering Blog by Dale Seo www.daleseo.com [ Lombok 어노테이션 ] - @Getter, @Setter 클래스 필드에 대한 getter / setter 메서드를 자동 생성. - @Data @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 를 자동 적용. - @NoArgsConstructor 파라미터가 없는 기본 생성자 자동생성. - @AllArgsCon..
[Java] switch ~ case문 기본적인 방식은 위에서부터 아래로 case 조건을 하나씩 판별해서 해당하는 case에 대한 로직을 실행 / 해당하는 case가 없다면 default 로 지정된 로직을 실행. ( default 가 위쪽부분에 위치하더라도 해당 case가 없는 경우에는 실행이 되지만 가독성을 위해 보통 맨 아래쪽에 지정. ) int number = 2; switch (number) { case 1: System.out.println("One"); break; case 2: System.out.println("Two"); break; case 3: System.out.println("Three"); break; default: System.out.println("Other number"); break; } 아래처럼 case옆에..
[Java] Gson / JSON * Gson Java객체를 JSON으로, JSON을 Java객체로 변환할 수 있도록 도와주는 오픈소스 라이브러리. - Java 객체를 JSON으로 변환 => .toJson() Gson gson = new Gson(); MyObject myObj = new MyObject(); String json = gson.toJson(myObj); - JSON 을 Java객체로 변환 => .fromJson() Gson gson = new Gson(); String json = "{\"name\":\"John\", \"age\":30}"; MyObject myObj = gson.fromJson(json, MyObject.class); 객체의 필드 이름과 JSON의 키 이름이 일치하면 자동으로 매핑된다. * Java의 ..
[자바기초] JIT Compiler JVM (자바 가상 머신) 에서 사용되는 실행 엔진(Execution Engine)의 구성 요소 중 하나. 인터프리터와 함께 작동하여 자바 프로그램의 성능을 향상시킴. - 인터프리터 (Interpreter) 컴파일러에 의해 변환된 바이트 코드를 한줄씩 읽고 실행하는 역할을 하는 컴포넌트. => 초기실행 빠름 / 반복 작업이 많은 코드의 경우 성능이 떨어짐. - JIT Compiler (Just-In-Time Compiler) 인터프리터에 의해 해석된 바이트 코드를 런타임 중에 기계어로 번역하여 캐시에 저장하고, 이후에는 인터프리터를 거치지 않고 해당 부분을 직접 실행. . 즉, 프로그램 실행 중에 수행되는 코드의 실행패턴을 모니터링 하여, 자주 실행되는 코드 블록을 식별. 이 코드블럭을 기계어로 변환하여..
[자바기초] 컴포넌트와 모듈 * 컴포넌트 (Component) - 재사용 가능한, 독립적인 소프트웨어 단위 (각각 독립된 모듈) - 특정 기능을 수행하는 데 필요한 코드, 데이터, 인터페이스 등.. - 높은 응집도 / 낮은 결합도를 가져 다른 컴포넌트와 독립적으로 테스트 및 배포할 수 있어야 함. * 모듈 (Module) - 코드의 논리적이고 구성적인 부분. - 일반적으로 파일, 클래스, 함수 등과 같은 코드 구조를 지칭 - 코드를 논리적인 블록으로 나누어 구성하고, 재사용 가능하게 만들기 위한 목적. ex) 하나의 서버에서 세개의 클라이언트와 통신한다고 하면 --- Client 1 Server --- Client 2 --- Client 3 모듈의 갯수는 2개 (Server + Client) _ 실제 구현된 것 컴포넌트의 갯수는 4..