본문 바로가기

STUDY

(65)
[개인프로젝트] 이미지 파일 관리 시스템 프로젝트 소개 📅 진행기간 2023.06.01 ~ 2023.06.23 👩🏻‍💻 팀구성 개인프로젝트 🔎 개요 - 이미지 파일 관리 시스템 💻 개발환경 - 프로젝트 도구 : IntelliJ, VSCode - 기술 스택 : Spring WebFlux, Vue.js, MongoDB 📚 요구사항 (1) Spring WebFlux로 웹 백엔드 API 서버 구축 - 비동기 논블로킹 방식으로 이미지를 업로드하는 API 구현 - 이미지 업로드시 이미지 서버 저장과 함께 이미지에 대한 메타 데이터가 데이터베이스(MongoDB)에 함께 저장 - 조회시 이미지와 함께 메타데이터도 확인가능 - 필수 API 명세 Method URI Request Param Request Body Description GET /images 자유롭..
[팀프로젝트] Oh!GYM(매칭서비스) 프로젝트 소개 📅 진행기간 2023.03 ~ 2023.04(~진행중) 👩🏻‍💻 팀구성 그린컴퓨터아카데미(5인) 🔎 개요 - 헬스 PT(퍼스널트레이닝) 매칭 웹 플랫폼 서비스 : 헬스장이나 운동 센터를 방문하지 않고도 온라인으로 트레이너와 상담하며 가격 정보를 제공받아, 편리하게 선택할 수 있도록 도와주는 웹서비스 📌 목적 - 현대 사회에서 건강한 삶에 대한 관심과 헬스 관련 산업의 성장, 그리고 바쁜 일상으로 인해 헬스장이나 운동 센터에 가는 것이 부담스러운 현대인들을 대상으로한 편리하고 접근성 높은 서비스를 제공할 수 있는 웹 플랫폼을 개발하고자 함 💻 개발환경 - 프로젝트 도구 : Eclipse, VSCode, MySQL, Github - 사용 언어 : Java, SQL, Html/Css, JavaS..
[팀프로젝트] 마음을 JAVA라(Quiz Game) 프로젝트 소개 📅 진행기간 2023.01 ~ 2023.01(약 1주) 👩🏻‍💻 팀구성 그린컴퓨터아카데미(5인) 🔎 개요 - 친구와 서로를 얼마나 잘 알고 있는지를 알아갈 수 있는 QnA 게임 : 회원가입시 자신의 성향에 대한 간단한 질문에 답을 작성하여 데이터 구축 게임에서는 친구의 성향을 유추하여, 이를 토대로 점수 및 랭킹 확인 📌 목적 - 사회에서 개인주의적인 경향이 강해지고 있기 때문에, 이 프로젝트를 통해 친구들끼리 서로를 더욱 잘 알아가고, 더욱 깊은 대화를 나눌 수 있도록 돕고자 함 💻 개발환경 - 프로젝트 도구 : Eclipse, Github - 사용 언어 : Java, SQL 📝 학습목표 - RDBMS의 이해 및 활용 - CRUD 기능 구현 및 SQL 문법 이해 - 사용자 입력값 유효성 ..
[팀프로젝트] Lotto 프로그램 프로젝트 소개 📅 진행기간 2022.12 ~ 2022.12(약 1주) 👩🏻‍💻 팀구성 그린컴퓨터아카데미(4인) 🔎 개요 - 가상 Lotto 번호 추첨 및 확인 Windows 환경 GUI 프로그램 : 수동, 반자동, 자동 중 원하는 방법으로 로또 번호를 선택한 후, 당첨 번호와 비교하여 결과 확인. 게임 회차별 전적 보기 기능. 💻 개발환경 - 프로젝트 도구 : Eclipse - 사용 언어 : Java 📝 학습목표 - JAVA Swing을 이용한 GUI에 대한 이해 - 배열과 컬렉션을 포함한 자료구조에 대한 이해 - 이벤트 처리 방법에 대한 이해 상세 내용 📊 기능 - 수동, 반자동, 자동 중 원하는 방법으로 로또 번호를 선택 - 당첨 번호와 비교하여 결과 확인 - 지난 회차 당첨 번호 보기 기능 - 게임..
[팀프로젝트] 호텔 객실 예약 프로그램 프로그램 소개 📅 진행기간 2022.11 ~ 2022.11(약 1주) 👩🏻‍💻 팀구성 그린컴퓨터아카데미(4인) 🔎 개요 - 호텔 객실 예약 및 관리 콘솔 입출력 프로그램 💻 개발환경 - 프로젝트 도구 : Eclipse - 사용 언어 : Java 📝 학습목표 - 자바 언어의 기본 구조와 문법, 데이터 타입, 제어문, 연산에 대한 이해 - 객체지향 프로그래밍의 개념과 특징을 이해 상세 내용 📊 다이어그램 https://ej-development-note.tistory.com/36 [JAVA 웹 개발 공부] 국비지원 20, 21일차 - 팀프로젝트 주제 호텔의 데스크 직원이 사용할 수 있는 호텔 객실 관리프로그램 만들기 1. 객실 정보 객실은 2층부터 5층까지 각 층마다 20개씩 있다. 방 번호는 3자리 정수이..
[JAVA 웹 개발 공부] 국비지원 84일차 - 인터셉터, 스프링 AOP, Advice, Pointcut 인터셉터 1. 인터셉터(Interceptor) 컨트롤러(Controller)의 '핸들러(Handler)'를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할수 있는 일종의 필터이다. 2. 인터셉터 사용이유 개발자는 특정 Controller의 핸들러가 실행되기 전이나 후에 추가적인 작업을 원할때 Interceptor를 사용한다. (추가적인 작업으로는 로그인체크, 권한 체크 등이 있다.) 인터셉터를 사용하게 되면 개발자는 핸들러 수 만큼 작성했던 세션 체크 코드를 인터셉터 클래스에 한번만 작성하면된다. 이로 인해 코드의 량이 현저히 줄기 대문에 메모리 낭비를 줄일수 있다. 그리고 인터셉터 적용의 유무 기준이 되는 url을 servlet-context.xml에 설정해주게 되면 스프링에서 일괄적으로 해당 ur..
[JAVA 웹 개발 공부] 국비지원 83일차 - 스프링 프레임 워크, MVC 핸들러, 핸들러 메소드, 모델, Logger, @Value, 의존객체 선택 스프링 MVC 핸들러 1. 핸들러(Handler) MVC의 Controller 안에서 실제 요청을 처리하는 메소드를 핸들러(Handler)라고 한다. 사용자로부터 서버로 요청이 가면, 해당 요청에 맞는 컨트롤러의 핸들러로 요청 정보가 전해지고, 핸들러는 이를 처리하여 적절한 값을 반환 한다. 그리고 요청과 핸들러를 연결하는 것을 핸들러 맵핑(Handller Mapping)이라고 하고, @RequestMapping 어노테이션을 사용하여 맵핑이 이루어지며, DispatcherServlet에게 리턴을 해줘서 응답을 할수있게 해준다. 2. @RequestMapping *어노테이션 종류 어노테이션 설명 @RequestMapping - 클라이언트에게 요청받는 주소를 클래스와 연결시켜주는 어노테이션(클래스 연결 중간..
[JAVA 웹 개발 공부] 국비지원 82일차 - 스프링 프레임 워크, IoC, 빈 등록, 어노테이션, Spring MVC, JdbcTemplate Inversion of Control(IoC) IoC란 기존 사용자가 모든 작업을 제어하던 것을 특별한 객체에 모든 것을 위임하여 객체의 생성부터 생명주기 등 모든 객체에 대한 제어권이 넘어 간 것을 IoC, 제어의 역전이라고 한다. IOC는 DI와 DL의 의해 구현된다. DL(Dependency Lookup) 의존성 검색 컨테이너에서는 객체들을 관리하기 위해 별도의 저장소에 빈을 저장하는데 개발자들이 컨테이너에서 제공하는 API 를 이용하여 사용하고자 하는 빈을 검색하는 방법이다. DI(Dependency Injection) 의존성 주입 각 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해 주는 것이다. 스프링 빈(bean) 등록 스프링(Spring) 컨테이너가 ..
[JAVA 웹 개발 공부] 국비지원 81일차 - 스프링 프레임 워크 프레임 워크 1. 프레임워크 프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능들을 위해 뼈대(구조)를 제공한다. 개발자는 이러한 뼈대 위에서 코드를 작성해 원하는 애플리케이션을 개발할 수 있다. 프레임워크는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 상호 협력하는 클래스와 인터페이스의 집합이라고 할 수 있다. 쉽게 말해 프레임워크는 개발자가 개발을 쉽게 할 수 있도록 뼈대를 제공해준다고 생각하면 된다. 특성 내용 모듈화 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상 재사용성 프레임워크는 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증이 가능 확장..
[JAVA 웹 개발 공부] 국비지원 72일차 - async / await, 재귀호출, Cookie, 배열 인덱스 설정 async / await 1. async와 await 사용 이유 콜백함수의 단점을 보완해주는 Promise, 그리고 또 Promise의 단점을 보완해주는 async/await. async/await은 Promise와 다른 개념이 아니고 Promise를 사용하는 패턴이다. async/await를 사용하는 가장 큰 이유는 Promise도 가독성이 썩 좋지 않다는 점이다. 코드가 깔끔하고 가독성이 좋아야 눈으로 로직 파악이 가능하고 디버깅이 쉬워지기 때문이다. 그리고 또 async/await로 코드의 양도 줄일 수 있다. *Promise 문법 function p() { return new Promise((resolve, reject) => { resolve('hello'); // or reject(new Er..
[JAVA 웹 개발 공부] 국비지원 71일차 - 비동기, 싱글스레드, Ajax, Promise 객체, CORS, CSS 프레임워크, 캔버스 싱글 스레드와 멀티 스레드 1. 싱글 스레드 하나의 프로세스가 한번에 하나의 일만 처리하는 것이다. 2. 멀티스레드 하나의 응용프로그램을 여러 개의 스레드로 구성하고 각 스레드로 하여금 하나의 작업을 처리하도록 하는 것이다. 하나의 스레드에 문제가 발생하면 전체 프로세스가 영향을 받기에 주의 깊은 설계가 필요하다. 또한 스레드 간의 자원 공유로 동시성 문제가 발생할 수 있다. 동기 vs 비동기 동기는 '직렬적'으로 작동하는 방식이고 비동기는 '병렬적'으로 작동하는 방식이다. 1. 동기(synchronous : 동시에 일어나는) 요청을 하면 (바로) 응답을 받는다는 의미로 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속으로, 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자..
[JAVA 웹 개발 공부] 국비지원 70일차 - 배열, Array 메소드, json 변환, 타이머 함수, setInterval, 입력 유효값 확인 배열 1. 배열 선언 let arr = []; 2. 배열 원소 초기화 (인덱스로 접근) arr[0] = 123; arr[1] = 456; arr[5] = 5555; 3. 배열 길이값 console.log(arr.length); // 6 4. 초기화되지 않은 배열 원소 console.log(arr[2]); // undefined Array 메소드 1. push() push() 메소드는 하나 이상의 요소를 배열의 가장 마지막에 추가한다. 원본 배열은 추가한 요소의 수만큼 길이(length)가 늘어나게 되며, 요소를 성공적으로 추가하면 배열의 총 길이를 반환한다. let arr = []; arr.push("마지막에"); arr.push("원소가"); arr.push("추가됩니다."); console.log(a..
[JAVA 웹 개발 공부] 국비지원 69일차 - 자바스크립트, DOM, Document, property, 프로토타입, `${}`, arrow, 클로저, 이벤트 처리 DOM 문서 객체 모델(DOM, Document Object Model)은 XML이나 HTML 문서에 접근하기 위한 일종의 인터페이스이다. 이 객체 모델은 문서 내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다. Document 객체 1. Document 객체 Document 객체는 웹 페이지 그 자체를 의미하며, 브라우저가 해당 문서에 접근을 가능할 수 있게 만든 객체이다. 웹 페이지에 존재하는 HTML 요소에 접근하고자 할 때는 반드시 Document 객체부터 시작해야 한다. 2. HTML 요소의 선택 메소드 설명 document.getElementsByTagName(태그이름) 해당 태그 이름의 요소를 모두 선택함. document.getElementById(아이디) 해당 아이디의 ..
[JAVA 웹 개발 공부] 국비지원 68일차 - CSR, 자바스크립트, JS 변수, JS 기본 연산, 함수 SSR vs CSR SSR(Server Side Rendering) CSR(Client Side Rendering) 방식 서버사이드 렌더링의 약자로 서버로부터 완전하게 만들어진 html파일을 받아와 페이지 전체를 렌더링 하는 방식이다. 클라이언트 사이드 렌더링이란 사용자의 요청에 따라 필요한 부분만 응답 받아 렌더링 하는 방식이다. 장점 SEO, 검색엔진 최적화: 검색엔진이 웹을 크롤링 하면서 페이지에 컨텐츠 색인을 생성하는 과정 어플리케이션은 화면을 구성하는 각각의 페이지가 있기때문에 SEO에 유리 빠른 초기 로딩(사용자가 기다리는 시간이 적다) 빠른 속도(초기화면 랜더링시X) 필요한 부분만 요청하고 응답하기 때문에 서버 부화 감소 사용자 친화적(깜박임X) 단점 요청시마다 새로고침 → 깜박임 생김 서버..
[JAVA 웹 개발 공부] 국비지원 67일차 - Maven 외부 라이브러리 추가, JUnit 어노테이션, JUnit DB Test Maven 외부 라이브러리 추가하기 외부 라이브러리를 사용하기 위해서 pom.xml에 태그 안에 dependency를 추가한다. 는 프로젝트가 의존하는 라이브러리들의 정보를 담는 태그이다. *자주 사용하는 라이브러리 라이브러리 기능 dependency Apache Commons DBCP » 2.9.0 DataSource 구현체 org.apache.commons commons-dbcp2 2.9.0 MySQL Connector Java » 8.0.32 jdbc mysql 드라이버 mysql mysql-connector-java 8.0.32 SLF4J API Module » 2.0.6 logger 인터페이스 org.slf4j slf4j-api 2.0.6 Logback Classic Module » 1.3.5 ..
[JAVA 웹 개발 공부] 국비지원 66일차 - API 자료 읽기, HTTP 요청 보내기, OkHttp, jsonschema2pojo, Jsoup, Jackson Dataformat CSV API 자료 읽어오기 package kr.co.greenart.testjson; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class SimpleGet { public static void main(String[] args) { String apiURL = "https://myfakeapi.com/api/users/1"; try { URL url = new URL(apiURL); HttpURLConnec..
[JAVA 웹 개발 공부] 국비지원 65일차 - JSP 파일 업로드 및 다운로드, enctype, Content-Type, JSON, API, REST API 서블릿과 JSP JSP의 구동 방식은 JSP 파일을 서블릿으로 변환하여 서블릿을 실행하는 방식이다. JSP는 클라이언트에 보여지는 결과 페이지를 생성할 때 주로 쓰이며, 서블릿은 UI 요소가 없는 제어나 기타 처리 용도로 쓰인다. 서블릿 JSP 자바 코드 안에서 전체 HTML 페이지를 생성한다. HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가한다. 변수 선언 및 초기화가 반드시 선행되어야 한다. 자주 쓰이는 기능을 내장 객체로 제공하여 즉시 사용할 수 있다. 컨트롤러(Controller)를 만들 때 사용된다. 처리된 결과를 보여주는 뷰(View)를 만들 때 사용한다. JSP 파일 업로드 및 다운로드 1. 이진데이터(이미지 파일) DB(MySQL)에 올리기 *fileupload.jsp..
[JAVA 웹 개발 공부] 국비지원 64일차 - Listener, Build Tool, Maven, logger ServletContextListener 1. Listener 이벤트 발생한 특정 사건(마우스 클릭, 키보드 입력, 클라이언트로부터의 HTTP 요청, 웹어플리케이션 시작, 웹어플리케이션 종료 등) 이벤트 소스 이벤트가 발생한 대상(근원지)으로 마우스, 키보드, 웹어플리케이션(ServletContext) 등 리스너, 핸들러 이벤트가 발생되기를 기다렸다가 발생시 실행되는 메서드나 함수. 또는 메서드를 가진 객체 2. ServletContextListener Servlet/JSP는 웹 어플리케이션을 개발하기 위한 기술이므로, 웹 환경에 관련된 이벤트들이 존재한다. 따라서 웹과 관련된 이벤트를 리스닝하고 처리할 수 있는 리스너를 구현해야 한다. Servlet/JSP에서는 웹 환경과 관련된 이벤트 리스너를 구현할..
[JAVA 웹 개발 공부] 국비지원 63일차 - HttpSession, @WebServlet, Filter HttpSession HttpSession 인터페이스는 둘 이상의 page request에서 사용자를 식별하거나, 웹 사이트를 방문하고 해당 사용자에 대한 정보를 저장하는 방법을 제공한다. Servlet container는 HttpSession를 사용하여 HTTP client - HTTP server 간의 세션을 생성한다. 이 때, 세션은 한 명의 사용자에 해당한다. 서버는 Cookie, rewriting URL와 같은 방법으로 세션을 유지하면서 관리할 수 있다. 객체를 세션에 바인딩하여 사용자 정보를 유지할 수 있다. 1. getSession(), getSession(true) HttpSession이 존재하면 현재 HttpSession을 반환하고 존재하지 않으면 새로 세션을 생성한다. 2. getSes..
[JAVA 웹 개발 공부] 국비지원 62일차 - 자바빈, init(), <load-on-statup> 태그, 커넥션 풀, 오브젝트풀 패턴, 싱글턴 패턴, 태그 라이브러리 자바빈(JavaBean) JSP에서 객체를 가져오기 위한 기법으로 데이터 전달 오브젝트 파일 DTO(Data Transfer Object)라고도 한다. 자바로 작성된 컴포넌트들 즉, 클래스(Class)를 일반적으로 말한다. JSP 프로그래밍에는 DTO(Data Transfer Object)나 DAO(Data Access Object)클래스의 객체를 JSP페이지에서 사용하기 위해 사용한다. 자바빈을 이용하여 프로그래밍을 하면 클래스의 객체 선언과 비즈니스 로직 등을 스크립틀릿 영역에서 작성하지 않아서 가독성이 좋다. 자바빈의 장점은 자바 코드를 최대한 줄일 수 있으며, 재사용이 가능하여 자원 낭비를 막을 수 있다는 것이다. 1. 태그 자바빈 객체를 생성하기 위한 태그. jsp에서 JavaBean을 통해 새..
[JAVA 웹 개발 공부] 국비지원 61일차 - 서블릿, MVC 패턴, EL, 방명록 구현 서블릿 자바 서블릿(Java Servlet)은 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종이다. 기존에 서버는 정적인 자료(HTML, 사진, 글 등)만을 주고받았다. 하지만 웹에 다양한 기능이 요구되면서 정적인 자료뿐만 아니라 사용자 요구에 맞춘 동적인 페이지들을 만들 필요가 생겼다. 이를 위해 만들어진 것이 바로 서블릿이다. 쉽게 말해 서블릿은 클라이언트의 요청에 맞춰 동적인 결과를 만들어 주는 자바 웹 프로그래밍 기술이라고 할 수 있다. 이러한 서블릿은 WAS(Web Application Server)의 서블릿 컨테이너 안에서 동작하게 된다. MVC(Model-View-Cont..
[JAVA 웹 개발 공부] 국비지원 59일차 - JSP DB 입출력, 에러페이지, Cookie, Session JSP 연습 - DB 입출력 회원 가입 서비스 (1) index 페이지 구성(서비스 페이지 링크 포함) (2) 입력폼(이메일, 이름, 성) (3) 회원정보가 DB에 추가 *index.html 회원정보 추가하기 *userform.html *adduser.jsp +) 응답 코드 405 : 요청한 페이지는 있으나 동작하지 않는다. +) request.setCharacterEncoding("UTF-8"); 파라미터 값을 가져오기 전에 설정해주기(한글깨짐 해결) *result.jsp 인덱스로 돌아가기 *ConnectionProvider.java package dbutil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLE..
[JAVA 웹 개발 공부] 국비지원 58일차 - Attribute, forward, DB 연동 기본 객체의 속성(Attribute) 네 개의 기본객체 pagecontext, request, session, application 는 속성을 갖고 있다. 속성은 각각의 기본 객체가 존재하는 동안에 사용될 수 있고, JSP 페이지 사이에서 정보를 주고 받거나 공유하기 위한 목적으로 사용된다. 형태를 가지고, 서로 다른 이름을 가진 속성을 여러개 포함할 수 있다. request 기본 객체는 한 번의 요청에 대해 유효하게 동작하며 , 한 번의 요청을 처리하는 데 사용되는 모든 JSP에서 공유된다. 메소드 반환타입 설명 setAttribute(String name, Object value) void 이름이 name인 속성의 값을 value로 지정한다. getAttribute(String name) Object..
[JAVA 웹 개발 공부] 국비지원 57일차 - JSP 연습, request, GET 방식, POST 방식, Stateless, Redirect JSP 연습 1. 퀴즈 페이지 만들기 *quiz.html Java Spec중 동적 페이지 구성은 어떤 걸로 가능? html jsp radio quiz *quizanswer.jsp 2. 취미생활 개수세기 *hobby.html 취미 선택 자바 리그 오브 레전드 히어로즈 오브 스톰 도타 *hobbycount.jsp 3. 랜덤퀴즈 만들기 *randomquiz.jsp *randomanswer.jsp 4. 로그인 페이지 만들기 id : admin / password : root 로그인 성공 → 메시지 출력 로그인 실패 → 실패 메시지와 로그인 페이지로 이동할 수 있는 링크 제공 *login.html 아이디 비밀번호 *loginprogress.jsp 로그인 페이지로 이동 5. 간단한 웹 계산기 *calcform.js..
[JAVA 웹 개발 공부] 국비지원 56일차 - CSS 선택자, 스타일 시트, position, HTML 시맨틱 태그, 웹서버, WAS, JSP, Postman CSS 선택자 1. 기본 선택자 종류 설명 형식 전체 선택자 HTML 에서 사용할 수 있는 모든 요소를 한번에 선택자로 지정 *{/* CSS 코드 */} 태그 선택자 HTML 태그명으로 선택자를 지정 태그명{/* CSS 코드 */} 아이디 선택자 HTML 태그에서 사용할 수 있는 id 속성값을 이용해 선택자를 지정 #id속성값{/* CSS 코드 */} 클래스 선택자 HTML 태그에서 사용할 수 있는 class 속성값을 이용해 선택자를 지정 .class속성값{/* CSS 코드 */} 기본 속성 선택자 HTML 태그에서 사용할 수 있는 속성과 값을 사용해 선택자를 지정 [속성]{/* CSS 코드 */} [속성=값]{/* CSS 코드 */} 2. 조합 선택자 종류 설명 형식 그룹 선택자 여러 선택자를 하나로 ..
[JAVA 웹 개발 공부] 국비지원 55일차 - 3-tier architecture, 인터넷, 통신망, 프로토콜, 웹 서버, 톰캣, VSCode, html, css 3-tier architecture 클라이언트와 클라이언트의 요청을 받는 부분을 분리를 시킨다. 클라이언트에선 화면을 보여주기만 하고 요청이라는 것을 만들어내서 요청을 서버라는곳에 전송을 하게 만들어준다. 서버에서 처리를 다 한 후 응답이라는것을 해준다. 요청을 보내고 응답을 받는 과정을 네트워크 요청을 통해서 할 수 있다. 서버에 중요한걸담고 클라이언트에는 넣지 않으면 되므로 보안의 문제에서 좀더 자유로워질 수 있다. 네트워크 기초 1. 인터넷(Internet) 개념 인터넷은 컴퓨터로 연결하여 TCP/IP 라는 통신 프로토콜을 이용해서 정보를 주고받는 컴퓨터 네트워크이다. 인터넷은 종단 시스템, 통신망, 프로토콜, 주소체계, 인터넷 접속 제공으로 구성되어 있다. 구성요소 설명 종단 시스템 호스트, 서버..
[JAVA 웹 개발 공부] 국비지원 54일차 - 커맨드패턴(디자인패턴), DB에서 이미지 가져오기 커맨드패턴(디자인패턴) 커맨드 패턴은 객체의 행위(메소드)를 클래스로 만들어 캡슐화 하는 패턴이다. 즉, 어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면 그 객체(B)를 참조하고 있어야 하는 의존성이 발생한다. 그러나 커맨드 패턴을 적용하면 의존성을 제거할 수 있다. 또한 기능이 수정되거나 변경이 일어날 때 A 클래스 코드를 수정없이 기능에 대한 클래스를 정의하면 되므로 시스템이 확장성이 있으면서 유연해진다. import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.HashMap; import java.util.Map; interface 명령처리자 { public 결과 처리(); } class..
[JAVA 웹 개발 공부] 국비지원 47~54일차 - 팀프로젝트 <DB 프로젝트_마음을 JAVA라> 주제 1. 프로젝트 목표 JAVA GUI와 데이터데이스 활용을 통한 2 Tier Program 제작 2. 주제 친구와 서로를 얼마나 잘 알고 있는지를 알아갈 수 있는 QnA 게임 (1) 회원가입시 간단한 질문에 답을 작성한 후, 친구를 선택하여 게임을 시작 (2) 게임에서는 친구가 퀴즈를 푼 결과를 유추하며 맞추고, 이를 토대로 점수 및 랭킹 확인 3. 주제 선정 이유 사회에서 개인주의적인 경향이 강해지고 있기 때문에, 이 프로젝트를 통해 친구들끼리 서로를 더욱 잘 알아가고, 더욱 깊은 대화를 나눌 수 있도록 돕고자 함 프로그램의 기능 1. 회원 가입과 회원정보 DB 관리 2. 질문지 작성 다른사람 공략 랭킹 확인 3. 시뮬레이션을 통해 재미요소 추가 프로그램의 제작과정 UI 구상 프로그램 구성 *프로그..
[JAVA 웹 개발 공부] 국비지원 46일차 - 이진데이터, BLOB, Path 클래스, Files 클래스, 베이스64 인코딩, 외부 데이터베이스 접근 BLOB Binary Large Object 의 약어이다. 이진 데이터를 저장하기 위한 MySQL 의 필드 유형이라고 한다. 이미지의 경우 이진 데이터로 이루어져 있기 때문에 BLOB 유형의 데이터로 만들어서, MySQL 데이터베이스에 저장할 수 있다. MySQL 에는 4가지의 BLOB 타입이 있다. *BLOB *TINYBLOB *MEDIUMBLOB *LONGBLOB Path 클래스 특정경로나타내는 객체이며, 경로 표시를 다양하게 나타낼 수 있다. File file = new File("D:\\Java\\춘식\\춘식16.png"); Path path = Paths.get("D:\\Java\\춘식\\춘식16.png"); Files 클래스 파일관련작업들을 메소드화 시켜서 글자를 쓰거나 읽어오거나 이진데이터를..
[JAVA 웹 개발 공부] 국비지원 45일차 - 회원가입 프로그램, GeneratedKeys, regex(Regular expression) 회원가입, 회원탈퇴 프로그램 package main; import java.util.Scanner; import exceptions.DataIOException; import exceptions.InputNotValidException; import user.UserinfoRepositoryImpl; import user.UserinfoService; import user.UserinfoServiceImpl; // 간단한 입력(콘솔 입력) // 1. 회원가입 // email 서식 // @가 하나는 포함되어있어야 함. // @앞은 영소문자만 1~15자 문자열 // @뒤는 영소문자 or . 의 1~15자 문자열 // 이름, 성 서식 // 영소/대문자 및 한글로 표현된 1~15자 문자열 // 2. 회원탈퇴 p..