| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 하이브리드 데이터 모델
- pyannote
- Spring
- 화자분리
- C++
- DI
- curl
- umc
- metricbeat
- supabase
- java
- monitoring
- docker
- kong
- fosslight
- elastic search
- jwt-java
- prometeus
- 파이썬
- mybatis
- konga
- 자료구조
- devops
- OpenSource
- template/callback
- roll over
- ELK
- 메소드
- API Gateway
- Nice
- Today
- Total
목록전체 글 (160)
youngseo's TECH blog
문제 일단 프로그래머스는 시간제한이 따로 명시되어 있지 않다. 약 1~10초 정도의 시간 안에 풀면 된다고 암묵적으로 정해져 있다고 한다. 입력 N값이 최대 100만이므로, O(N^2)은 안된다. IDEA (잘못된 생각들..) 일단 for문 두 개로 돌리는 방법은 절대 통하지 않는다. O(N^2) 그래서 뒤에서부터 하나씩 숫자들을 판단해가면서 dictionary에 최소 index를 저장해주고 탐색하는 식으로 가려고 했으나, dictionary에 저장되는 수마저 100만이므로 똑같이 O(N^2)가 되어 이 방법도 불가능하다. IDEA - stack 자료구조 + while문 결국 아이디어를 참고하고 만 문제이다.😓 다음과 같이 하나씩 돌면서 numbers[i]가 '가까운 가장 큰 수'인 것들을 stack에서..
연습 풀이 전략 프로그래머스에서 6가지의 카테고리 별로 나누어 연습해볼 수 있는데, SELECT 문에서 JOIN 도 나오기도 한다. 그래서 한 개씩 여기저기 들르면서 푸는 것을 추천한다. 실전 풀이 전략 SQL 관련 코테가 예정되어 있어서, 일단 실전 풀이 전략은 다음과 같이 세우기로 했다. 1. 일단 테스트 시험까지 응시해본 결과, 임시로 나오는 테스트케이스에 맞게 예제가 나오지 않는다.🥲 데이터를 눈으로 확인할 수 있는 방법이 있긴 하다.😏 SELECT * FROM TABLE명 ; 하면 얼추 나온다. 2. 백준처럼 맞았습니다!! 를 확인할 수 없다. 그래서 테스트케이스 답과 모두 일치함에도 불구하고 틀릴 수 있다.(조건 등을 하나씩 빼먹을 경우) 조건 하나하나 잘 파악해서 쓰자(성별, 카테고리 제한 ..
Spring Security는 Java 애플리케이션에서 인증/권한 부여 서비스를 제공하는 프레임워크이다. 이를 활용해서 소셜 로그인(카카오, 애플)을 구현해보았다. 이 글에서는 우선 Spring Security로 JWT를 구현하는 방법에 대한 글을 써보려고 한다. 일단 Spring Security는 그리 쉽지 않다.. 구현도 쉽지 않고, 찾아보니 이 쪽 영역을 제대로 공부하기 위해서 사람들이 시간을 잡고 공부하는 것 같았다. 그래서 공부방향을 코드에 대한 대략적인 JWT 작동 방식을 이해하고, 내가 나중에 확실히 또 써먹을 수 있도록 공부해보는 것으로 잡았다. 아래를 봐도 아주 복잡한 filter의 향연을 볼 수 있다 .. 인증 과정? Spring Security에서 JWT 인증 과정은 다음과 같다. d..
config>SecurityConfig에 다음 코드를 붙여놓는다. @Configuration @EnableSwagger2 public class SwaggerConfiguration { @Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .useDefaultResponseMessages(false) .apiInfo(apiInfo()) .select() //모든 경로의 api를 사용한다. .apis(RequestHandlerSelectors.basePackage("com.example.umc3_teamproject")) .paths(PathSelectors.any()) .build() ; } private ApiInfo..
개요 일단 JWT에 대한 개념부터 알고가자! JWT는 JSON Web Token의 약자로, 로그인 인증 기능에서 사용하는 토큰을 만들 때 사용하는 기술이다. JWT를 구현하는 방법은 두 가지이다. 1. jwt-java 라이브러리를 사용하여 JWT를 생성하고 파싱하는 방법 2. spring security 라이브러리 이용하기 이번에 로그인 로직을 짤 때 일반 로그인은 1번으로, 소셜 로그인은 2번 로직으로 짜게 되어 JWT와 많이 친해질 수 있었다. 이번 글은 1번 방법에 대한 설명이다. 2번 방법(JWT+소셜로그인) 에 대한 설명은 이쪽에서 확인 가능하다. UMC 동아리에서 제공해준 템플릿 중 로그인 구현 방법 코드를 인용하였다. 아래 코드로 자세히 알아보자. service/JwtService.java ..
EC2를 배포하는 방법에는 여러가지가 존재한다. ec2+nginx와 ec2+docker 방식 중에 고민하다 후자를 선택했다. Docker란? Docker 사용방법 일단 도커란 무엇인가? 간단히 리눅스 컨테이너를 만들고, 사용할 수 있는 컨테이너화 기술 이걸 이미지?라고 통칭하는 것 같다. 도커 사용 방법 일단 docker 이미지 업로드로 먼저 시험해보자! 구글링 키워드 - docker 이미지 pull 실습 Docker Desktop을 깔아서 보면서 하면 좋다. 로그인할 때 github 이름으로 해야 함 주의 특히나 github 세미 이름..?? Youngseo-Jeon0313으로 하면 안되고 jeonyoungseo로 했어야 했다. 나중에 배포할 때에도 이름을 jeonyoungseo/umc3-server ..
SPRING의 가장 강력한 점은 IOC, DI에 있다. DI란, 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. @Bean 어노테이션과 연결지어 생각하는 것이 좋다. 우리는 @Bean을 만들어놓고 그 안에 방법2처럼 setter() 또는 생성자 등을 이용한다. 연결지어 Bean은 위 사진처럼 객체를 만들어서 활용하는 틀로 생각하면 좋다. Bean은 SingleTon으로 생성되는 것으로, Spring Framework에서 딱 한 개가 만들어진다. 그래서 우리는 이 틀 안에서 특성 값을 '특정' 해놓으면 안된다. 그런 방법보다 값을 생성자 또는 setter로 '할당'하자. IoC(제어의 역전)은, SPRIN..
ERD 및 API 설계 이제 서버를 실질적으로 구현해볼 시간이다! 일단 기능사항을 분석하여 ERD를 설계해야 한다. 우리 글에서 발견한 길 팀은 GUI를 보면서 필요한 기능사항을 분석하여 ERD로 표현하였다. 서로 놓치는 부분이 없게 하기 위해 회의로 즉각 진행하였다. 아래에 기억에 남는 내용들을 기록해보았다! delete 부분은 어떻게 처리할까요? 아예 DB 상에서 없애는 방법보다는 boolean 값으로 없앴다는 처리를 남기는 방법을 사용하기로 했다(soft delete) 다대다 관계의 것은 매핑테이블을 통해 1대 다 / 다대 1로 풀자. 즉 단방향으로만 관계를 표현하도록 노력하자. 이를 위해 매핑 테이블을 만들었다. id는 LONG으로, 티어(브론즈, 플래티넘 등)는 enum으로, 데이터 생성/수정시..