반응형

 

CodeIgniter

PHP를 이용하여 웹사이트를 개발하기 위한 프레임워크

 


Flow Chart

 

  1. index.php 는 프론트콘트롤러(front controller)로 동작하여 CI가 동작하기 위한 기반리소스들을 초기화 합니다.
  2. 라우터모듈(Routing)은 http 요청을 분석하여 어떤 동작을 해야할지를 결정합니다.
  3. 캐쉬파일이 있다면 그파일을 바로 브라우저로 보내고 일반적인 동작절차는 무시합니다.
  4. 보안모듈(Security)은 프로그램 컨트롤러가 로딩 되기전에 HTTP 요청및 어떤 사용자 전송데이터든지 모두 필터링합니다.
  5. 컨트롤러(Application controller)는 사용자 요청을 처리하기 위해 모델을 로드하고,코어라이브러리,헬퍼 및 필요한 다른 리소스들을 로드 합니다.
  6. 최종적으로 뷰모듈(View)이 렌더링되어 브라우저로 전송됩니다. 캐싱이 활성화 되어이다면 먼저 캐쉬(Cashing)하여 다음번 요청에 사용할 수 있도록 합니다.
반응형
반응형

JDBC test

package com.test.persistence;

import static org.junit.Assert.fail;

import java.sql.Connection;
import java.sql.DriverManager;

import org.junit.Test;

import lombok.extern.log4j.Log4j;

@Log4j
public class JDBCTests {
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		}catch(Exception e) {
			e.printStackTrace();
		}		
	}
	
	@Test
	public void testConnection() {
		try(Connection con =
				DriverManager.getConnection(
						"jdbc:oracle:thin:@localhost:1521:XE",
						"test",
						"test")){
			log.info(con);
		}catch(Exception e) {
			fail(e.getMessage());
		}
	}
}

 


 

dataSource test

package com.test.persistence;

import static org.junit.Assert.fail;

import javax.sql.DataSource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;


import lombok.Setter;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class DataSourceTests {
	
	@Setter
	private DataSource dataSource;
	@Test
	public void testConnection() {
		try(java.sql.Connection con = dataSource.getConnection()){
			log.info(con);
		}catch(Exception e) {
			fail(e.getMessage());
		}
	}

}

 

 

끝!

반응형

'Spring Framework > 환경설정' 카테고리의 다른 글

[Spring Tool Suite4] 종합설정  (0) 2021.02.09
Spring Legacy Project 생성 및 기본설정  (0) 2021.01.07
Spring 구동순서  (0) 2021.01.07
Spring 설정파일  (0) 2021.01.07
반응형

 

1. pom.xml 수정

<java-version>1.8</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>		

 


 

2. spring 관련 라이브러리 추가

<!-- Spring tx, test, jdbc-->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
	<version>${org.springframework-version}</version>
</dependency>		
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-tx</artifactId>
	<version>${org.springframework-version}</version>
</dependency>	
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-jdbc</artifactId>
	<version>${org.springframework-version}</version>
</dependency>

 


 

3. Mybatis 및 HikariCP,mybatis-spring, Log4jdbc 라이브러리 추가

<!-- Mybatis -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
	<version>3.4.6</version>
</dependency>
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
	<version>1.3.2</version>
</dependency>

<!-- log4jdbc -->
<dependency>
	<groupId>org.bgee.log4jdbc-log4j2</groupId>
	<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
	<version>1.16</version>
</dependency>
		
<!-- HikariCP -->
<dependency>
	<groupId>com.zaxxer</groupId>
	<artifactId>HikariCP</artifactId>
	<version>2.7.8</version>
</dependency>

 


 

4. Lombok추가 및 jUnit버전 변경

<!-- lombok -->
<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.0</version>
	<scope>provided</scope>
</dependency>

<!-- jUnit -->
<dependency>
	<groupId>junit</groupId>
	<artifactId>junit</artifactId>
	<version>4.12</version>
</dependency>

 


 

5. Servlet 버전 변경

<!-- Servlet -->
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
	<scope>provided</scope>
</dependency>

 


 

6. Maven관련 Java버전 수정

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.5.1</version>
    <configuration>
       <source>1.8</source>
       <target>1.8</target>
       <compilerArgument>-Xlint:all</compilerArgument>
       <showWarnings>true</showWarnings>
       <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>

 

