![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bG5XBz/btsKPF5lxLr/sPWbPabOc13VgYZh5Q2kXk/img.png)
개인프로젝트의 진행..저는 이번 프로젝트를 통해서, 지금까지 배운것들에 대해 총체적으로 사용해보고 필요한 곳에 가능한 기술들을 사용해보며 많은 것을 느껴보려 합니다..프로젝트는 1차적으로 끝내었고, 다시 리펙토링을 진행해보며 블로그 글들도 수정작업에 진행하고 있습니다(현재 25.1.3) 벌써 작년...프로젝트라니... 실감이 나지는 않지만 시간이 가능할 때 차근히 전에 했던 실수는 무엇이었는지...아니면 굳이 사용안해도되는 기술들을 억지로 넣었는지, 너무 학습에 치중해서 개발을 진행하지 않았는지에 대해 다시 생각해보며 뺄건 빼고 넣을건 넣으면서 진행해볼까합니다..! 사용 도구들..- spring boot 3.3.5- java 17- H2 Database- Thymeleaf Application FlowC..
DataSource 란?DataSource는 JDBC를 이용하여 DB를 연결시에 도와주는 객체이다.DataSource는 DB연동을 위한 작업을 중간에서 도와주며, Connection Pool를 이용하여 커넥션 관리를 용이하게 도와준다.DataSourceUtils를 이용하면, 커넥션의 반환도 관리할 수 있어서 트랜잭션을 시행할때 많은 도움을 받을 수 있다/현재 프로젝트에 적용되어있으며, h2DataBase의 드라이버를 사용하지 않고도 DataSource를 이용하여 손쉽게 연결하며 ConnectionPool도 구성할 수 있었다. DataSource 구현DataSource ConfigDataSource는 인터페이스이고, Hikari를 이용하여 구현체를 사용public class DataSourceConfig ..
파일 업로드기본적으로, 파일을 업로드하는 방식에는 파일 자체를 받아서 DB에 적재하는 방법이 있고, 파일경로만 저장을 한 후, spring server 에 저장되어있는 파일을 불러와서 사용하는 방식이 있다.DB에 파일을 적재하는 방식은 조회하는데에도 영향이 있고, DB사이즈가 커지는 부담도 있어서 2번째 방식인 파일경로를 저장하는 방식을 택했다.참고)spring의 경우, 기본적으로 파일업로드를 할 수 있는 제한 사이즈는 1MB이다.(spring.servlet.multipart.max-file-size=5MB) application.properties에서 수정 가능함 파일 도메인uploadFile의 이름은 업로드 당시에 사용한 이름storeFileName의 경우 서버에 적재할 파일 이름이다 구분한 이유 :..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zhQDX/btsKQqGcjgV/hBDlyw44hquPvmHNyhXIb0/img.png)
Repository 구성Repository로 의존성을 Interface로 두고, Memory 버전과 DB버전을 나누어서 진행Memory 버전으로 빠르게 개발하고, 후에 DB를 연결시켜서 필요한 부분만 Repository로 진행OCP / DI를 지켜가며 개발 구성 AppConfig@Configuration@ComponentScanpublic class AppConfig implements WebMvcConfigurer { @Bean public MemberRepository getMemberRepository() {// return new MemberMemRespository(); return new MemberDBRepository(DataSourceConfig.da..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/m82k7/btsKRiAHCgx/zqV96nNSkO4fXj7eKyive1/img.png)
예외처리 흐름도기본적인 Exception 흐름도Controller에서 Exception 발생Tomcat으로 전달에러 코드 별로, 지정된 Mapping으로 다시 Controller로 전달전달된 페이지를 View 예외처리 방법1. Exception을 직접 구현하여, mapping Controller로 진행2. Spring이 자동으로, 에러코드별 html이 있다면 해당 html로 view 진행3. API형식일 경우, json 형태로 (혹은 다른 방식으로) 에러 코드 및 메시지 전달현재 프로젝트에 적용되어 있는 Exception 방식1번 방법으로, Exception을 직접 구현하여 원하는 Html로 맵핑 작업 예외처리 구현WebServerFactoryCustomizer를 통한 구현 (@Override cust..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/6AphQ/btsKRlD8BPM/WbQ6Qe0ckxfGMnzjkxrRak/img.png)
로그인 서비스 흐름도로그인 인증)- 로그인 인증의 경우, Filter와 Interceptor를 이용하여 구현할 수 있다- Filter의 경우, spring의 Distpatcher에 들어가기 전에 필터링이 가능하므로 주로 Filter에서 로그인 인증이 일어난다현재 프로젝트 적용1차 로그인 인증 (Filter)Session값의 유무를 통해, Session을 가지고 있으면 Filter 통과2차 로그인 인증 (Interceptor)Session 값 유무 판단 + URL 변경을 통한 사용자 인증을 막고자 정규표현식을 이용한 필터링 진행ex) http://localhost/members/test1 -> http://localhost/members/admin (이동 방지) 로그인 인증 방법1) JWT2) Sessio..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ba3isM/btsKO6ojUoS/71Q2AOnebK4ew263vbQszK/img.png)
문제트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오.트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 매겨져 있다.먼저 정점 번호가 주어지고, 이어서 연결된 간선의 정보를 의미하는 정수가 두 개씩 주어지는데, 하나는 정점번호, 다른 하나는 그 정점까지의 거리이다. 예를 들어 네 번째 줄의 경우 정점 3은 정점 1과 거리가 2인 간선으로 연결되어 있고, 정점 4와는 거리가 3인 간선으로 연결되어 있는 것을 보여준다. 각 줄의 마지막에는 -1이 입력으로 주어진다. 주어지는 거리..
- Total
- Today
- Yesterday
- 우선순위 큐
- 게시판 프로젝트
- 클래스
- BFS
- 정렬
- 알고리즘
- 기술면접
- 이진탐색
- 오블완
- stack
- db
- Thymeleaf
- 검증
- 게시판
- 버블정렬
- JSON
- 포트폴리오
- bean
- JDBC
- DFS
- SQL
- 예외처리
- HTML5
- 깊이우선탐색
- Spring
- 타입변환
- Java
- 코딩테스트
- 티스토리챌린지
- 백준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |