본문 바로가기

전체 글148

[DBMS] 데이터 모델링(2) - 엔터티, 인스턴스, 모델링, 명명규칙 [3] 데이터 모델링(2) 3.1. 데이터 모델링 데이터(테이블)의 근간이 되는 것이 데이터 모델이며 데이터 모델을 설계하는 과정이 데이터 모델링임. 3.2. 모델링의 정의 우리가 살고 있는 3차원의 현실 세계를 단순화하여 표현하는 것 단순화 : 약속한 규약을 준수하는 표기법이나 언어로 표현함 현실 세계를 추상화하여 그 구조를 표현한 것 추상화 : 일정한 형식에 맞게 표현함 현실 세계에 존재하는 사물이나 사건에 관한 연관된 주제를 위하여 명확(화)하게 하는 것 명확화 : 애매모호함을 제거하여 표현함 => 복잡한 현실 세계를 추상화, 단순화, 명확화 하기 위해 일정한 표기법으로 모델을 표현하는 기법임. 대부분의 IT 시스템은 관계형 데이터베이스 (RDBMS, Relational Database Manage.. 2023. 3. 4.
[SPRING] 게시판 만들기 - URI, JSON, REST API 등 [22] 게시판 만들기 - URI, JSON, REST API 등 22.1. URI 정의 URI HTTP메서드 읽기 /board/read?bno=번호 GET 지정된 번호의 게시물을 보여줌 삭제 /board/remove POST 게시물 삭제 쓰기 /board/write /board/write GET POST 게시물 작성 화면 보여줌 작성한 게시물 저장 수정 /board/modify?bno=번호 /board/modify GET POST 게시물 수정하기 위해 읽어옴 수정된 게시물 저장 22.2. log4j 개요 로그 기능을 제공하는 오픈 소스 라이브러리 웹 사이트에 접속한 사용자 정보나 각 클래스의 메서드 호출 시각 등 여러가지 정보를 로그로 출력해서 관리한다. 메이븐에서 프로젝트 생성 시 자동으로 log4j.. 2023. 3. 3.
[SPRING]MyBatis - SessionFactoryBean, SessionTemplate 등 [21] MyBatis 21.1. MyBatis 개요 자바코드 안의 SQL구문을 별도의 xml로 분리하는 역할을 한다. config.xml / Mapper.xml로 분리하고 구분한다. 자바 코드로부터 SQL문을 분리해서 관리한다. 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거 작성할 코드가 줄어들어서 생산성 향상, 유지보수 편리 SQL을 별도의 파일로 분리해서 관리 객체-SQL 사이의 파라미터들을 Mapping 작업을 자동으로 해준다. JPA(Java Persistence Api)나 Hibernate 등 DB 프로그래밍과 병행된 개발 기술이다. 퍼시스턴스 프레임워크 JDBC의 모든 기능을 MyBatis가 대부분 제공한다. 복잡한 JDBC 코드를 걷어내며 슬림한 소스코드 유지 가능하다. SQL에 변경이.. 2023. 3. 3.
[SPRING]AOP - Advice, Join Point, Aspect 등 [20] AOP 20.1. 관점 지향 프로그래밍 (AOP : Aspect Oriented Programming) 특정한 함수(핵심기능) 호출 전이나 후에 뭔가 공통적인 처리가 필요하다면 AOP 구현한다. 로깅, 트랜잭션, 인증 OOP로 처리하기에는 다소 까다로운 부분을 AOP라는 처리 방식을 도입하여 손쉽게 공통 기능을 추가, 수정, 삭제 할 수 있도록 하였다. 20.2. 핵심기능과 부가기능 업무(biz) 로직을 포함하는 기능을 핵심 기능(Core Concerns) 핵심기능을 도와주는 부가적인 기능(로깅, 보안 등)을 부가기능이라고한다. (Crosscutting-Concerns)이라고 부른다. 객체지향의 기본 원칙을 적용하여도 핵심기능에서 부가기능을 분리해서 모듈화하는 것은 매우 어렵다. 20.3. AO.. 2023. 3. 2.
[DBMS] 트랜잭션(Transaction) - ACID, Isolation Level [20] 트랜잭션(Transaction) 20.1. 트랜잭션(Transaction) DBMS에서 논리적 연산단위. 더 이상 나눌 수 없는 작업의 단위 분할할 수 없는 최소의 단위 전부 적용하거나 전부 취소한다. Transaction은 ALL or NOTHING의 개념이다. INSERT, UPDATE, SELECT, DELETE가 각각 하나의 트랜잭션에 해당된다. 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함된다. 데이터베이스 내에 읽거나 쓰는 여러 개 쿼리를 요구한다. 예를 들면, 이체를 할 때 한 계좌에서 인출되면 다른 계좌에서 입금이 확인되는 것이 중요하다. 출금(UPDATE) -> 돈 -> 입금(UPDATE)이 하나의 Tx으로 묶여야 된다. 만약 쿼리 하나가 실패하면, DBMS은 전체 트랙잭션.. 2023. 3. 2.
[SPRING] Validation - 유효성, 데이터, 태그라이브러리, Binding [19] Validation 참고 예제 SpringDAOWeb 19.1. Validation이란? 유효성 검증 사용자 또는 서버의 요청(Http Request) 내용에서 잘못된 내용이 있는지 확인하는 단계 19.2. Validation의 종류 데이터 검증 필수 데이터의 존재 유무 문자열의 길이, 숫자형 데이터일 경우 값의 범위 등 E-Mail, 신용카드 번호, Date 등 특정 형식에 맞춘 데이터 19.3. Spring의 Validation 스프링은 웹 레이어에 종속적이지 않은 방법으로 Validation을 수행 Validator 인터페이스 구현(Implement)을 통한 Validation Validator(객체 검증기) 인터페이스 구현에 사용되는 메서드 supports() Validator의 동작 조.. 2023. 3. 1.
[SPRING] jUnit 개요 - 단위테스트 [18] jUnit 개요 18.1. jUnit java에서 독립된 단위테스트(Unit Test)를 지원해주는 프레임워크 단위테스트를 쉽게 해 주는 테스트 지원 프레임워크 18.2. 단위테스트(Unit Test) 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차 18.3. jUnit의 특징 TDD 단정(assert) 메서드로 테스트 케이스의 수행 결과를 판별 어노테이션 제공(@test) 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어짐 18.4. jUnit에서 테스트를 지원하는 어노테이션(Annotation) @Test : @Test가 선언된 메서드는 테스트를 수행하는 메서드가 됨 : 각 테스트가 서로 영향.. 2023. 3. 1.
[SPRING]Spring MVC Project에 DB 연동하기 - XML설정, DB연결 테스트 설정 항목 추가 [기준 IDE 정보 : Spring Tool Suite 3(3.9.18.RELEASE)] [기준 SQL 정보 : Postgresql] 1. pom.xml 설정 추가 기본 경로 : [Projectname]/pom.xml 연동에 필요한 드라이버 추가 https://mvnrepository.com/ 에서 검색 및 추가 1.1. 드라이버 예시 postgresql org.postgresql postgresql 42.5.0 jdbc org.springframework spring-jdbc ${org.springframework-version} test org.springframework spring-test ${org.springframework-version} test 2. DBMS에서 기본 sq.. 2023. 2. 28.