분류 전체보기

잔디심는 정원사
[JAVA] String <->Char 변환 정리
·CS/JAVA
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 ..
좋은 객체 지향 설계의 5가지 원칙-SOLID
·CS/OOP
SOLID란?클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리SRP: 단일 책임 원칙OCP: 개방-폐쇄 원칙LSP: 리스코프 치환 원칙ISP: 인터페이스 분리 원칙DIP: 의존관계 역전 원칙 SRP 단일 책임 원칙하나의 클래스는 하나의 기능을 담당해 하나의 책임을 수행하는데 집중되어야 있어야 합니다. 단일 책임 원칙 준수 유무에 따른 가장 큰 특징 기준 척도는, '기능 변경(수정)' 이 일어났을때의 파급 효과 이며, 모듈이 변경되는 이유가 한가지 여야 함을 뜻합니다. 책임이란? 책임 = 해야 하는 것       = 할 수 있는 것       = 해야 하는 것을 잘 할 수 있는 것 산탄총 수술산탄총 수술은 산탄이 사방으로 퍼져날라가 동물에게 맞았을 때 수술해야하는 부위가 많아지는 ..
[백준] 11724번: 연결 요소의 개수 구하기 -JAVA
·ProblemSolve/BOJ
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
·CS/Algorithm
DFS란?DFS(깊이 우선 탐색)는 그래프의 시작 노드에서 출발하여 탐색할 할 쪽 분기를 정하여 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘DFS의 특징?스택 자료구조를 사용하지만 보통은 스택 성질을 가지는 재귀 함수로 구현한다.재귀함수를 이용하기 때문에 스택 오버플로(시간초과)에 유의해야한다. -> 다음 게시글에 설명할 BFS보다 느리다.한 번 방문한 노드를 다시 방문하면 안 되므로 노드 방문 여부를 체크할 배열 필요DFS의 동작과정1. DFS를 시작할 노드를 정한 후 사용할 자료구조를 초기화인접 리스트 그래프로 표현하기방문 배열 초기화하기시작 노드 스택에 삽입하기2. 스택에서 노드를 꺼낸 후 노드의 인접 노드를 다시 스택에 삽입pop을 수행해 스택에서 노드를 ..
[spring security] 시큐리티 & JWT 이용해서 로그인, 회원가입하기 - (2) 로그인
지난 시간에 회원가입까지 진행했다면 이제 회원가입한 계정으로 로그인을 진행하도록 한다. JWT는 유저를 인증하고 식별하기 위한 토큰기반 인증이다. 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다. JWT 가 가지는 핵심적인 특징이 있다면, 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다는 것이다. 더 자세하게 알고 싶다면 아래의 벨로그가 도움이 될 것이다. 🤔 JWT, 정확하게 무엇이고 왜 쓰이는 걸까? Json Web Token에 대해서 정확히 알고 넘어가자. velog.io JWT+ Spring Security 전체적인 동작 과정 Refresh Token? Access Token을 발급하기 ..
[spring security] 시큐리티 & JWT 이용해서 로그인, 회원가입하기 - (1) 회원가입
회원가입이 로그인보다 간단하므로 회원가입부터 구현한다. 이메일과 비밀번호를 입력받아 회원가입을 진행한다. 이때, 비밀번호를 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..
[JPA] entity에서 생성시간, 수정시간 반영하는 법
·Spring/JPA
생성할 때의 시간과 수정할 때의 시간을 저장하는 방법에는 뭐가 있을까? 가장 직관적인 방법은 생성할 때와 수정할 때마다 LocalDateTime.now()를 호출해서 직접 setter로 값을 넣어주는 방법이다. 하지만 매번 이런 작업을 하는 것은 여간 귀찮은 일이 아니다. 그래서 보통은 @CreatedDate와 @LastModifiedDate를 사용한다. CreatedDate : Entity가 생성되어 저장될 때 시간이 자동으로 저장 LastModifiedDate : 조회한 Entity의 값을 변경할 때 시간이 자동으로 저장 내가 사용하는 Entity에 직접 이 어노테이션을 붙이지 말고, 생성시간과 수정시간만 따로 BaseTimeEntity에 저장해 이 entity를 상속하도록 한다. BaseTimeEn..
[JPA] Querydsl에서 ElementCollection Projection 할 때 에러-org.hibernate.QueryException: not an entity
·Spring/JPA
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..
MapStruct를 이용해 Dto->Entity 변환하기
·Spring/JPA
의존성 추가 implementation 'org.mapstruct:mapstruct:1.4.2.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final' Entity와 Dto 구현 public abstract class TodoDto { @Getter @AllArgsConstructor @Builder public static class CreateRequest{ private String title; private String description; private List tags=new ArrayList(); } } @Entity @NoArgsConstructor @AllArgsConstructor @Data @Builder ..
[C#] 'System.Windows' 네임스페이스에 'Forms' 형식 또는 네임스페이스 이름이 없습니다.
using System.Windows.Form; 을 인식 못하는 경우 (특히 Forms에 다음과 같이 빨간 줄이 뜨고 다음과 같은 경고창이 뜬다) csproj에 true을 다음과 같이 PorpertyGroup에 직접 추가해준다. true
minsu20
'분류 전체보기' 카테고리의 글 목록 (8 Page)