Java 102

S.O.L.I.D 원칙

S.O.L.I.D 원칙 로버트 C. 마틴(Robert C. Martin), 흔히 "아저씨 보브(Uncle Bob)"로 알려진 소프트웨어 엔지니어가 발표한 객체 지향 프로그래밍 설계 원칙이다. 즉, SOLID 원칙이란 객체지향 설계의 5가지 중요한 원칙을 뜻하며, 유지보수성과 확장성을 높이기 위해 설계 과정에서 따르는 지침이다. 사전 기반 지식 객체지향 프로그래밍의 기본 개념 (클래스, 객체, 상속, 다형성 등) Java에서 인터페이스와 상속 사용 방법 접근 제한자, 메서드 오버라이딩, 클래스 간 관계 등의 기본 개념  단일 책임 원칙 (Single Responsibility Principle, SRP) 설명 : 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란, 클래스가 변경되어야 하는 이유가 하나..

Java 2024.09.25

람다식(Lambda expression)

1. 람다식의 기본 개념과 문법2. 기존 자바 코드를 람다식 표현법을 사용하여 작업3. 함수형 인터페이스(Functional Interface)4. 자바 8 버전부터 제공하는 interface Function 활용 자바에서 람다식(Lambda expression)은 함수형 프로그래밍 개념을 도입한 것으로, 익명 함수(이름이 없는 함수)를 간결하게 표현할 수 있게 해 준다. 람다식은 자바 버전 8(2014년 출시)부터 사용할 수 있다. 추가로 자바 8은 함수형 프로그래밍을 지원하기 위한 여러 기능을 함께 도입했다.즉, 람다식을 사용하면 코드가 간결해지고, 특히 컬렉션이나 스트림 API를 처리할 때 매우 유용하다. 람다식은 주로 간단한 작업을 한 줄의 코드로 처리할 때 많이 사용하며, 예를 들어, 리스트의 ..

Java 2024.09.13

JSTL 을 활용한 게시판 기능 만들기

학습 목표1. JSP 와 서블릿의 활용 : JSP와 서블릿을 사용하여 웹 애플리케이션의 프론트엔드와 백엔드를 개발한다.2. MVC 패턴 구현 : 모델 - 뷰 - 컨트롤러(MVC) 패턴을 적용하여 코드의 구조와 유지보수성을 향상시킨다.3. DAO 패턴 활용 : 데이터 액세스 오브젝트(DAO) 패턴을 사용하여 데이터베이스 작업을 추상화하고 관리한다.4. DB 연결 풀링 이해 : HikariCP를 사용하여 데이터베이스 연결 풀링을 설정하고 효율적인 자원 관리를 학습한다.5. JSTL 사용 : JSTL 태그 라이브러리를 활용하여 JSP에서 반복, 조건, 날짜 포맷 등의 작업을 간결하게 처리한다.6. 웹 애플리케이션 보안 : 회원가입, 로그인, 로그아웃 기능을 구현하여 사용자 인증 및 권한 관리를 학습한다. 프로..

Java 2024.07.15

JSP와 MVC 패턴 Todo 프로젝트

MVC 패턴MVC (Model-View-Controller) 패턴은 소프트웨어 셜계 패턴으로, 애플리케이션을 세 가지 주요 구성 요소인 모델(Model), 뷰(View), 컨트롤러(Controller)로 나누어 구현하는 방식을 말한다. 이를 통해 코드의 재사용성과 유지보수성을 높이고, 역할과 책임을 명확히 분리하는데 목적이 있다. 소프트웨어 설계 패턴은 소프트웨어 개발에서 자주 발생하는 문제를 해결하기 위해 검증된 재사용 가능한 솔루션이다. 설계 패턴은 객체 지향 설계 원칙을 따르며, 다양한 상황에서 사용될 수 있는 일반적인 템플릿을 제공한다. (디자인패턴 이라고도 한다.)주요 소프트웨어 설계 패턴생성 패턴 (Creational Patterns) : 객체 생성 메커니즘을 제공하여 코드의 유연성을 높인다...

Java 2024.07.12

네트워크 프로토콜

네트워크 프로토콜네트워크에서 데이터를 교환하기 위한 규칙과 절차의 집합.프로토콜은 데이터 형식, 순서, 오류 제어 등을 정의하여 서로 다른 시스템 간의 통신을 가능하게한다. 주요 프로토콜HTTP (HyperText Transfer Protocol) : 웹 페이지를 전송하기 위한 프로토콜이다.TCP (Transmission Control Protocol) : 신뢰성 있는 데이터 전송을 보장하는 프로토콜이다.UDP (User Datagram Protocol) : 신뢰성보다는 빠른 전송을 중시하는 프로토콜이다.FTP (File Transfer Protocol) : 파일 전송을 위한 프로토콜이다.SMTP : 이메일 전송을 위한 프로토콜이다. 프로토콜은 각기 다른 목적을 가지고 있다.TCP/IP : 인터넷과 대부..

