본문 바로가기

전체 글

(259)
11724 연결 요소의 개수 / DFS, BFS 인접리스트 만들기n, m = map(int, input().split()) # 정점, 간선의 개수con = []for i in range(m): a, b = map(int, input().split()) con.append((a,b))# 그래프 세팅, 이차원 리스트로 만들기graph = []for i in range(0, n + 1): graph.append([])for a, b in con: graph[a].append(b) graph[b].append(a) 정답def DFS(graph, start, visited): visited[start]= True # print(start, end=' ') for i in graph[start]: if vi..
DFS와 BFS 그래프그래프 : 복잡하게 연결된 자료 객체 사이의 관계를 효율적으로 표현한 것객체 : 정점관계 : 간선 (= 객체간의 관계)그래프 : 접점과 간선의 집합으로 구성됨 -> A와 B를 연결하는 간선 (A, B)인접 : 간선으로 연결된 두 정점을 인접해 있다고 함차수 : 정점에 연결된 간선의 수경로 : 간선을 따라 갈 수 있는 길을 순서대로 나열한 것연결그래프 : 모든 정점사이에 경로가 존재하는 그래프트리 : 사이클을 가지지 않는 연결 그래프 그래프의 표현 : 인접리스트를 이용한 표현인접리스트 : 각 정점이 인접한 정점 리스트를 갖도록 하는 것 -> [[], [2, 5], [1, 5, 4, 3], [4, 2], [3, 6, 5, 2], [2, 1, 4], [4]]그래프 순회 : 하나의 정점에서 시작하여 그래프..
테스트 코드 작성하기 테스트 작성하는 법테스트하고 싶은 레이어에 가서 cmd + n 을 누른다! H2가 아닌 다른 데이터베이스에 연결하고 싶을 때1. 아래 경로에 설정 파일 만들기  2. 테스트 코드 파일에 어노테이션 2개 추가하기replace = AutoConfigureTestDatabase.Replace.NONESpring Boot가 테스트를 위해 다른 데이터베이스(H2 등)로교체하지 않도록 설정@TestPropertySource(locations = {"classpath:/application-test.properties"})해당 경로의 application.properties를 사용하겠다는 뜻 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace..
JPA와 Transaction JPA자바에서 orm기술 표준으로 사용하는 인터페이스 orm자바 객체와 관계형 db의 데이터를 자동으로 매핑해주는 방법 Hibernate자바 언어를 위한 orm 프레임워크JPA 인터페이스를 구현하고 내부적으로 JDBC API를 사용 Spring Data JPAjpa를 더 쉽고 편하게 사용할 수 있게 도와주는 spring에서 제공되는 모듈jpa를 한 단계 더 추상화 시킨 jparepository 인터페이스 제공entitymaniger는 jpa에서 관리하는 것@transactional은 스프링에서 관리하는 것 Raw JPA  Persistence Context엔티티 객체가 생성, 관리, 소멸 되기까지 데이터베이스와 상호작용하는 모든 과정엔티티를 JPA 영속성 컨텍스트에 영속화(persist) 하게 되면, 이..
Spring Security의 JWT 적용 Spring Security스프링 기반 애플리케이션에 인증과 인가 기능을 제공하는 보안 프레임워크2003년에 나왔음 → 세션 방식으로 이루어져 있음 (JWT가 없던 시기) Spring Security에서 인증을 통과하는 방식SecurityContext : 현재 로그인한 사용자의 정보를 저장하는 객체SecurityContext에 AbstractAuthenticationToken을 set해야 한다로그인을 하면 → SecurityContext 내부에 Authentication 객체가 저장필요할 때 SecurityContext에서 현재 로그인한 사용자의 정보를 꺼낼 수 있음SecurityContextHolder를 통해 SecurityContext에 접근 가능로그아웃하면 SecurityContext가 초기화 Se..
User 데이터 100만건 생성하고 성능 개선하기 100만건 생성 테스트 첫 번째 시도 : NoSuchBeanDefinitionException jpa로 save를 100만건 시도@DataJpaTestclass UserRepositoryTest { @Autowired private UserRepository userRepository; @Test void 유저_데이터를_100만_건_생성() { for (long i = 0L; i  -> NoSuchBeanDefinitionException 발생EntityManager를 찾을 수 없다고 한다 테스트 패키지 하위에 config 파일을 만들고 해결@TestConfiguration // 테스트 환경 전용 설정public class TestQuerydslConfig { @..
S3 버킷 생성과 스프링부트로 S3에 이미지 저장하기 구현 버킷 : 저장소객체 : 버킷에 업로드된 파일S3 버킷 생성하기퍼블릭 엑세스 차단 해제 그리고 그대로 생성하면 됨 버킷에 정책 ( 권한(Permission)을 정의하는 JSON 문서)추가여기서 정책 추가 s3 -> gerobject 리소스 추가하기 S3에 파일 업로드 할 수 있도록 IAM에서 액세스 키 발급받기백엔드 서버가 S3에 접근해서 파일을 업로드할 수 있어야 한다. S3에 접근할 수 있는 권한을 받기 위해 IAM이라는 곳에서 권한을 부여받아야 한다. 사용자 생성  정책 생성 엑세스 키 만들기 발급 완료, 저 두 키는 따로 저장해 놔야 함 스프링부트로 S3에 이미지 저장하기users 테이블에 imageUrl필드를 추가하여 저장된 프로필 이미지의 url을 저장하여 user 조회시 함께 조회이미지 제목이..
RDS 구축하고 EC2에 연결하기 RDS 생성RDS에 들어가서 데이터베이스 생성을 누르자 . 설정 퍼블릭 엑세스 예로 변경 추가구성에서 백업 끄고 이름 설정하기 RDS 보안그룹 생성하기 생성한 보안그룹을 RDS에 붙이기해당 RDS로 이동 후에 보안그룹 수정 RDS 파라미터 그룹 추가하기1. 아래 속성 전부 utf8mb4로 설정하기character_set_clientcharacter_set_connectioncharacter_set_databasecharacater_set_filesystemcharacater_set_resultscharacter_set_server참고) utf8 대신에 utf8mb4를 사용하는 이유는 ‘한글’ 뿐만 아니라 ‘이모티콘’도 지원이 가능하도록 하기 위해서이다.2. 아래 속성 전부 utf8mb4_unicode_c..