Programming 13

개발환경 세팅 (IntelliJ + JDK + Maven + Tomcat)

1. 자바 웹 개발을 위한 기초 지식 - 자바 : 프로그래밍 언어- JDK(Java Development Kit) : 자바 언어를 개발하고 실행할 수 있게 해주는 도구- IntelliJ IDEA : 자바 프로그램을 효율적으로 만들게 도와주는 IDE(통합개발환경)- Maven : 라이브러리 의존성을 자동 관리하고 프로젝트를 편리하게 만들어주는 도구- Tomcat : 만들어진 자바 웹 프로그램(Servlet, JSP)을 실행해주는 웹 서버 2. JDK 설치와 환경 변수 설정 오라클 공식 사이트에서 JDK11 다운로드설치 후 cmd에서 확인 java -version 환경변수 설정하기 windows 검색창에 환경 변수 입력 후 시스템 환경변수 열기 시스템 변수 > 새로 만들기 이름 : JAVA_HOME 값 : ..

Programming/Java 2025.06.18

MVC1, MVC2(Model-View-Controller)

MVC1Model : 비즈니스 로직, 데이터 처리 클래스 View : 사용자에게 보여지는 화면 Controller : X 컨트롤러 없이 JSP가 요청 처리와 비즈니스 로직, 화면 출력까지 모두 담당하는 구조로 비교적 단순하고 소규모 웹 애플리케이션 개발에 적합하지만 유지보수와 확장에 어려움이 있음 작동흐름 1. 사용자가 브라우저에서 form.jsp로 이동 2. form.jsp에서 데이터를 입력하고 submit 버튼 클릭3. form.jsp 또는 다른 jsp 파일이 직접 request.getParameter()를 통해 데이터를 받고 처리 4. 처리결과를 같은 jsp 또는 또 다른 jsp에서 출력 MVC2웹 애플리케이션에서 요청 처리와 화면 출력을 명확히 분리한 구조로, 서블릿이 컨트롤러 역할을 하여 클..

Programming/Java 2025.06.12

스트림, IO Stream, 직렬화(Serializable), 역직렬화(Deserializable), 스레드

스트림 https://ryuzyproject.tistory.com/169 스트림1. 스트림스트림(Stream)은 자바 8에서 도입된 기능으로, 컬렉션이나 배열의 데이터를 반복문 없이 함수형 스타일로 처리할 수 있도록 도와주는 도구입니다. 스트림은 데이터 저장소가 아니라, 데ryuzyproject.tistory.com package lesson08;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Ex01_Main { public static void main(String[] args) { List fruits = Arrays.asList("apple", "banana", "orang..

Programming/Java 2025.06.11

Cookie, Session, Token(JWT)

0. 목적 : 이게 왜 필요한가?- HTTP는 무상태 (stateless) : 사용자의 로그인 상태를 유지할 수 없음 그래서 서버/브라우저/사용자 간에 "누군지 기억할 방법"이 필요함 => 쿠키 / 세션 / 토큰이 그 역할을 한다. 1. 쿠키 : 클라이언트(브라우저)에 저장되는 작은 데이터 조각 특징 : 브라우저가 저장, 요청 시마다 자동 전송 로그인 상태 기억, 자동 로그인 등에 사용 민감 정보 저장은 보안상 위험 작동 흐름 요약 :1. 사용자가 로그인 2. 서버가 쿠키 생성 (Set-cookie 헤더로 전달)3. 브라우저가 쿠키 저장 4. 이후 요청 시 브라우저가 자동으로 쿠키 첨부 5. 서버는 쿠키 내용 확인해서 사용자 상태 판단 작동 방식 상세 : 요청 1:POST /login→ 로그인 성공 ..

Programming/Java 2025.06.11

Livekit란? webRTC, Servlet, EL

https://livekit.io/ LiveKit | The all-in-one Voice AI platformBuild, deploy, and scale realtime agents. Open source. Enterprise grade.livekit.io- 확장 가능하고 유연한 webRTC SFU (Selective Forwarding Unit) 기반의 오픈소스 미디어 서버 - 실시간 비디오, 오디오 및 데이터 통신을 위한 도구 제공 - 개발자가 web RTC 애플리케이션을 쉽게 구축할 수 있도록 지원 => LiveKit은 실시간 영상통화, 음성채팅 기능을 직접 구현할 수 있게 도와주는 오픈소스 라이브러리 Q. 왜 필요한가 ?요즘 앱들 보면 이런 기능 많죠?1 :1 영상통화 기능 (틴더, 헬로톡)라이..

Programming/Java 2025.06.11

서블릿(Servlet), WAS(Web Application Server), Web Server, JSP, REST API

서블릿(Servlet)- 자바를 기반으로 웹 서버에서 실행되는 서버 측 프로그램- 클라이언트의 요청을 처리하고 그에 대한 응답을 생성하는 역할- javax.servlet 패키지에 정의된 인터페이스를 구현하여 작성- 초기화(init), 요청 처리(service), 종료(destroy)의 생명주기를 가짐 WAS(Web Application Server)에서 관리 WAS(Web Application Server)- 웹 클라이언트의 요청을 처리하고 데이터베이스나 서버 로직과 연동하여 동적인 웹 컨텐츠를 생성해주는 서버 소프트웨어- HTTP 요청을 받아 서블릿, JSP, Spring 같은 웹 애플리케이션 컴퍼넌트를 실행하고, 그 결과를 HTML 형태로 클라이언트에게 응답- 아파치 Tomcat- Jetty- JBo..

Programming/Java 2025.06.04

메서드, return, 객체지향 프로그래밍, 객체, 생성자, 오버로딩 Null, 가비지컬렉터, 패키지, 상속, 메서드 오버라이딩, final

메서드특정 작업을 수행하는 코드 블록, 프로그램의 재사용성+구조화를 위해 사용됨자바에서는 함수가 없고 메서드라고 한다.클래스 안에 정의되며, 리턴타입 메서드 이름(매개변수) 형식으로 선언됨리턴되는 값의 타입을 지정해줘야한다. (자바스크립트랑 다른점)int add(int a, int b) 두 정수를 더해 결과를 반환하는 메서드형태리턴타입 메서드이름(매개변수들) { 실행할 코드 return 값; }값을 반환하지 않을 경우 void 사용매개변수 : 메서드 호출 시 전달되는 값(없을 수도 있음)반환값이 없고 매개변수도 없는 메서드public void printHello() { System.out.println("안녕하세요!");}printHello 로만 부르면 되는 메서드반환값이 없고 매개변수가 있는 메..

Programming/Java 2025.06.02

조건문 (if, else-if, switch, yield), 반복문 (while, do-while, for), Random 클래스, Break문, Continue, 향상된 for 문, 중첩 반복문

if, if-else, else ifpackage lesson02;import java.util.Scanner;public class Ex01_If1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("정수를 입력하세요 : "); int number = sc.nextInt(); if(number > 0) { System.out.println("양수입니다"); } sc.close(); }}-------------------------------정수를 입력하세요5양수입니다packag..

Programming/Java 2025.06.02

인터페이스, 예외처리

인터페이스 lesson05_Ex05_Mainpackage lesson05;// 인터페이스란?// 같이 작업하는 사람들에게 이런 게 있었으면 좋겠어! 라고 요청하는 명세서 같은 것// 한 파일에 몰아넣었기 때문에 public을 지움interface Cleaner { void clean(); //각각 움직이나 행동을 구현할 수 있게 만들어놓음}interface Cooker { void cook();}interface Singer { void sing();}interface Dancer { void dance();}// 추상메서드 : 객체를 생성할 수 없음. 다른 클래스로부터 상속을 받은 다음에 사용해야함.abstract class Robot{ String modelName; ..

Programming/Java 2025.06.02

자바, 변수, 데이터 타입, 형 변환, 연산자, Scanner API, System.in, 배열, 2차원 배열, 얕은 복사와 깊은 복사

자바의 메모리 구조메서드 영역 : 클래스에 대한 정보 (클래스 이름, 변수, 메서드, static 변수) 저장. 모든 스레드가 공유힙 영역 : new 키워드로 생성한 객체들이 저장되는 공간. 모든 스레드가 공유하며, 가비지 컬렉터가 이 영역을 관리함스택 영역 : 메서드 호출 시 생성되는 지역 변수들이 저장됨. 각 스레드마다 따로 존재. 메서드 호출이 끝나면 해당 스택은 자동으로 제거프로그램 카운터 레지스터 : 현재 실행 중인 JVM 명령어 주소를 저장합니다. 스레드마다 하나씩 존재인텔리제이에서 자주 사용하는 단축키 Ctrl + J 단축구문 전체 팝업soutSystem.out.println(); 자동완성serrSystem.err.println(); 자동완성main / psvmpublic static voi..

Programming/Java 2025.06.02