백엔드 70

Spring - DI 지시서 작성(xml) | TIL_149

https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T 스프링 강의를 듣고 정리한 내용입니다 스프링 DI 지시서 작성하기 객체를 결합하는 방식은 크게 2가지 방식이 있다 생성자를 통해서 주입받는다 setter를 통해서 주입받는다 setter를 이용하는 예시 Program 클래스 수정 public class Program { public static void main(String[] args) { //Entity 클래스 Exam exam = new NewlecExam(); //출력 클래스 //ExamConsole console = new InlineExamConsole(exam); //생성자로 주입 ExamConsole consol..

백엔드/Spring 2022.10.03

Spring - DI 실습 | TIL_148

https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T 스프링 강의를 듣고 정리한 내용입니다 실습 Dependency를 직접 Injection하기 -> 부품을 조립하는 과정을 실습한다 DI를 위한 프로젝트 생성 – 성적계산 프로그램 실행을 위한 Program 클래스 생성 package spring.di; public class Program { public static void main(String[] args) { //Entity 클래스 Exam exam = new NewlecExam(); //출력 클래스 ExamConsole console = new InlineExamConsole(exam); console.print(); }..

백엔드/Spring 2022.09.30

Spring 이론 - DI, IoC | TIL_147

https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T 스프링 강의를 듣고 정리한 내용입니다 DI(Dependency Injection) 객체를 생성하고 객체를 조립한다 Dependency들을 조립하기 1. 일체형으로 관계를 가진 경우 Composition has a class A { private B b; //종속 객체 == 부품 public A() { b = new B(); } } 2. 조립형으로 관계를 가진 경우 - 외부에서 생성하여 객체를 사용하는 방식을 사용한다 Association has a class A { private B b; public A() {} pulic void setB(B b) { this.b = b; ..

백엔드/Spring 2022.09.28

Spring 이론 | TIL_146

https://www.youtube.com/playlist?list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T 위의 스프링 강의를 듣고 정리한 내용입니다 Java EE(Enterprise Edition) 웹 개발을 할 수 있는 자바의 API로 분산형, 기업형 응용 프로그램이다 결합력을 낮추는 DI, DB 트랜잭션 처리, 로그 처리 등의 기능이 존재한다 -> 스프링이 이 기능들을 간편하게 수행한다 Java SE(Standard Edition) 일반적인 로컬 응용 프로그램이다 개발을 위한 API이다 웹 개발을 할 때 Enterprise 에디션을 설치한 적이 없지만 이를 이용한 기능을 사용할 수 있었다 이는 EE 대신 Spring을 사용하기 때문에 대체된 것이다 ** EE버전이 유료화가 진..

백엔드/Spring 2022.09.26

Jdbc(ojdbc) 검색 서비스 추가하기 | TIL_140

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 검색 메뉴 붙이기 NoticeConsole에 추가 System.out.printf("1.상세조회/ 2.이전/ 3.다음/ 4.글쓰기 / 5.검색 / 6.종료>"); NoticeProgram switch문 수정 case 4 : //글쓰기 break; case 5 : //검색 console.inputSearchWord(); break; case 6 : //종료 System.out.println("종료합니다."); break EXIT; NoticeConsole 입력을 받을 때 2가지 키워드가 필요하다 검색어와 검색을 위한 필드(제목, 작성자 등) 검색을..

백엔드/Database 2022.09.02

Jdbc(ojdbc) 게시글 개수, 마지막 페이지 | TIL_139

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 마지막 페이지를 알 수 없기에 마지막 페이지를 구하는 로직이 필요하다 -> printNoticeList() 메서드의 list값을 page로 바꾼다 List list = service.getList(page); 게시글 개수 구하기 데이터 베이스에 들어있는 전체 목록의 개수를 알아야 한다 전체 목록의 개수를 알아야 몇 개의 페이지가 될 것인지 알 수 있다 -> 다음 페이지의 존재 여부를 알 수 있다 NoticeConsole 전체 개수를 관리하는 변수를 선언한다 private int count; SQL문 SELECT COUNT(ID) COUNT FRO..

백엔드/Database 2022.08.31

Jdbc(ojdbc) 페이징 쿼리 | TIL_138

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 페이징을 위한 쿼리 만들기 1부터 10까지의 ROWNUM을 검색하는 SQL문 SELECT ROWNUM, NOTICE. * FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 10; 위 구문의 문제점 : BETWEEN 2 AND 10;인 경우 조회되지 않는다 해결법 : 서브쿼리를 이용한다(안에서 만들어진 번호) SELECT * FROM ( SELECT ROWNUM NUM, NOTICE. * FROM NOTICE) WHERE NUM BETWEEN 2 AND 10; 최신글 순서대로 정렬하기 SQL문 SELECT * FROM NOTIC..

백엔드/Database 2022.08.29

Jdbc(ojdbc) 사용자 인터페이스 | TIL_137

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 사용자 인터페이스 상수 값이 아닌 사용자에게 값을 입력받을 수 있도록 인터페이스를 만든다 웹 기반의 사용자 인터페이스 콘솔 기반의 사용자 인터페이스 **ui는 자바를 배운 이후에 듣는 것을 가정했기 때문에 콘솔 기반으로 작성한다 목록에서 작성할 내용 상세조회 이전 다음 글쓰기 페이지 넘기기 (옵션) NoticeConsole 클래스 생성 package com.newlecture.app.console NoticeConsole.java //콘솔이 데이터를 가지고 있어야 한다 private NoticeService service; public Notic..

백엔드/Database 2022.08.24

Jdbc(ojdbc) crud 서비스 클래스 | TIL_136

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 CRUD를 담당하는 NoticeService 생성하기 package명 –> com.newlecture.app.service 이름이 충돌되지 않게 하기 위해 도메인 이름으로 짓는다 -> 그동안 패키지 명을 com.name으로 짓는 이유가 궁금했는데 강의를 통해 알게되었다 Notice.java 일종의 그릇이 되는 개체 클래스이다 package com.newlecture.app.entity //클래스 생략 private int id; private String title; private String writerId; private Date regDat..

백엔드/Database 2022.08.19

트랜잭션 / 데이터 추가 사이트 | TIL_135

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 트랜잭션 처리 트랜잭션이란? 하나의 단위로 수행되길 바라는 쿼리의 묶음이다 단위 = 업무 수행 단위, 논리적인 수행 단위 예시 UPDATE TABLE SET PUB = 1 WHERE ID IN (2,4,6,7,9); UPDATE TABLE SET PUT = 0 WHERE ID IN (1,3,5,8,10); 일괄 공개 여부를 나타내는 컬럼 PUB PUB = 1 공개 PUB = 0 비공개 -> 위 쿼리의 경우 SQL 구문이 별개로 존재하지만, 내용상으로 서로 연관된 쿼리이기 때문에 일괄 공개라는 하나의 단위로 이루어진 트랜잭션이라고 할 수 있다 ->..

백엔드/Database 2022.08.17