프로젝트명 우클릭하여  Maven > Update Project 실행

 


 

7. Oracle JDBC Driver를 Build Path에 추가

 

프로젝트 우클릭 후 Properties 클릭

Java Build Path 클릭 후 Libraries탭 확인

 

 

 

우측에 'Add External JARS...' 클릭

sqldeveloper 설치경로 jdbc/lib 밑에 ojdbc6.jar 파일 선택

 

 

 

추가 된 것을 확인

우측하단 Apply 클릭

 

 

 

Deployment Assembly 로 이동

Add버튼 클릭

 

 

 

 

Java Build Path Entries 클릭

Next 클릭

 

 

 

ojdbc6.jar 선택

Finish 클릭

 

 

추가 된 것을 확인

Apply and Close 클릭

 


 

8. root-context.xml 수정

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
		
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
		<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
		<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin@localhost:1521:XE"></property>
		<property name="username" value="test"></property>
		<property name="password" value="test"></property>		
	</bean>
	
	<!-- HikariCP configuration -->
	<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
		<constructor-arg ref="hikariConfig"/>
	</bean>
	
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<mybatis-spring:scan base-package="com.test.mapper" />
	
	
</beans>

 

root-context.xml은 내부적으로 Log4jdbc를 이용하는 방식으로 구성되어 있어

src/main/resources에 'log4jdbc.log4j2.properties' 파일을 추가

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator

 

 

 

끝!

반응형

'Spring Framework > 환경설정' 카테고리의 다른 글

[Test] JDBC, dataSource  (0) 2021.02.09
Spring Legacy Project 생성 및 기본설정  (0) 2021.01.07
Spring 구동순서  (0) 2021.01.07
Spring 설정파일  (0) 2021.01.07
반응형

연습문제 링크

 

programmers.co.kr/learn/courses/30/lessons/12916?language=java

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를

programmers.co.kr

 

 


 

문제

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성

 

제한조건

s의 길이는 1 이상 5이하

s의 맨앞에는 부호(+, -)가 올 수 있음

s는 부호와 숫자로만 이루어져있음

s는 0으로 시작하지 않음

 

작성코드

class Solution {
    public int solution(String s) {
        int answer = 0;
        
        //작성
        answer = Integer.parseInt(s);
        
        return answer;
    }
}

 

 

끝!

반응형
반응형

 

연습문제 링크

 

programmers.co.kr/learn/courses/30/lessons/12917?language=java

 

코딩테스트 연습 - 문자열 내림차순으로 배치하기

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로

programmers.co.kr

 

 


 

문제

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성하기
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주

 

제한조건

str은 길이 1 이상인 문자열

 

입출력 예

Zbcdefg gfedcbZ

 

작성코드

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public String solution(String s) {
        String answer = "";
        
        //s를 한글자씩 나눠 arr에 담는다
        String[] arr = s.split("");
        //내림차순으로 만든다
        Arrays.sort(arr,Collections.reverseOrder());
        //내림차순으로 만든 배열을 붙여 String으로 만든다
        answer = String.join("", arr);
        
        return answer;
    }
}

 

 

끝!

반응형
반응형

연습문제 링크

 

programmers.co.kr/learn/courses/30/lessons/12916?language=java

 

코딩테스트 연습 - 문자열 내 p와 y의 개수

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를

programmers.co.kr

 

 


 

문제

대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성

'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않음

(예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return)

 

제한조건

문자열 s의 길이 : 50 이하의 자연수

문자열 s는 알파벳으로만 이루어져 있음

 

입출력 예

pPoooyY true
Pyy false

 

작성코드

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        
        //작성
        int pcnt = 0;
        int ycnt = 0;
        
        char[] sarray = s.toCharArray();
        
        for(int i=0;i<s.length();i++){
            if(sarray[i] == 'p' || sarray[i] == 'P') {
            	pcnt++;
            }
            if(sarray[i] == 'y' || sarray[i] == 'Y') {
            	ycnt++;
            }
        }
        
        answer = (pcnt==ycnt) ? true : false;

        return answer;
    }
}

 

 

끝!

반응형

+ Recent posts