Java 2024.07.12

1: N 소켓 양방향 통신

1:N 소켓 양방향 통신에서는 하나의 서버가 여러 클라이언트와 동시에 양방향 통신이 가능하다.이는 채팅 애플리케이션, 멀티플레이어 게임 서버 등에서 흔히 사용된다. 개념1. 서버와 클라이언트 소켓 :서버는 하나의  ServerSocket을 통해 여러 클라이언트의 연결 요청을 기다린다.클라이언트는 각각의 Socket을 통해 서버에 연결을 요청하고, 연결된 후 서버와 통신한다.2. 멀티스레딩 :서버는 각 클라이언트와의 통신을 별도의 스레드에서 처리한다. 이를 통해 여러 클라이언트와 동시에 통신할 수 있다.각 클라이언트는 서버와의 통신을 처리하는 자체 스레드를 가진다.3. 데이터 송수신 :서버와 클라이언트는 서로 데이터를 주고받을 수 있어야 한다. 이를 위해 입력 스트림과 출력 스트림을 사용한다. 1:N 소켓..

Java 2024.07.12

1:1 양방향 통신(채팅 기본 기능 구현)

멀티 스레드 활용양방향 통신을 지속적으로 수행하기 위해 서버와 클라이언트 모두에서 키보드 입력을 받아 상대방에게 데이터를 보내고 받을 수 있도록 스레드와 while문을 활용하여 코드를 작성해봅시다.  서버 측 코드· ServerSocket 을 생성하고 클라이언트의 연결을 기다린다.· BufferedReader 를 사용하여 클라이언트로부터 메시지를 읽고, PrintWriter를 사용하여 클라이언트에게 메시지를 보낸다.· 키보드 입력을 받기 위해 BufferedReader를 사용한다.· 클라이언트로부터 데이터를 읽는 스레드와 키보드 입력을 클라이언트로 보내는 스레드를 각각 실행한다.package ch04;import java.io.BufferedReader;import java.io.IOException;i..

Java 2024.07.12

간단한 게시판 만들기

프로젝트 구성 webapp/createPost.jsp게시글 작성 화면 만들기 (프레젠테이션 계층) 게시글 작성 제목 : 내용 : 글 작성 게시글 목록  com.tenco.servlet/CreatePostServlet.java 게시글 작성 기능 만들기 (비즈니스 로직 계층) package com.tenco.servlet;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.Htt..

Java 2024.07.10

서블릿과 JSP의 개념과 차이점

서블릿서블릿(Servlet)은 자바를 기반으로 한 서버 측 프로그래밍 기술로, 클라이언트의 요청을 처리하고 동적인 웹 콘텐츠를 생성하여 응답하는 역할을 한다. 서블릿은 javax.servlet(자카르타 : 10 버전 부터)패키지에 포함되어 있으며, 주로 HTTP 요청을 처리하는 데 사용된다. 서블릿 특징클래스 기반 : 서블릿은 자바 클래스로 작성된다.비즈니스 로직 처리 : 주로 비즈니스 로직을 처리하는 데 사용된다.요청 및 응답 처리 : HTTP 요청을 받아 처리하고, 응답을 생성한다.라이프 사이클 : init(), service(), destroy() 메서드를 통해 서블릿의 생명 주기를 관리한다.회원가입 비즈니스 로직 처리란?입력 데이터 수집 → 입력 데이터 검증 → 이메일 중복 확인 → 비밀번호 해싱..

Java 2024.07.10

쿠키와 세션 관리

쿠키 개념과 사용법쿠키(Cookie) : 웹 브라우저에 저장되는 작은 데이터 조각. 서버는 클라이언트에게 쿠키를 설정할 수 있으며, 이후 클라이언트는 해당 쿠키를 서버로 전송한다. 쿠키는 주로 사용자 식별, 상태 유지, 개인 설정 등에 사용된다.특징클라이언트(브라우저)에 저장된다.유효 기간을 설정할 수 있다.보안이 상대적으로 낮다.작은 데이터 저장 용량(약 4KB)을 가진다. setCookie.jsp 사용자가 이 페이지 요청 시, 서버 측에서 쿠키를 생성해서 응답합니다. 쿠키 값을 읽어보는 페이지  getCookie.jsp 쿠키 읽기 안녕하세요 " + cUsername + " 님 "); } else { out.println(" 쿠키가 설정되지 않았습니다."); } %> 쿠키 설정하..

Java 2024.07.10