분류 전체보기

DevOps

포스트맨 workspace 삭제

진행하던 프로젝트에서 팀원이 갑작스럽게 나갔는데 포스트맨 워크스페이스를 삭제하고 나갔다... 업그레이드 버전을 썼더라면 이런일이 없었을텐데... 워크스페이스를 삭제하면 복구가 불가능하다고 한다. 이렇게 삭제할 수 있다. 삭제하면 복구가 안되니 주의할 것!

spring/JPA

custom repository 만들기

jpa interface에서 구현체를 만들려면 너무 많은 것을 override 해야 해서 방법을 찾던 중 custom repository interface를 같이 extends 해주는 방법을 찾았다. ProjectRepositoryCustom interface public interface ProjectRepositoryCustom { } ProjectRepositoryCustomImpl class public class ProjectInterestRelationRepositoryCustomImpl implements ProjectInterestRelationRepositoryCustom{ } JpaProjectRepository interface public interface JpaProjectRepo..

spring/JPA

inner join query

mySQL로 쿼리문을 짠 후에 JPQL로 바꿨다. select * from project as p join project_interest_relation as pir on p.prj_id = pir.prj_id where pir.in_id = 0; @Query(value = "select p from Project as p join ProjectInterestRelation as pir" + " on p.prjId=pir.project.prjId where pir.interest.inId = :interestId") List findByInterest(@Param("interestId") int interestId); 테스트 해본 결과 잘 작동된다!

DevOps/Docker

Redis를 Docker로 띄우기 + Docker Compose up으로 띄우기

백엔드 개발을 할 때는 redis만 도커로 띄워놓고 사용했는데, 기능 개발이 끝난 후 프론트에서 작업할 때에는 프론트+백엔드 도커에 +redis까지 띄워줘야 된다는 사실을 깨닫고 부랴부랴 만들었다. Redis 컨테이너 하나만 사용 redis 이미지로 docker 컨테이너 만들기 docker pull redis //이미지 받아오기 docker images //받아온 이미지 확인 docker run --name [name] -d -p 6379:6379 redis //실행 docker ps -a //컨테이너 확인 redis client 접속하기 docker exec -it [name] /bin/bash redis-cli redis key, value 확인 명령 keys * get [key] set [key] ..

알고리즘/구현

[이코테] 예제와 실전 문제

구현 문제는 어려운 문제는 너무 어렵다.. 모든 문제가 그렇지만 구현과 dp는 어려우면 생각도 못하겠다. 휴 계속 연습해야지.... 상하좌우 NxN 크기의 맵에서 LRUD 로 이동하는 문제였는데, 맵의 x와 y를 당연히 좌표와 똑같을 줄 알았지만 달라서 당황했다. 문제에서는 x와 y가 바뀌어 있고 (오른쪽으로 3칸 아래로 2칸이 (2,3)) y 좌표는 반대로 되어 있다 (U는 -1, D는 +1) 이 점만 제외하면 쉽게 풀 수 있는 문제였다. 너무 오랜만에 풀어서 좌표 문제를 푸는 방법을 까먹어서 배열에 값을 미리 담아서 사용하지 않고 그냥 풀어서 좀 지저분하지만 어쩔 수 없다. 다음부터는 잊지 말고 풀어야지! #define _CRT_SECURE_NO_WARNINGS #include #include #in..

알고리즘/그리디

[이코테] 실전 문제

최근에는.. 할 일이 너무 많아서 우선순위에서 밀려나는 바람에 문제를 많이 안풀었다.. 다시 차근차근 코테 준비를 해볼까 한다.. (2022-2 알고리즘 때 구현하기는 했음, 이것도 정리해서 올릴 예정) 다시금 감을 잡기 위해 이코테 책을 앞에서부터 다 풀기로 했다. 큰 수의 법칙 배열의 주어진 수를 M번 더해 가장 큰 수를 만드는 문제로 이때 특정 인덱스의 수는 연속으로 K번을 초과해 더할 수 없다. 처음 이 문제를 풀 때는 [가장 큰 수를 K번, 그 다음으로 큰 수 1번]을 반복해서 가장 큰 수를 구했다. 하지만 이는 비효율적인 방법이었고 알맞은 수식을 찾아내서 한 번에 해결할 수 있었다. #define _CRT_SECURE_NO_WARNINGS #include #include #include usi..

spring

이메일 인증받기 (2) - Redis 사용

https://hihinote.tistory.com/90 이메일 인증받기 (1) 회원가입 단계에서 사용자 인증을 받을 때 SMS 인증은 건당 요금이 나간다고 해서 이메일 인증을 채택했다. 먼저 이메일에 코드를 보내면 그 코드를 레디스에 저장하고 사용자가 코드값을 입력 hihinote.tistory.com 이 글과 이어지는 포스팅이다. 이메일 인증을 위해 코드를 보내면 데이터베이스에 유효시간이 있는 이메일 값과 코드 값을 저장해야 한다. 이렇게 키, 밸류 값으로 이뤄지고 유효시간이 있는 데이터를 저장할 때 Redis를 사용하면 좋다고 해서 사용했다. Redis에 대한 설명은 다른 포스팅에서 다루겠다. build.gradle dependency implementation 'org.springframework..

spring

이메일 인증받기 (1)

회원가입 단계에서 사용자 인증을 받을 때 SMS 인증은 건당 요금이 나간다고 해서 이메일 인증을 채택했다. 먼저 이메일에 코드를 보내면 그 코드를 레디스에 저장하고 사용자가 코드값을 입력하면 레디스의 값과 비교해서 인증을 하는 순서로 진행된다. 레디스와 관련된 내용은 다음 글에서 다룰 것이다. https://hihinote.tistory.com/91 이메일 인증에는 두 가지 방법이 있는데 인증번호 입력 방식과 링크 클릭 방식이다. 둘 중 인증번호 입력 방식을 사용했고 구글 이메일을 보내는 메일로 사용했다. 이메일 인증은 스프링에서 기본으로 제공하는 API를 사용해 쉽게 할 수 있었다. admin이메일 계정 설정 구글의 2단계 인증을 활성화한 후 앱 비밀번호를 생성하면 gmail 비밀번호 대신 사용 가능한..

hahihi
'분류 전체보기' 카테고리의 글 목록 (17 Page)