IT
DAO와 DTO사용 이유/getter setter
TodoDao와 TodoDto의 클래스를 만들어서 각각 분할해서 사용하는 이유 왜 분할해서 사용하는지 이유가 궁금해서 찾아보았는데 이해가 잘 안됐다. 너무 전문가적으로 장황하게 설명돼있기도 했고 쉽게 설명한 곳이 찾기 어려워 그냥 사용하다가 약간이나마 깨우쳤다. DAO 한가지만 알자. dao를 만들지 않는다면 매번 db로그인을 해야한다. connection객체를 매번 생성해야하기 때문에 간편하게 dao를 만들고 crud작업을 할 때 객체생성 후 인자값만 던져주면 된다. DTO dto는 데이터를 받는 형식을 지정한다. 처음 사용할 때는 DTO를 많이 만들 필요가 없기에 DB테이블과 같은 형식일 것이다. 예를들어 userId, password, email, phone 칼럼이 있다면 dto도 칼럼과 같은 형식..
부스트코스 DB연결웹앱 #9 WEB API, REST API
API란 인터페이스만 알아도 해당 기능을 사용할 수 있게 하는 기능이다. 즉 자세한 코드는 모르고 틀만 알아도 작동되게 하는것이다. 자세한건 유튜브에 니꼴라스가 설명한 API개념을 보고 오는걸 추천한다. REST API란? 말 그래도 REST형식의 API를 말한다. 그게 무슨말이냐? 나도 잘 모른다. 영상도 보고 이것저것 찾아봤는데 생각보다 어려운 개념이다. 설명하시는 분들이 정석적으로 설명해서 더 어려운 부분도 있는 것 같다. 쉽게 말해서 REST라는 형식이 존재한다. REST라는 형식이란 예를들면 영어는 영문법이 존재하고 일본어도 일본어 문법이 존재한다. REST는 REST라는 문법이라고 생각하면 편할것이다. API를 그 REST라는 문법에 맞춰서 만든 것이 REST API이다. REST API가 웹..
부스트코스 DB연결웹앱 #8 JDBC-2
학습 목표 JDBC를 이용해 입력/수정/삭제/조회 프로그래밍을 할 수 있다. 1번째 강의는 20분짜리 내용은 많은데 스크립트는 코드밖에 없어서 자체해석하면서 설명을 하겠습니다. 앞서 db에 만든 role이라는 테이블을 활용해서 셀렉트하는 과정까지가 이번 20분짜리 강의이다. 먼저 만든 클래스 Role.java package kr.or.connect.jdbcexam.dto; public class Role { private Integer roleId; private String description; public Role() { } public Role(Integer roleId, String description) { super(); this.roleId = roleId; this.description ..

부스트 코스 DB연결 웹앱#8 JDBC-1
학습 목표 JDBC가 무엇인지 이해한다. JDBC란 자바를 이용해서 데이터베이스를 조작할 수 있게 하는 것이다. CMD에서 데이터베이스를 조작하기에는 불편하니 자바를 통해서 조작할 수 있게 만든 것이다. JDBC를 이용한 프로그래밍 방법 import java.sql.*; 드라이버를 로드한다. CONNECTION 객체를 생성한다.(DB접속) STATEMENT 객체를 생성 및 질의 수행(쿼리문 작성) SQL문에 결과물이 있다면 RESULTSET 객체를 생성한다.(SELECT문처럼 결과문이 있는 경우 사용) 모든 객체를 닫는다. JDBC 사용 - 단계별 설명 1.임포트 import java.sql.*; 2.드라이버 로드 Class.forName( "com.mysql.jdbc.Driver" ); 3.Connec..
부스트코스 DB연결 웹앱#7 SQL-2
학습 목표 테이블을 생성할 수 있다. 테이블을 수정할 수 있다. 테이블을 삭제할 수 있다. 이번 시간엔 테이블 생성 수정 삭제에 대해서 알아보자. 개념은 크게 세가지이다. create table alter table drop table 테이블 생성은 create table 테이블명( 필드명1 타입 필드명2 타입.....);이다. 간단하게 북이라는 테이블을 생성해보자 create table book( -> isbn varchar(10) primary key, -> title varchar(10) not null, -> price integer not null); 프라이머리 키를 생성 후 나머지 값들을 넣었다. 테이블은 이렇게 만들면 된다. 테이블수정 컬럼 추가 alter table 테이블명 add 필드명 ..

부스트코스 DB연결 웹앱#7 SQL
SQL을 설치한 후 유저를 생성후 접속한다 mysql -uroot -p 후 비밀번호를 입력하고 데이터베이스를 생성하려면 create database DB명;을 입력한다. db이름은 connectdb로 한다 데이터베이스가 생성됐으면 유저를 생성한다. 현재최신버전은 8버전이고 8버전의 코드는 이걸 입력하면 된다. create user 'connectuser'@'localhost' identified by 'connect123!@#'; grant all privileges on connectdb.* to 'connectuser'@'localhost'; grant all privileges on connectdb.* to 'connectuser'@'%'; flush privileges; 그리고 나서 만든 유저명..
부스트코스 DB연결 웹앱 #6 EL,JSTL
점점 배우는 언어가 많아진다. 백엔드 언어가 자바인 경우 배우는 것이 프론트를 제외하더라도 JAVA, SERVLET, JSP, EL, JSTL ...뒤로 SPRING등이 있을 것이다. 노드를 썻을 때는 자바스크립트와 노드문법 적당히만 알면 사용가능 했었는데 확실히 자바는 배울것이 많다. 하지만 한국에 취업하려면 자바를 꼭 해야하니 어쩔 수 없다...ㅠ EL은 표현언어이다. 출력할때 사용하며 사용법은 ${변수}이다. 연산까지 가능하며 for문이나 if문은 사용 불가능하다 그것을 사용하려면 jstl을 배워야한다... 간단한??코드로 예를 들자면 pageScope: pageScopeEl: ${pageScope.p1} requestScopeEl: ${requestScope.r1} sessionScopeEl: $..

부스트코스 DB연결 웹앱 #5 scope
핵심 개념 application scope session scope request scope page scope 각 변수를 특정범위 내에서 사용하기 위해서 scope를 알아야한다. 스코프는 크게 4가지가 있다. Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 Session : 웹 브라우저 별로 변수가 관리되는 경우 사용하며 변수를 유지할 때도 사용하며 여러번 요청받아도 유지된다. Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용하며 한번의 요청동안 유지된다. Page : 페이지 내에서 지역변수처럼 사용 핵심 개념 PageContext jsp 페이지에서 pageContext라는 내장 객체로 사용 가능 하다...
부스트코스 DB연결 웹앱 #4 redirect & forward
핵심 개념 HttpServletResponse sendRedirect() 리다리렉트는 http프로토콜로 정해진 규칙이다. 서버는 클라이언트의 요청에 대해 특정 URL로 이동을 요청할 수 있다. 이를 리다이렉트라고 한다. 1. 클라이언트가 요청을 하면 서버는 리다이렉트가 담긴 코드를 보고 HTTP상태코드 302와 헤더 내 LOCATION 값에 이동할 URL을 함께 보낸다. 클라이언트:주소 요청 >>HTTP://WWW.~~~~주소 요청(안에 리다이렉트코드 있음)>> >>서버: 리다이렉트코드를 보고 내 상태 코드와 바뀐 주솟값을 클라이언트에게 다시 전달 >>>>상태코드 + 주소>>>> >>클라이언트: 상태값이 302인걸 확인 + 바뀐 주소값으로 자동으로 서버에 재요청 >>> 서버:바뀐 주소 응답. 리다이렉트는..
부스트코스 DB연결 웹앱 #3 JS
핵심 개념 jsp (java server page) JSP는 무조건 서블릿으로 바뀐다. 그러므로 서블릿으로 바꿀 때 어떻게 바꿔야하는지를 구분하는 방법이 init > service가 실행된다. jsp로 init이나 디스트로이에 코드를 넣으려면 로 따로 지정해줘야 한다.