티스토리 뷰
* 프로젝트 네이밍 룰 레퍼런스
* 프로젝트 깃허브에 올리는 법
- coding-factory.tistory.com/248
[ 패키지 구성 ]
config : 프로젝트와 관련된 설정 클래스들의 보관 패키지
controller : 스프링 MVC의 Controller들의 보관 패키지
service : 스프링의 service 인터페이스와 구현 클래스 패키지
domain : VO, DTO 클래스들의 패키지
persistence : MyBatis Mapper 인터페이스 패키지
aop : 스프링의 AOP 관련 패키지
security : 스프링 Security 관련 패키지
util : 각종 유틸리티 클래스 관련 패키지
[ Frameworks or Libraries ]
Lombok - getter/setter, toString(), 생성자 등을 자동으로 생성해주므로 약간의 코드만으로도 필요한 클래스를 설계할 때 유용함.
spring-test - 스프링 동작 테스트에 사용됨.
HikariCP - Connection Pool을 이용하기 위한 라이브러리. 자바에서는 DataSource라는 인터페이스를 통해서 connection pool을 사용하고 DataSource를 통해 매번 데이터베이스와 연결하는 방식이 아니라, 미리 연결을 맺어주고 반환하는 구조를 이용함.
MyBatis - SQL 매핑 프레임워크. 자동으로 Connection close()하고 PreparedStatement를 내부적으로 처리하는 등 편리한 라이브러리
- SQLSessionFactory : 내부적으로 SQLSession을 만들어내는 것.
- SQLSession : SQLSession을 통해서 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받음.
mybatis-spring - MyBatis와 스프링 연동용 라이브러리
spring-jdbc/spring-tx - 스프링에서 데이터베이스 처리와 트랜잭션 처리
jackson-databind - Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환할 때 사용할 수 있는 라이브러리
commons-fileupload - 파일 업로드 라이브러리
spring-security : 인증과 access-control을 위한 framework
[ Servlet 3.1 이용 시 web.xml 변경 ]
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
[ 부트스트랩 ]
- 스프링 MVC의 JSP 설정은 servlet-context.xml에 있다.
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
[ Docker 명령어 정리 ]
- run
- start
- stop
[ Oracle 명령어 ]
1. 계정 생성
CREATE USER {계정명} IDENTIFIED BY {password}
DEFAULT TABLESPACE {tablespace}
TEMPORARY TABLESPACE {tablespace};
2. 권한 부여
GRANT CONNECT, DBA TO {계정명};
3. 포트 번호 확인, 변경
select dbms_xdb.gethttpport() from dual;
exec dbms_xdb.sethttpport({포트 번호});
* Tablespace란 ?
[ 프로젝트 JDBC Drvier 추가 ]
- Oracle 데이터베이스의 JDBC Drvier는 11g까지 공식적으로 Maven으로 지원 안 됨. 직접 jar 파일을 프로젝트에 추가시켜 줘야 함.
- SQL Developer를 이용해 개발하는 경우 sqldeveloper/jdbc/lib에서 ojdbc8.jar 파일을 찾을 수 있음.
- 프로젝트 Build Path에 ojdbc8.jar 파일을 추가해준다. 나중에 war 파일로 만들어 질 때에도 jar 파일이 포함될 수 있도록 Web Deployment Assembly 항목에도 jar 파일을 추가하면 된다.
[ 클래스 동적 로딩 ]
-
* Reference
1. blog.hyper-link.kr/2011/11/24/java-class-for-name/
4. charlie-choi.tistory.com/120
[ HikariCP 설정 ]
- 일반적으로 여러 명의 사용자를 동시에 처리해야 하는 웹 애플리케이션의 경우 데이터베이스 연결을 이용할 때 Connection Pool을 이용하므로, 아예 스프링에 Connection Pool을 등록해서 사용하는 것이 좋음. Java에서는 DataSource라는 인터페이스를 통해서 Connection Pool을 사용함. DataSource를 통해 매번 데이터베이스와 연결하는 방식이 아니라 미리 연결을 맺어주고 반환하는 구조를 이용하여 성능을 향상시킴.
* HikariCP 설정 Refernece
github.com/brettwooldridge/HikariCP#gear-configuration-knobs-baby
[ MyBatis ]
- 자동으로 Connection close() 가능
- 내부적으로 PreparedStatement 처리
- #{prop}와 같이 속성을 지정하면 내부적으로 자동 처리
- return type을 지정하는 경우 자동으로 객체 생성 및 ResultSet 처리
- spring-jdbc/spring-tx : 스프링에서 데이터베이스 처리와 트랜잭션 처리
- mybatis/mybatis-spring : MyBatis와 스프링 연동용 라이브러리
- SQL SessionFactory : 내부적으로 SQL Session을 만들어 내는 것. SQL Session을 통해서 Connection을 생성하거나 원하는 SQL을 전달하고, 결과를 리턴 받음.
[ git 민감한 정보 관리 ]
-
'(구)게시판 프로젝트' 카테고리의 다른 글
회원가입 (0) | 2021.04.26 |
---|---|
로그인 (0) | 2021.04.16 |
데이터 모델링 2 (updated 21.05.07) (0) | 2021.04.10 |
데이터 모델링 (0) | 2021.04.09 |
Spring Web Security 관련 정리(미완) (0) | 2021.03.26 |
- Total
- Today
- Yesterday
- 백준 14868
- boj 14868
- 백준 12713
- 사탕상자
- 백준 9345
- boj 2336
- boj 1106
- boj 9345
- 제로베이스 백엔드 스쿨
- 백준 1106
- 터보소트
- 백준 10775
- 백준 1280
- 인간 대포
- 디지털 비디오 디스크
- 백준 3006
- boj 10473
- 제로베이스 스쿨
- boj 16562
- boj 12713
- 백준 10473
- boj 10775
- boj 2243
- 백준 16562
- Ugly Numbers
- 백준 2243
- boj 1280
- boj 3006
- 백준 2336
- 부트 캠프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |