본문 바로가기

코딩도전기85

CODO Day40_Spring(MyBatis) spring의 특징 1. 제어역행(I.O.C : Inversion Of Control) 지원하여 사용자가 직접 코드를 호출하지 않고 스프링이 호출해줌 2. 의존성 주입(D.I : Dependency Injection)을 지원하여 클래스들 끼리 직접 연결하지 않고 중간에 매개체(mapper(interface))를 줌으로써 느슨한 결합을 유지 3. Spring Framework에서 객체자원을 효율적으로 관리 4. AOP(Aspect Orient Programming)을 지원(AOP에서 자세히 설명 할 예정) Sequence Diagram(흐름도) - 동기방식 Mybatis 자바 퍼시스턴스 프레임워크 중 하나 퍼시스턴스(Persitence) - 애플리케이션을 종료 후 실행 시 이전에 저장한 데이터를 다시 불러.. 2023. 3. 28.
CODO Day39_Spring(DB 연결) Spring Project new Spring Legacy Project 선택 Project 이름 설정 Spring MVC Project 선택 소스가 저장될 package 입력 # Spring Legacy Project 시작 시 프로젝트 만들자마자 실행시켜보기 # jsp파일은 src > main > webapp > WEB-INF > spring > views 에 생성 # maven 파일 : library 다운 및 관리 # Legacy Project는 Spring3과 java 1.6을 기본으로 함(오래된 버전) # 파일 저장위치 # Spring 구조 Spring으로 프로젝트 실행해보기 HomeController package kr.co.gudi; import java.text.DateFormat; impo.. 2023. 3. 28.
CODO Day38_DB_JDBC(Board&Join) 게시판(DB 활용) Controller package kr.co.web.controller; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import kr.co.web.service.Model; @WebServlet(urlPatterns = .. 2023. 3. 28.
CODO Day37_DB_JDBC(Java Data Base Connectivity) JDBC(Java Data Base Connectivity) Java & Data Base 연결에 필요한 프로그래밍 JAVA 와 DB 연결 프로그래밍 DB 쿼리 실행 프로그래밍 DB 쿼리 반환 값 추출 프로그래밍 # but 라이브러리를 활용하면 간단하게 가능 아래 파일을 다운받은 후 WEB-INF.lib에 copy 직접 연결 방법 STS 사용 시 더이상 MVC 패턴을 사용하지 않아, Model 대신 Service로 사용하나 비슷한 역할 Service : Controller에서 받은 작업 중 DB와 연결해야하는 작업을 DAO로 넘김 Package : Controller / DAO / Service DAO & DTO DAO DB 연결 및 쿼리문 실행 DTO DAO에서 주고 받는 데이터를 저장하기 위한 데이터.. 2023. 3. 27.
CODO Day36_DB_ERD(논리설계/물리설계) ERD를 활용한 논리설계 SNS Service 설계 Shopping Mall Service 설계 2023. 3. 24.
CODO Day35_DB(정규화&역정규화) 정규화(normalization)와 역정규화(denormalization) RDBMS 설계에서 중복이 최소화 되도록 데이터를 구조화 하는 프로세스 자료 중복으로 인해 이상현상이 발생할 수 있어 이를 최소화하기 위해서 사용 이상 현상을 최소화 하기 위해 테이블을 쪼개는 작업 삭제 이상 원치 않는 데이터도 삭제 member 의 id 를 삭제하려 했는데 모두 삭제 삽입 이상 원치 않는 데이터가 삽입 profile 의 name 을 넣었는데 grade 에도 삽입 갱신 이상 데이터 일부만 갱신 모든 id 를 변경 하려 했는데 grade 의 id 만 변경 정규화(normalization) 과정은 총 여섯 과정이 있음 실제로는 3NF까지만 사용(3NF가 되면 정규화가 된 것으로 간주) 각 정규형은 이전 단계들을 모두 .. 2023. 3. 24.
CODO Day35_DB(Auto_increment/Limit&offset/Function) Auto_increment 자동으로 증가하는 속성 Table 생성 시 속성으로 지정하거나 이미 생성된 Table에 추가 auto increment 속성이 사용되는 컬럼은 key 설정이 되어 있어야 함 무조건 들어가고 절대 중복되지 않기 때문에 PK로 활용 자동증가하는 속성으로 중복값이 있으면 안되기 때문 테이블 생성 시 지정 create table auto_inc( no int(10) auto_increment primary key ,name varchar(10) not null ); desc auto_inc; insert into auto_inc (name) values ('kim'); insert into auto_inc (name) values ('lee'); insert into auto_inc .. 2023. 3. 24.
CODO Day35_DB(In&Exists/Any&All/Index/View) In&Exists IN : '=' 비교만 가능, OR 조건의 검색결과 내용을 가져옴 select ename, job from emp e where deptno in(2,4); -- 서브쿼리가 먼저 동작된 후 메인쿼리가 동작 select ename, job from emp e where deptno in(select deptno from dept where loc = 'LA' or loc = 'boston'); EXISTS : 메인쿼리 실행 후 서브쿼리 조건을 비교 해당 결과가 있는지 1과 0을 반환 결과값 1 = 데이터를 보여줌 / 결과값 0 = 보여주지 않음 / 결과값 0&1 = 1인 데이터만 보여줌 메인쿼리가 먼저 실행된 후 서브쿼리 실행 EXISTS가 IN 보다 사용은 복잡하지만 속도가 빠름 IN은.. 2023. 3. 22.
CODO Day34_DB(Join/Set) JOIN 여러 문장을 서브쿼리로 작업할 경우 복잡해지기 때문에 JOIN을 사용 둘 이상의 테이블을 연결하여 데이터를 검색하는 방법 두개 테이블을 select문장으로 조인하려면 적어도 하나의 컬럼이 공통으로 존재해야 함 일반적으로 PK(primary key)와 FK(foreign key)를 활용(묶어주기 위해서 사용,필수x) JOIN 종류 CROSS JOIN(잘 사용X), EQUI JOIN*(등가조인, 내부조인) NON EQUI JOIN(거의 사용X - 교재에만 수록) SELF JOIN, OUTER JOIN* CROSS JOIN(사용X) CROSS JOIN은 카다시안 곱을 수행 후 결과를 반환 카다시안 곱 : 짝을 지어줄 경우 모든 경우의 수를 계산 CROSS JOIN은 양 테이블의 모든 컬럼의 조합을 보.. 2023. 3. 22.