REST API란 무엇인가? 쉽게 정리
·
Programing/Spring
📌 본문REST API는 현대 웹 개발에서 가장 널리 쓰이는 인터페이스 통신 방식입니다.프론트엔드와 백엔드가 데이터를 주고받는 데 꼭 필요한 구조죠.이번 글에서는 REST의 개념과 특징을 쉽게 정리해보겠습니다.1. REST란?REST(Representational State Transfer)는HTTP 프로토콜을 기반으로 자원을 CRUD 방식으로 접근하는 아키텍처 스타일입니다.2. REST의 구성 요소자원(Resource): URI로 표현 (예: /users/1)행위(Method): HTTP 메서드 (GET, POST, PUT, DELETE)표현(Representation): 주로 JSON 포맷3. HTTP 메서드 의미메서드설명GET자원 조회POST자원 생성PUT자원 전체 수정PATCH자원 일부 수정DE..
Java Stream API 기초 – 컬렉션 처리의 혁신적 방법
·
Programing/JAVA
📌 본문Java 8부터 도입된 Stream API는 컬렉션 데이터를 함수형 스타일로 처리할 수 있게 해줍니다.반복문 대신 스트림 파이프라인을 사용하면 가독성과 생산성이 크게 향상되죠.오늘은 Stream API의 기본 개념과 자주 쓰는 메서드를 실습 예제와 함께 살펴봅니다.1. 스트림 생성List list = Arrays.asList("apple","banana","cherry"); Stream stream = list.stream();2. 필터링 (filter)List longWords = list.stream() .filter(s -> s.length() > 5) .collect(Collectors.toList());3. 매핑 (map)List lengths = list.stream() .map(St..
Spring MVC와 Spring Boot의 차이점 – 언제 무엇을 써야 할까?
·
Programing/Spring
📌 본문Java 웹 개발을 시작하면 흔히 접하게 되는 두 가지 프레임워크,Spring MVC와 Spring Boot.이 둘은 이름이 비슷해 헷갈리기 쉽지만, 목적과 편의성 측면에서 차이가 큽니다.오늘은 두 기술의 핵심 차이점과 어떤 상황에서 어떤 걸 선택해야 하는지 정리해드립니다.1. 프로젝트 설정Spring MVC: web.xml, dispatcher-servlet.xml 등 여러 설정 파일을 직접 작성Spring Boot: spring-boot-starter 의존성 한 줄로 자동 설정(자동 구성) 제공2. 실행 방식Spring MVC: WAR 패키지 → 외부 Tomcat 등에 배포Spring Boot: JAR 실행 (java -jar app.jar) → 내장 톰캣 구동3. 개발 속도Spring MV..
Java 예외 처리 기초 – try, catch, finally 구조 완전 정리
·
Programing/JAVA
📌 본문Java를 처음 배우다 보면 자주 마주치는 키워드가 있죠.바로 try, catch, finally입니다.이 구조는 예외(Exception)가 발생했을 때 프로그램이 비정상 종료되지 않도록 처리해주는 핵심 문법입니다.오늘은 Java의 예외 처리 기초를 한눈에 정리해드릴게요.1. ⚠️ 예외(Exception)란?프로그램 실행 중에 발생하는 오류 상황입니다.예: 0으로 나누기, 배열 범위 초과 접근, 파일이 존재하지 않을 때 등❗ 예외가 처리되지 않으면 프로그램은 즉시 종료됩니다.2. 🧱 기본 구조 – try / catch / finallytry { // 예외가 발생할 가능성이 있는 코드} catch (Exception e) { // 예외 발생 시 처리할 코드} finally { /..
JSP_03
·
Programing/JSP
JSP동작 원리 클라이언트가 웹브라우저로 helloWorld.jsp를 요청하게 되면 JSP컨테이너가 JSP파일(.jsp)로 변환한다. Servlet파일(.java)은 컴파일 된 후 클래스 파일(.class)로 변환되고 요청한 클라이언트한테 html파일 형태로 응답된다. 웹브라우저 요청 -> JSP >> Servlet(helloWorld.js >> helloWorld_jsp.java) -> Servlet >> class(helloWorld_jsp.java >> helloWorld_jsp.class) -> 웹브라우저 응답(HTML형태로 응답) ============================================================== JSP 내부 객체 개발자가 객체를 생성하지 않고 바로 ..
JSP_02
·
Programing/JSP
Context Path(컨텍스트 패스) WAS(Web Application Server)에서 웹 어플리케이션을 구분하기 위한 path이다. 이클립스에서 프로젝트를 생성하면, 자동으로 server.xml에 추가된다. ================================================ Servlet 작동 순서 클라이언트에서 servlet요청이 들어오면 서버에서는 servlet컨테이너를 만들고, 요청이 있을 때마다 스레드가 생성된다. 웹브라우저 -> 웹서버 -> 웹어플리케이션 서버 -> Servlet 컨테이너(1. 스레드 생성, 2. Servlet 객체 생성) =================================================== Servlet 라이프 사이클 (생명주기..
JSP_01
·
Programing/JSP
웹 프로그래밍이란? - 웹 어플리케이션을 구현하는 행위 - 웹 어플리케이션이란, 웹을 기반으로 작동되는 프로그램 - 웹 이란, 1개 이상의 사이트가 연결되어 있는 인터넷 서비스의 한가지 형태 - 인터넷이란, 1개 이상의 네트워크가 연결되어 있는 형태 =================== - 프로토콜 : 네트워크상에서 약속한 통신 규약(http, FTP, SMTP, DHCP) - IP : 네트워크상에서 컴퓨터를 식별할 수 있는 주소 - DNS : IP주소를 인간이 알기 쉽게 맵핑한 문자열 - Port : 해당컴퓨터의 구동되고 있는 프로그램을 구분 할 수 있는 번호 JAVA플랫폼(J2SE, J2EE) J2SE - 어플리케이션 만드는 용도 J2EE - 컨테이너가 있다. 컨테이너에서는 웹 컨테이너, EJB 컨테이..
입출력 INPUT / OUTPUT
·
Programing/JAVA
프로그램에서 다른 대상으로 데이터를 보내거나 읽어 들이는 기능 java.io 패키지에서 제공 http://twinbraid.blogspot.com/2014/09/blog-post_40.html 스트림(Stream) 애플리케이션이 다른 대상으로 데이터 입/출력시 중간 매개체 역할을 하는 단위 애플리케이션 => (출력스트림) => 작업대상(파일,콘솔,서버등) 애플리케이션 Reader(문자) BufferedReader 클래스 Reader 스트림에 버퍼 기능을 추가하는 스트림 클래스 버퍼를 사용해 성능이 좋음 readLine() 메서드 : 라인별로 읽어 들여 String 타입으로 반환 InputStreamReader : 바이트 입력 스트림 -> 문자 입력 스트림 변환 sample.txt Reader 테스트 1 ..
람다 LAMBDA
·
Programing/JAVA
자바 8부터 지원하는 함수 구현과 호출 만으로 프로그래밍 하는 함수형 프로그래밍 방식 지원 이름이 없는 익명 함수 함수적 인터페이스로 구현 Kotlin, Scala 같은 언어도 객체지향 + 함수형 언어 람다식 형식 타입 생략 가능 매개변수가 한개라면 괄호도 생략 가능 매개변수가 없는 경우는 괄호 생략 불가 실행문이 한개라면 중괄호도 생략 가능 (타입 매개변수...) -> { 실행문 .. } () -> {} package chapter15; public class LambdaFunctionEx { public static void main(String[] args) { // 람다식 InterfaceEx ie = (int x, int y) -> x+y; System.out.println(ie.sum(1, 2..
제네릭 GENERIC
·
Programing/JAVA
컴파일시 강한 타입 체크 타입 형변환 코드 불필요 제네릭 타입 Object 필드 모든 값 저장 가능 class NoGeneric { Object[] v; void set(Object[] n) { v = n; } Object[] get() { return v; } void print() { for(Object o : v) { System.out.print(o + " "); } System.out.println(); } } 잘못된 형변시 오류 package chapter14; public class GenericEx { public static void main(String[] args) { NoGeneric nogen = new NoGeneric(); String[] ss = {"홍길동","이순신","김유..