사이트 바로가기 : http://playhost.shop 이번 23년 11월 15일부터 12월 8일 대략 3주간 팀 프로젝트를 진행하였습니다. 팀원은 총 6명이 진행하였으며 팀당 2명씩 역할 분담을 나누어 사이트를 제작하였습니다. 📝 프로젝트 선정배경 프로젝트 선정배경은 프로젝트 주제 선정과정에서 강의 시간에 배웠던 API를 활용한 사이트을 제작하기로 회의 때 이야기를 하였고, 그 중 게임 소프트웨어 유통망 사이트인 Steam(스팀)의 API를 활용한 게임 판매 사이트를 제작하기로 결정하였습니다. 📝 프로젝트 목표 저희 playhost 사이트의 목표는 다음과 같습니다. 직관적이고 한눈에 보기 쉬운 사이트 일 것 스팀 API를 활용한 다양한 게임 조회 기능 구현 사이트 관리자가 직접 판매할 게임을 추가/삭..
안녕하세요 ! :) front + backend 를 통합한 게시판을 생성하는 예제를 만들어보겠습니다. 📖 frontend작업 프론트 작업은 VSCode를 이용하여 프로젝트를 생성하였습니다. frontend 프로젝트는 React + typescript를 이용하였습니다. 프로젝트 형태는 다음과 같습니다. src 폴더 아래에는 다음과 같은 파일들이 들어갑니다. assets(css파일, 이미지파일, javascript 파일) compoents(common(헤더, 푸터, 타이틀)) page(auth(로그인관련), 각종 메뉴 페이지들) common(공통으로 사용할 페이지 관련) service(벡엔드에 요청할 서비스 함수작성 파일) types(자바의 모델과 같은 파일) utils(백앤드 서버와 연동) 파일을 생성하였..
💡 SQL을 추상화한 JPQL JPA : ORM(Object-Relational Mapping) 프레임워크 JPQL(Java Persistence Query Language) JPA는 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어를 제공합니다. 따라서 테이블을 대상으로 쿼리 하는 것이 아닌 엔티티 객체를 대상으로 쿼리합니다. JPQL은 SQL을 추상화했기 때문에 특정 데이터베이스 SQL에 의존하지 않는 장점이 있습니다. JPQL은 SQL과 문법이 유사하며, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN을 지원합니다. 💡 쿼리메소드를 사용한 쿼리문 만들기 ✅ TODO 1) 전체 조회 + 정렬(내림차순) 📂 DeptRepository.java package com.ex..
안녕하세요! 이번 시간에는 JPA 를 활용한 예제 프로젝트를 생성해보겠습니다. 들어가기 전에 JPA의 특징으로는 SQL문을 자동생성하는 것이 특징입니다. 💡 프로젝트 준비 및 환경설정 프로젝트 준비시 스프링부트의 종속성을 추가합니다. 생성 후 시간이 소요됩니다. 한글 깨짐 방지를 위해 설정 - 에디터 - 파일 인코딩 부분에 UTF-8로 변경해줍니다. build.gradle 파일의 dependencies 부분에 오라클과 logback, log4jdbc 종속성을 추가해줍니다. // todo: 오라클 라이브러리( 19c ) implementation 'com.oracle.database.jdbc:ucp:19.14.0.0' implementation 'com.oracle.database.security:orac..
💡 Core 라이브러리 JSTL의 core 라이브러리를 사용하기 위해서는 JSP 파일 상단에 코드를 선언합니다. 📖 : 변수에 값을 저장 변수저장소(사용범위) page(현재페이지) < request < session < application(전체프로그램) 사용법 : 📌 사용 예제 ${num} ${num2} ${total} 📌 결과 📖 : 문자열 구분자로 구분하여 전체 출력하기 사용법 : 실행문 📌 사용예제 토큰 : ${number} 📌 실행결과 📖 : try ~ catch 예외처리 사용법 : 실행문 실행문이 에러 발생하면 에러변수에 메세지가 들어감 📌 사용예제 ${num3} 에러 메세지 : ${err.message} 📌 실행결과 📖 : 페이지 강제이동 📖 : 공통페이지 끼워 넣기 📌 사용예제 📖 : ur..
💡 파라미터 방식 앞 전 예제에서는 쿼리스트링 방식으로 매개변수를 전달하였습니다. 이번에는 쿼리스트링 방식을 개선한 파라미터 방식의 매개변수 전달 방법에 대해 알아보겠습니다. 📂PathVariableController.java @Controller @RequestMapping("/exam05") public class PathVariableController { // TODO : url 테스트 파라미터 방식 : http://localhost:8000/exam05/path-variable/LeeJunHyuk // => @GetMapping("/path-variable/{웹매개변수명}") // => 웹 브라우저 주소창 사용 : url/값 // TODO : url 테스트 쿼리스트링 방식 : http://loc..
💡 Lombok 라이브러리 Lombok 라이브러리는 유용한 어노테이션을 모은 라이브러리입니다. 다음 예제 실습을 위한 몇 가지 롬북 어노테이션을 소개합니다. // @Setter : setter 함수를 만들어주는 어노테이션 // @Getter : getter 함수를 만들어주는 어노테이션 // @ToString : toString 재정의 함수 자동으로 만들어주는 어노테이션 // @AllArgsConstructor : 모든 속성을 가진 생성자 자동 정의 어노테이션 먼저 실습을 하기 위해 아래와 같이 폴더를 구성합니다. 📂 model > Member.java package com.example.controllerexam.model; import lombok.AllArgsConstructor; import lom..
💡 JSP의 조건문, URL 매개변수에 3개를 전달해서 조건에 따라 출력하기 📂 MultiParamController.java TODO : 예제 3) JSP의 조건문, URL 매개변수 3개를 전달해서 조건에 따라 출력하기 // URL 테스트 : http://localhost:8000/exam03/condition?name=삼식이&color=brown&kind=dog @GetMapping("/condition") public String setCondition(Model model, @RequestParam(defaultValue = "") String name, @RequestParam(defaultValue = "") String color, @RequestParam(defaultValue = "") ..
💡 모델을 통해 변수 등록하는 방법 모델은 컨트롤러의 메서드에서 매개변수로 받아옵니다. 모델에서 변수를 등록할 때는 addAttribute() 메서드를 사용합니다. model.addAttribute("변수명", 변숫값); 📂 HelloController.java package com.example.controllerexam.controller.exam01; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; /** * packageName : com.example.controllerexam.cont..