전체 글 216

[Java/ChatGPT] Day 19: 예외 처리와 파일 연동 실전 연습

[ 학습 목표 ]파일 읽기/쓰기에서 발생할 수 있는 예외를 구체적으로 처리한다.도서 관리 기능을 작은 프로그램처럼 구조화해서 개발한다.지금까지 배운, 클래스, 예외, 파일 I/O, 리스트 활용 능력을 종합한다.[ 이론 ]1. 자주 발생하는 예외 상황1) 파일이 존재하지 않을 경우BufferedReader br = new BufferedReader(new FileReader("없는파일.txt"));// → FileNotFoundException 발생2) 파일에 쓸 수 없거나 경로가 잘못됐을 경우BufferedWriter bw = new BufferedWriter(new FileWriter("/root/test.txt"));// → AccessDeniedException or IOException3) 해결 ..

[Java/ChatGPT] Day 18: 파일 입출력 (File I/O)

[ 학습 목표 ]텍스트 파일을 읽고 쓰는 방법을 이해한다.File, FileWriter, BufferedReader 등의 클래스를 활용한다.도서 정보 또는 사용자 정보를 파일에 젖아하고 불러올 수 있다.[ 이론 ]1. 파일 입출력 기본 개념1) 파일 쓰기 (FileWriter)FileWriter를 사용해 해당 파일이 작성한 경로에 없으면 파일이 생성되고 안에 내용이 입력된다.파일이 있으면 해당 파일에 입력이 된다.import java.io.FileWriter;import java.io.IOException;public class WriterExample { public static void main(String[] args) { try { // 저장할 경로와 파일명 ..

[Java/ChatGPT] Day 17: 람다식 (Lambda) & 스트림 (Stream)

[ 학습목표 ]람다식의 기본 문법과 사용 이유를 이해한다.함수형 인터페이스를 알아본다.스트림(Stream)을 이용한 컬렉션 처리 방법을 학습한다.기존의 for문/if문을 더 간결한 코드로 대체할 수 있다.[ 이론 ]1. 람디식이란?메서드를 하나의 식(Expression)으로 표현한 것.불필요한 코드를 줄이고 나결하게 로직을 전달할 수 있다.2. 람다식 기본 문법(매개변수) -> { 실행문 }3. 람다식 예제// 기본 형태Runnable r = () -> System.out.println("Hello Lambda!");r.run(); // Hello Lambda! 출력// 매개변수 있는 경우Consumer c = (s) -> System.out.println("입력값: " + s);c.accept("테스트..

[mini-project] Yoga Responsive Website Re-design

📌 프로젝트 개요실존하는 요가 스튜디오의 웹사이트를 벤치마킹하여 Redesign을 하였습니다. 그리고 반응형으로도 제작하여 사용자가 다양한 방식으로 접근을 할 수 있도록 하였습니다.* 이 프로젝트는 상업적 용도가 아닙니다. 프로젝트 명: 요가원 반응형 웹사이트 리뉴얼개발 기간: 2024-06-25 ~ 2024-08-04목적: HTML5, CSS3을 사용하여 반응형 웹사이트를 제작하면서 경험을 쌓는 것과 동적인 부분을 JavaScript만을 사용하여 구현을 함으로써 언어에 대한 이해도와 경험을 쌓기 위함입니다.사용 기술: HTML5, CSS3, JavaScript, VS Code, Git & GitHub, GitHub Pages🧩 구현 기능기능명상세 설명원페이지 반응형하나의 페이지에 PC, 태블릿, 모..

[mini-project] To-do List (React)

📌 프로젝트 개요리액트를 사용하여 To-do List를 만들고 GitHub Pages로 배포하는 개인 미니 프로젝트.데이터는 로컬 스토리지 사용.프로젝트 명: 리액트로 만든 To-do List개발 기간: 24.08.05 ~ 24.08.21목적: React를 이해하고 개인이 가볍게 사용할 목적으로 React를 사용하여 To-do List를 제작하였습니다.사용 기술: HTML5, CSS3, JavaScript, React, React Hooks, VS Code, Git & GitHub, GitHub Pages🧩 구현 기능기능명상세 설명할 일 추가내용을 입력 후 + 버튼을 클릭하면 할 일이 목록에 추가된다.할 일 삭제추가된 할 일 우측에 있는 - 버튼을 클릭하면 삭제된다.할 일 수정추가된 할 일을 클릭하면..

[mini-project] Country Flag Guessing Game (JS)

📌 프로젝트 개요학원 수업 시간에 배운 class 객체를 활용하여 만든 나라별 국기 맞추기 게임입니다.객관식 형태이며 누구나 재밌게 게임을 즐길 수 있습니다.(현재 국기는 많이 등록되어 있지 않습니다.)프로젝트 명: 국기 맞추기 게임개발 기간: 24.06.29 ~ 24.07.01목적: class 객체를 활용하여 무언가를 만들어 보는 경험을 쌓고, 코드 활용 및 스스로 생각하는 힘을 기르기 위함.사용 기술: HTML5, CSS3, JavaScript, Git & GitHub, GitHub Pages, VS Code🧩 구현 기능기능명상세 설명랜덤 국기 출현Math 클래스를 사용하여 국기가 무작위로 출력객관식 4지선다형정답 1개를 포함한 4개의 객관식을 무작위로 출력정답 유무 결과알림창으로 오답, 정답 출..

[toy-project] JWT 기반 인증/인가 구현 (Spring Boot)

📌 프로젝트 개요JWT를 활용해 로그인을 구현하고, Spring Security로 인가 기능을 구현. 비밀번호는 BCrypt로 암호화.프로젝트 명: JWT 기반 인증/인가 구현 (Spring Boot)개발 기간: 25.06.23 ~ 25.06.27목적:JWT를 활용한 로그인 및 인가 기능을 직접 구현하여 인증 방식의 원리를 이해하고 실습Spring Boot로 기능별 API 설계 연습사용 기술: Java 17, Spring Boot 3.5.4, JPA & H2, VS Code, Git & GitHub🧩 구현 기능기능명상세 설명회원가입비밀번호는 BCrypt로 암호화하여 저장로그인로그인 시 JWT 토큰이 발급, HttpOnly 쿠키에 저장로그아웃로그아웃 시 HttpOnly 쿠키의 JWT 토큰 삭제인가페이지..

[toy-project] Library Book Manager (CLI, Java)

📌 프로젝트 개요16일차까지 배운 Java 기초 문법을 활용하여 만든 도서관 도서 관리 시스템 (CLI 기반)프로젝트 명: Library Book Manager (CLI)개발 기간: 25.07.02 ~ 25.07.03목적: Java 기초 문법 복습실무처럼 디렉토리 및 클래스 구조 설계 연습단순 기능 구현 이상의 설계 감각을 기르기 위한 실습사용 기술: Java 17, VS Code IDE, Git & GitHub🧩 구현 기능기능설명책 등록제목, 저자, 출판 연도 입력 후 리스트에 저장전체 목록 조회등록된 도서들을 연도순으로 정렬하여 출력책 검색제목 또는 저자 키워드로 부분 검색책 삭제제목을 기준으로 도서 삭제종료프로그램 종료예외 처리연도 음수 입력, 사용자 입력 오류에 대한 처리💜 GitHub 저장..