String -> Char 1. charAt()로 인덱스 접근하기 예시 String str = "Hello"; char c = str.charAt(0); for문 사용 String input = "Minsu"; for(int i=0; i String 1. String.valueOf()이용 예시 char c = 'a'; String str = String.valueOf(c); char[] array to String 가능 char[] arrCh = {'a', 'b', 'c' }; String str = String.valueOf(arrCh); 2. Character.toString()이용 예시 char c = 'a'; String str = Character.toString(c); char[] array ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bRiPFX/btsGZbl9MDL/IpCsbf3LpW4CMX7GMg2cEK/img.png)
SOLID란?클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP: 단일 책임 원칙OCP: 개방-폐쇄 원칙LSP: 리스코프 치환 원칙ISP: 인터페이스 분리 원칙DIP: 의존관계 역전 원칙 SRP 단일 책임 원칙하나의 클래스는 하나의 기능을 담당해 하나의 책임을 수행하는데 집중되어야 있어야 합니다. 단일 책임 원칙 준수 유무에 따른 가장 큰 특징 기준 척도는, '기능 변경(수정)' 이 일어났을때의 파급 효과 이며, 모듈이 변경되는 이유가 한가지 여야 함을 뜻합니다. 책임이란? 책임 = 해야 하는 것 = 할 수 있는 것 = 해야 하는 것을 잘 할 수 있는 것 산탄총 수술산탄총 수술은 산탄이 사방으로 퍼져날라가 동물에게 맞았을 때 수술해야하는 부위가 많아지는 ..
11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 문제 보기 ↓ 더보기 문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진..
DFS란? DFS(깊이 우선 탐색)는 그래프의 시작 노드에서 출발하여 탐색할 할 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘 DFS의 특징? 스택 자료구조를 사용하지만 보통은 스택 성질을 가지는 재귀 함수로 구현한다. 재귀함수를 이용하기 때문에 스택 오버플로(시간초과)에 유의해야한다. -> 다음 게시글에 설명할 BFS보다 느리다. 한 번 방문한 노드를 다시 방문하면 안 되므로 노드 방문 여부를 체크할 배열 필요 DFS의 동작과정 1. DFS를 시작할 노드를 정한 후 사용할 자료구조를 초기화 인접 리스트 그래프로 표현하기 방문 배열 초기화하기 시작 노드 스택에 삽입하기 2. 스택에서 노드를 꺼낸 후 노드의 인접 노드를 다시 스택에 삽입 pop을 수..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/uKATG/btrYlwamPvW/KR690cvG0hF7ZPnKhj2KTK/img.png)
지난 시간에 회원가입까지 진행했다면 이제 회원가입한 계정으로 로그인을 진행하도록 한다. JWT는 유저를 인증하고 식별하기 위한 토큰기반 인증이다. 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다. JWT 가 가지는 핵심적인 특징이 있다면, 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다는 것이다. 더 자세하게 알고 싶다면 아래의 벨로그가 도움이 될 것이다. 🤔 JWT, 정확하게 무엇이고 왜 쓰이는 걸까? Json Web Token에 대해서 정확히 알고 넘어가자. velog.io JWT+ Spring Security 전체적인 동작 과정 Refresh Token? Access Token을 발급하기 ..
회원가입이 로그인보다 간단하므로 회원가입부터 구현한다. 이메일과 비밀번호를 입력받아 회원가입을 진행한다. 이때, 비밀번호를 db에 저장할 때 암호화해서 저장해야 한다. 그리고, 이미 존재하는 회원이면 에러코드를 출력한다. 1. 의존성 추가 build.gradle implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'io.jsonwebtoken:jjwt-api:0.11.5' implementation 'io.jsonwebtoken:jjwt-impl:0.11.5' implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5' 2. SecurityConfig.java 작성 @C..
생성할 때의 시간과 수정할 때의 시간을 저장하는 방법에는 뭐가 있을까? 가장 직관적인 방법은 생성할 때와 수정할 때마다 LocalDateTime.now()를 호출해서 직접 setter로 값을 넣어주는 방법이다. 하지만 매번 이런 작업을 하는 것은 여간 귀찮은 일이 아니다. 그래서 보통은 @CreatedDate와 @LastModifiedDate를 사용한다. CreatedDate : Entity가 생성되어 저장될 때 시간이 자동으로 저장 LastModifiedDate : 조회한 Entity의 값을 변경할 때 시간이 자동으로 저장 내가 사용하는 Entity에 직접 이 어노테이션을 붙이지 말고, 생성시간과 수정시간만 따로 BaseTimeEntity에 저장해 이 entity를 상속하도록 한다. BaseTimeEn..
Querydsl을 사용해서 Entity-> DTO에 Projections.constructor를 사용해 projection 하던 중 org.hibernate.QueryException: not an entity 문제가 발생 @Override public Page findAllTodosByCreatedDate(Pageable pageable){ List content=queryFactory .select(new QTodoDto_GetAllTodo(todo.todoId, todo.title, todo.description, todo.tags, todo.isCompleted, todo.createdAt, todo.updatedAt)) .where(isDeletedCheck()) .orderBy(todo.cre..
- Total
- Today
- Yesterday
- 플라이웨이트패턴
- 프록시패턴
- Flutter
- UML 필요성
- 양방향연관관계
- springsecurity
- n+1
- dfs
- java문법
- 상태 패턴
- 복합체 패턴
- Iterator Pattern
- idtoken
- 브리지 패턴
- 책임연쇄패턴
- 빌더 패턴
- 반복자 패턴
- 컴포지트패턴
- 퍼싸드패턴
- ArrayDeque
- jpa
- 책임체인패턴
- 프로토타입 패턴
- GithubActions
- 메멘토 패턴
- restapi
- FacadePattern
- Chain of Responsibility
- CompositePattern
- 구글로그인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |