[NHN] Transaction
·
CNU SW 아카데미/9주차
# Transaction트랜잭션(Transaction)은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산 들을 의미한다.트랜잭션을 설명할 때, 가장 많이 등장하는 예시는 은행계좌송금 작업이다.사용자 A가 사용자 B에게 10,000원을 송금할 경우를 생각해 자.현실에서는 물리적인 지폐가 이동하면 끝나지만, 데이터베이스의 세계에서는 각각의 상태를 변경해 줘야 한다.10,000이라는 데이터가 실제로 이동하는게 아니라, 사용자 A의 데이터와 사용자 B의 데이터 상태가 각각 바뀌는 것. 따라서 두 번의 update 쿼리를 실행해야 한다.  다음은 예시에 대한 트랜잭션의 작업 절차이다. 데이터베이스에서 A의 은행계좌잔고 값을 메인 메모리..
[NHN] Apache Commons DBCP(DataBase Connection Pool)
·
CNU SW 아카데미/9주차
DBCP2 는 Apache Commons Pool 기반DBCP 1.x에 비해 성능 향상  ## BasicDataSourcejavax.sql.DataSource의 기본 구현기본 요구사항에 대한 oen-stop 솔루션 제공Basic implementation of javax.sql.DataSource that is configured via JavaBeans properties. This is not the only way to combine the commons-dbcp2 and commons-pool2 packages, but provides a one-stop solution for basic requirements. ### BasicDataSource Configuration Parameters각각의..
[NHN] Connection Pool
·
CNU SW 아카데미/9주차
# Connection PoolConnection Pool은 데이터베이스에 접근하기 위한 패턴.미리 Connection 객체를 생성하여 Pool 또는 Container(tomcat)에 배치Application에서 Connection 객체가 필요할 때, 새로운 객체를 생성하는 대신 Pool에서 해당 객체를 가져와 사용재사용을 위해서 사용된 객체는 Pool에 반납  ### 장점데이터베이스에 Connection을 생성할때 소요되는 시간 및 자원을 줄일 수 있다.Connection 수를 제한 할 수 있어 과다한 접속으로 인한 서버 자원 고갈을 예방한다.메모리 영역에서 Connection을 관리하기 때문에 클라이언트가 데이터베이스 작업을 빠르게 진행할 수 있다. ## Connection Pool 구현DataBas..
[NHN] 중요한 JDBC
·
CNU SW 아카데미/9주차
# StatementJava에서 SQL 문을 실행하기 위해서는 Statement 클래스를 이용SQL 문 실행 결과를 얻어오기 위해서는 ResultSet 클래스를 이용  SQL 문을 데이터베이스로 보내고 결과를 받기 위한 Statement를 Connection 객체를 이용해서 생성Statement statement = connection.createStatement();ResultSet resultSet = statement.executeUpdate("select * from jdbc_students where id='marco'");     ## Statement의 Methods( Query, Update )executeQuery() SELECT 쿼리를 실행할 때 사용ResultSet을 결과로 반환exe..
[NHN] JDBC !
·
CNU SW 아카데미/9주차
# JDBC (Java Database Connectivity) JDBC(Java Database Connectivity)는 관계형 데이터베이스에 저장된 데이터를 접근 및 조작할 수 있게 하는 자바 APIJDBC는 자바 응용프로그램이 다양한 DBMS에 대해 일관된 API로 데이터베이스 연결, 검색, 수정, 관리 등이 가능그러므로 자바 응용프로그램 개발자는 DBMS의 종류에 관계없이 JDBC API만을 이용  ## JDBC 구조 # JDBC 역사Java 11`을 사용함으로 `JDBC 4.3 사용 가능       ## JDBC TypeJDBC Driver는 4가지 Type이 있다 .. ### Type-1 Driver or JDBC-ODBC BridgeJDBC와 ODBC 사이의 Bridge 역할을 합니다. J..
[NHN] Reflection
·
CNU SW 아카데미/9주차
# Reflection 이란?Reflection은 java 프로그래밍 언어의 기능이며, 실행 중인 JAVA 프로그램이 자체적으로 검사하거나 프로그램 내부 속성을 조작할 수 있다.자체적으로 생성된 객체의 class type을 알지 못하더라도 해당 class의 메소드, 타입, 변수들에 접근할 수 있도록 해주는 JAVA API이다.public static void main(String[] args) { Class c = ArrayList.class; Method m[] = c.getDeclaredMethods(); for (int i = 0; i 위에 작성한 코드처럼 다른 클래스에 대한 상세한 사항을 알아낼수 있게 하는 것이 reflection의 기능이다.reflection을 통해 java 프..
[NHN] Command 패턴
·
CNU SW 아카데미/9주차
# Command 패턴요청을 객체의 형태로 캡슐화command를 저장하거나 메서드에 전달하거나 다른 객체들처럼 반환할 수 있게 해주는 디자인 패턴Command 패턴은 객체 지향 디자인 패턴 중 하나로, 요청을 객체로 캡슐화하여 요청을 수신하는 객체가 이를 처리할 수 있도록 하는 패턴입니다. Command 패턴은 다음과 같은 구성 요소로 이루어집니다.  - Command: 요청을 캡슐화하는 인터페이스를 정의합니다. Command 인터페이스는 execute() 메서드를 선언합니다.  - ConcreteCommand: Command 인터페이스를 구현한 구체적인 클래스입니다. execute() 메서드를 구현하여 실제 요청 처리를 수행합니다.  - Invoker: 요청을 수신하는 객체를 정의합니다. Invoker..
[NHN] MVC에 대하여 ..
·
CNU SW 아카데미/9주차
# Model 1JSP에서 모든 로직과 출력을 처리합니다.즉 JSP 페이지에 비지니스 로직을 처리하기 위한 코드와 웹브라우저에 결과를 출력하는 코드가 섞여 있습니다.  # Model 2모든 요청을 서블릿이 받아 처리하고 JSP 페이지로 포워드 합니다.서블릿은 클라이언트(브라우저) 요청을 구분하여 처리합니다.## Model 2 방식 = MVC PatternModel: 비즈니스 로직 및 데이터 처리 담당View: 모델이 처리한 결과 데이터의 화면 생성 담당Controller: 요청 처리 및 흐름 제어 담당### MVC Pattern의 장점고 유연성 및 확장 용이협업 용이유지보수 용이