최대한 간단하게 메일을 보낼 수 있게 gmail 이용 구글 계정 설정 구글 계정 관리 > 보안 2단계 설정 및 앱 비밀번호 생성 구글 메일 > 톱니바퀴 > 모든 설정 보기 > 전달 및 POP/IMAP IMAP 사용 Spring Boot 설정 build.gradle // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail implementation("org.springframework.boot:spring-boot-starter-mail") MailSender 설정 kotlin configuration @Configuration class MailConfig { @Bean fun getMailSender()..
Case 1 Spring Boot 3.0.0 Kotlin Gradle 7.6 (kotlin) spring 3.0.0 부터 javax에서 jakarta를 사용하면서 기존 코드들을 그대로 사용하면 호환성 문제가 있음. 그렇다고 많은부분이 바뀌는건 아니고 build.gradle 의존성만 조금 바꿔주면 된다. plugins { ... kotlin("kapt") } dependencies { ... annotationProcessor("jakarta.persistence:jakarta.persistence-api") annotationProcessor("jakarta.annotation:jakarta.annotation-api") // https://mvnrepository.com/artifact/com.quer..
로컬 환경에서 이미지 업로드 기능 개발중 로컬에 이미지를 저장했는데 react에서는 로컬에 저장된 이미지를 불러올 수 없었다. 그래서 nginx로 로컬 이미지 서버를 만들어 nginx에서 이미지를 불러올 수 있도록 했다. docker hub에 등록된 nginx 이미지 https://hub.docker.com/_/nginx nginx - Official Image | Docker Hub Quick reference Supported tags and respective Dockerfile links 1.23.3, mainline, 1, 1.23, latest 1.23.3-perl, mainline-perl, 1-perl, 1.23-perl, perl 1.23.3-alpine, mainline-alpine, ..
이미지 다운로드 $ docker pull nginx:latest 다운받고자 하는 이미지가 docker hub에 등록되어 있다면 커맨드를 복사할 수 있도록 친절하게 제공하고 있습니다. 컨테이너 실행 $ docker run --name some-nginx nginx:latest # options -i # 컨테이너에 키보드 입력이 필요한경우 -t # 컨테이너에 TTY할당하여 터미널 이용이 필요한 경우 -d # 백그라운드로 실행 --name some-nginx # 컨테이너 이름 -p 5000:80 # 포트 바인딩 [local:docker] -v C:/image:/usr/share/nginx/html:ro # 볼륨 바인딩 [로컬:docker] nginx:1.23.3 # 실행할 이미지 image:tag ex) $ ..
windows 환경에서 next를 이용해 개발하고 있었는데 오늘 갑자기 Error: bind EACCES null:3000 에러가 발생하면서 실행이 되지 않는 문제가 생겼다. 구글 검색으로 나온 해결방법으로는 netstat -ano 명령어로 현재 실행중인 포트를 확인하고 서비스를 종료하라고 했지만 찾아봐도 3000번 포트로 실행할만한 서비스는 발견 할 수 없었다. 원인이 너무 광범위해서 일단은 4000번 포트로 실행했더니 오류가 발생하지 않았다. $ yarn dev -p 4000 추가 지속적으로 문제가 발생해서 좀 더 찾아보니 사용가능한 포트범위를 제한하는 기능에 사용하려는 포트가 포함되어 있는지 확인해보는 명령어가 있었다. $ netsh interface ipv4 show excludedportrang..
HTML(Hyper Text Markup Language) 웹페이지를 표현하기 위한 언어이다. 이름에 하이퍼텍스트가 들어가는데 하이퍼텍스트는 참조(하이퍼링크)를 통해 한 문서에서 다른 문서로 접근하는 텍스트를 의미한다. HTML이 개발된 이유는 1980년 CERN에서 정보를 공유하기 위해서 인터넷 기반 정보공유 체계를 만들었는데 여기서 정보를 표현하기위한 방식이 하이퍼텍스트로 작성된 문서 HTML이다. DOM 이란? Document Object Model의 줄임말이며, DOM이라는 것을 통해 우리는 모든 문서 Document Element의 Object(객체), Property(속성), Method(동작)을 정의하고 접근할 수 있다. DOM을 구성하는 Element들은 하나의 Node 단위로 표현될 수 ..
Git을 사용하여 작업하다보면 실수로 Commit하는 경우가 있습니다. 빠르게 파악할 경우 reset명령어를 통해 해결하면 되지만 이미 시간이 지나 repository에 올라가있고 이후에 commit을 한 상황이라면 실수로 commit된 파일을 삭제하더라도 history에 남아있어서 아이디나 패스워드, key등이 포함되 있을경우 곤란할 수 있습니다. 모든 branch, history에서 파일을 삭제하는 명령어 $ git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 삭제할파일명' --prune-empty --tag-name-filter cat -- --all 위 명령어를 실행한 이후에 다시 commit되는일이 없도록 .git..