주니 개발 도서관

분류 전체보기 71

[ JPA ] JPA 기초

[ JPA ] JPA설명, 생성, 설정, 기초 사용방법 정도를 작성해 보았습니다! JPA 설명 JPA를 쉽게 얘기하자면 자바 객체와 DB테이블을 자동 매핑해주고 SQL문이 아닌 Method를 통해 DB를 조작할 수 있게 됩니다! 장점 1. SQL문이 아닌 Method를 통해 DB조작 = 비즈니스 로직을 구성하는데만 집중 가능 2. 쿼리와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들고 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성이 높아짐 3. 객체 지향적인 코드 작성이 가능. 객체지향적 접근만 고려하면 되기때문에 생산성 증가 4. DBMS 변경시 ex) MySQL >> Oracle, 새로 쿼리를 짜야하는 경우가 생기는데 이런경우 ORM ( JPA ) 를 사용한다면 쿼리를 수정할 필요가..

JPA 2022.11.01

[ Spring Boot ] 트랜잭션

[ 트랜잭션 ] 트랜잭션(Transaction)이란, DB의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. DB의 상태를 변화시킨다는 것은 무얼 의미하는 것일까? 간단하게 말해 SQL문을 이용하여 DB에 접근 하는 것을 의미한다. ex) CRUD ( insert, select ,update, delete ) 기능구현을 위해 DB의 상태를 변화시키는 메서드 즉, 수행되는 하나의 작업 단위가 트랜잭션 인 것이다 트랜잭션의 사용위치는 Service 클래스이다 Service 클래스에서 boardDAO와 memberDAO를 사용할 것인데 boardDAO.insert + memberDAO.update ( 작성한 글 갯수 +1 ) 두가지 로직을 사용한다고 가정해 보자 ex) 트랜잭션 { BoardDAO.in..

Spring boot 2022.11.01

[ Spring boot ] JDBCTemplate

DB를 연동하여 Spring boot에 적용시켜보자! JDBC 기본적인 순서 1. 드라이버 적재 2. 연결 3. sql문 실행 4. 해제 => 반복적인 작업들은 Spring에서 모듈화하여 제공 프로젝트를 먼저 생성한다 웹에서 사용하기때문에 Spring Web 체크 + JDBC를 검색하여 JDBC API 체크 현재사용하고있는 DB ( Mysql || Oracle 사용중 ) 이번에는 Oracle을 사용하겠습니다 Oralce만 체크하여 사용 할... 예정이였으나 ** 오라클은 최신버전이 아니여서 이용이 안되는 이슈가 있다 따로 체크는 하지않고 별도로 버전에 맞는 jar 파일을 넣어서 사용하도록 하겠습니다 사용중인 프로젝트 Libraries에 오라클관련 jar파일을 추가하여 사용! application.prop..

Spring boot 2022.10.27

[ Spring boot ] Validator ( 유효성 검사 )

[ Validator ] 사용자가 보낸 데이터( = 폼 데이터 ) 유효성 검사 이 유효성 검사는 " 두 단계 "로 진행하는 것이 보편적임 1. 클라이언트 ( 브라우저, 사용자) : JS 2. 서버 : 파라미터 값을 검증 클라이언트에서 유효성검사가 가능하지만 100% 모두 막을 순 없다 그렇기 때문에 두 단계로 서버에서도 유효성 검사를 해주는 것이 보편적이다 회사마다 유효성검사다 다르기 때문에 유지보수에 좋지않다 하지만, 스프링에서는 Validator 인터페이스를 구현해놓음 >> 개발자들이 보다 일관된 코드를 작성할 수 있게됨 Validator를 이용하기위해 한번 DTO ** , Validator, Controller 를 생성 DTO(Data Transfer Object) 란 내가 사용했던 VO의 역할을 ..

Spring boot 2022.10.26

[ Spring Boot ] 부트 웹 기초

[ Spring Boot ] 부트 웹 기초 Spring boot에서 JSP와 HTML을 사용하기 위해선 Web관련 다운로드가 필요합니다! Help - Eclipse marketplace wizard - java web 검색 다운로드하며 자연스럽게 Next 및 동의는 편하게 진행한다 HTML와 jsp 생성이 가능하게 되었습니다 HTML은 static 폴더 내부에 생성한다 JSP를 사용하기위해서 Dependencies를 추가해 주어야 한다 ** 자동업데이트가 되지않기 때문에 직접 해줘야한다 디펜던시 추가한 이유? 1. 스프링 부트에서는 기본적으로 JSP를 지원하지 않음 2. 스프링 부트에 내장된 tomcat에는 컴파일하는 jsp 관련 엔진이 포함되지 않음 직접 넣어주어야한다 implementation 'ja..

Spring boot 2022.10.25

[ Spring boot ] 의존 주입

[ Spring Boot ] 의존 주입 이전 글을 보고 오시면 좋습니다 >> 프로젝트 생성 이후 부분입니다! https://hongjuni.tistory.com/75 [ Spring Boot ] 다운로드 및 설정 [ Spring Boot ] 설치 및 설정 기존의 빈 (Bean) 설정 XML 사용안함 >> @(어노테이션) 사용 ( 강사님이 이전프로젝트에서 부트형식으로 해주심 ) 빈 등록을 위한 설정파일 (.xml) 이 불필요해지므로 자바 hongjuni.tistory.com 일단 port 설정부터 바꿔줘야 할 것 같습니다 내장된 톰캣 서버의 기본 포트 번호는 8080 인데 오라클을 8080포트로 사용하고 있기때문에 함께 사용하면 충돌 발생 >> application.properties에서 설정 >> ser..

Spring boot 2022.10.24

[ Spring Boot ] 다운로드 및 설정

[ Spring Boot ] 설치 및 설정 기존의 빈 (Bean) 설정 XML 사용안함 >> @(어노테이션) 사용 ( 강사님이 이전프로젝트에서 부트형식으로 해주심 ) 빈 등록을 위한 설정파일 (.xml) 이 불필요해지므로 자바 코드만 보고서도 전체내용을 파악가능 라이브러리 관리 ( pom.xml ) xxx -> 그레이들 (GRADLE) 사용 그레이들 사용시 xml 대신 간단한 설정파일을 사용할 수 있게됨 외부 와스(웹서버)연결 없이 내장된 톰캣 서버 사용 가능 >> 톰캣 연동이 필요 없어짐 스프링 라이브러리 관리를 위한 자동설정 제공 ( 스프링 부트 스타터 ) 과도한 xml 설정이 필요없음 ※ 스프링 프레임 워크와 비교하여 여러 가지 장점이 있다. 1. 스프링 프레임 워크를 사용 하면 많은 XML 설정파..

Spring boot 2022.10.24

[ Spring Shoes 프로젝트 ] 페이징처리

[ 페이징 처리 ] 페이징은 속도는 빠르게, 부하는 적게 하기 위해 필요한 데이터만 가져올 수 있도록 데이터를 분리하는 작업이다 3만 개의 게시물 데이터가 있다고 가정했을 때, 3만 개의 데이터를 한 번에 가져온다면 DB에서 쿼리로 3만개의 데이터를 조회한다. 정렬과 필터조건, 조인 뿐만 아니라 복잡한 로직이 없더라도 쿼리를 순식간에 실행해 3만 개의 데이터를 서버에 전달하면 이미 부하를 받는다 3만 개의 게시물이 대부분의 사용자에게 한번에 필요한 경우도 없을 뿐더러 필요하더라도 부하를 위하여 페이징을 해야 한다. 페이징 처리를 위해 필요한 변수생성 현재 프로젝트에서 사용하고 있는 변수들인데, ** Class로 따로 묶어두지않고 ShoesVO안에 생성한 상태이다 노란 밑줄변수들은 페이징처리 변수를 클래스..

팀 프로젝트 2022.10.14

[ Mybatis 프레임워크 ] 새로운 DAO 관리

[ Mybatis 프레임워크 ] Ibatis라는 이름으로 시작됨 >> Ibatis가 보인다 = 예전코드구나, Mybatis구나 ( 문법은 조금 다름 ) ※ 사용이유 1) DB연동을 담당하는 JAVA 코드를 1~2줄로 줄일수 있음 [ 가독성이 좋아짐 ] 2) SQL 문은 JAVA코드에서 분리하여 XML 파일로 별도 관리가능 [ 응집도 ↑↑↑ ] 즉, 유지보수 용이 ※ 팀 프로젝트에 적용하는 방법? 1) **우리가 어필해야하는 부분 >> 여러가지 버전의 DAO를 빠르게 교체 가능 @Repository(DAO 클래스) + @Service(Serviceimpl 클래스) >> [ 2 layered 아키텍처 ]를 이용하여 교체 2) 상대적으로 간단한 기능들의 CRUD를 Mybatis로 구현 MybatisDAO를 제..

Spring 2022.10.04

[ 다국어 처리 ] Spring을 이용하여 표현

[ 다국어 처리 ] - "국제화" 라고도 함 하나의 페이지를 여러가지의 언어로 서비스하는 것 과거에는 언어별로 페이지를 다르게 제작함 ( = 국제화 X ) >> 프레임워크의 다국어처리기능을 사용 ( 별도 페이지 제작을 하지 않고 표현할 예정 ) 1) 메세지 파일 제작 new >> file 생성 . properties 확장자 고정 언어를 Locale 정보로 수행 ( ko, ja, en, zh ) >> 파일명에 언어에 해당하는 Locale 코드를 추가 ex) xxx_en.properties, xxx_ko.properties 파일 내부에는 메세지변수 + 메세지 값을 작성 값은 유니코드로 작성 ( 자동변환 됨 ) 2) 스프링설정파일에게 메세지 파일들을 읽어들일수있도록 클래스 추가 다국어 처리 클래스 클래스를 생..

Spring 2022.09.29