목록분류 전체보기 (206)
주뇽's 저장소
DAO(Data Access Object)와 DTO(Data Transfer Object) DAO(Data Access Object)와 DTO(Data Transfer Object)는 소프트웨어 개발, 특히 데이터베이스와의 상호작용을 다룰 때 자주 사용되는 개념이다. 이 둘은 명확히 다른 역할을 하지만, 때때로 혼동되기도 한다. DAO (Data Access Object) 목적 : DAO는 데이터베이스 접근하는 객체로, 데이터베이스의 CRUD(Create, Read, Update, Delete)작업을 처리 특징 : DAO는 데이터베이스 쿼리를 실행하고 결과를 반환하는 메서드를 포함한다. DAO는 데이터베이스와의 상호작용을 추상화하고, 비즈니스 로직과 데이터베이스 사이의 중간 계층 역할을 한다. 예시 : ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dAq1V1/btsBBmls5DH/Anw3SxsIak5LZkthoddvok/img.png)
H2 인메모리 데이터베이스는 서버 재시작시 정보가 휘발되므로 MySQL로 데이터베이스 변경 1. Docker를 사용해 MySQL 실행하기 docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=todos-user --env MYSQL_PASSWORD=dummytodos --env MYSQL_DATABASE=todos --name mysql --publish 3306:3306 mysql:8-oracle docker run \ # Docker 컨테이너를 실행하는 기본 명령어 --detach \ # 컨테이너를 백그라운드에서 실행 (대화형 모드가 아님) --env MYSQL_ROOT_PASSWORD=dummypassword \ #..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GwxQk/btsBo56xOZC/dCYeMetAF1KaarU7KsGYg1/img.png)
Spring Security 로그인과 로그아웃에 관련된 기능을 쉽게 구현할 수 있음 로그인 구현 Spring Security 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-security' 의존성을 추가하는것만으로 따로 로그인 페이지나 기능을 구현하지 않아도 자동으로 로그인 페이지로 넘어가진다. 개발자 전용 id : user pw : 디버깅 창에서 나오는 패스워드 디버깅 창에서 나오는 패스워드는 항상 바뀌기 때문에 이를 고정된 값으로 매핑해줄 수 있다. ## 추가 application.properties에서 간단하게 아디이와 패스워드 설정하는 법(간단함) spring.security.user.name = username sprin..
파이썬은 기본적으로 최대 재귀 깊이가 1000으로 설정되어 있어 dfs와 같은 문제를 해결하다 보면 최대 깊이를 초과하는 경우가 있다. 이 때 아래와 같이 최대 깊이를 바꿔주면 문제가 해결된다 하지만 너무 높게만 설정해도 메모리 초과가 발생할 수 있다. import sys sys.setrecursionlimit(10 ** 6) 따라서 최대 재귀 깊이는 그래프 탐색의 경우 노드의 개수를 넘을 수 없다. ex) 노드의 개수가 5의 경우 node : 1, 2, 3, 4, 5 1 -> 2 : 1번 노드와 2번 노드가 연결되어 있음 2 -> 3 : 2번 노드가 3번 노드와 연결되어 있음 3 -> 4 : 3번 노드가 4번 노드와 연결되어 있음 4 -> 5 : 4번 노드와 5번 노드가 연결되어 있음 위와 같은 경우 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/clmD69/btsBkk8XWpw/kfiZpWLJJMx2dZp23MEqS0/img.png)
Step 1. 공유하고자 하는 파일을 공유 -> 링크가 있는 모든 사용자 -> 링크 복사를 해준다. 구글 드라이브 링크 : https://drive.google.com/file/d/1hiqm9D5t5z0WA2-W1aHUaTrq7HCylFiM/view?usp=sharing 여기서 위와 같은 링크가 있다면 d/ 와 /view에 있는 값이 해당 구글 드라이브 링크의 id가 된다. id : 1hiqm9D5t5z0WA2-W1aHUaTrq7HCylFiM Step 2. gdown 라이브러리를 이용하여 해당 파일 다운로드 1. 만약 gdown이 없다면(구글 코랩은 기본적으로 있음) 다음 명령어로 pip install pip install gdow 2. !gdown https://drive.google.com/uc?id..
JUnit4를 이용하여 Controller 기능을 테스트 하는 도중에 책에서 나온 부분과 실제 함수가 달라 오류가 발생했다. URL 요청에 들어온 파라미터가 제대로 들어왔는지 체크하기 위해 jsonPath 함수를 사용하는데 기존 책은 다음과 같이 작성되어 있다. package com.spring_jyp_todo.springbootTodoProject.controller; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springf..
JDBC와 Spring JDBC를 이용한 코드 비교 - JDBC(Delete) public void deleteTodo(int id){ PrepareStatement st = null; try{ st = db.conn.prepareStatement("delete from todo where id=?"); st.setInt(1, id); st.execute(); } catch (SQLException e){ logger.fatal("Query Failed :, e"); } finaaly { if (st != null){ try{st.close();} catch (SQLException e){} } } } - Spring JDBC(Delete) public void deleteTodo(int id){ jdb..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ovq1Y/btsALXtCKWF/oQetkmfphIsd2X6aZMOKFk/img.png)
Spring Framework Modules 모듈설명 Spring Core IoC(Inversion of Control) 컨테이너, 의존성 주입, 자동 연결 등 애플리케이션의 기본적인 구성 요소를 제공한다. Spring MVC 웹 애플리케이션 및 REST API 개발을 위한 MVC(Model-View-Controller) 패턴을 구현한다. Spring WebFlux 비동기 방식의 리액티브 애플리케이션을 구축할 때 사용한다. Spring JDBC 데이터베이스 작업을 추상화하여 SQL 작업을 간소화한다. Spring JMS Java Message Service를 사용하여 메시징 기반 애플리케이션을 개발할 때 사용한다. Spring TEST 테스팅을 위한 풍부한 기능을 제공하여, 단위 테스트와 통합 테스트를 ..