전체 글171 [Spring] 이메일 인증번호를 통한 회원가입 이메일 인증을 통해 구현하는 프로젝트를 만들다가 이 부분에 막혀서 몇일을 고민을 하고 고생을 했다. 우선 링크를 통한 회원가입, 인증번호를 통한 회원가입 2가지의 방법이 있는데 이번에는 인증번호를 통한 회원가입을 진행하겠다. 1. Spring 라이브러리 다운받기 implementation 'org.springframework.boot:spring-boot-starter-mail' 라이브러리를 추가해주자 !! Spring에서 메일 서버를 사용하기 위해서는 서버와 연결을 해야한다. Spring 자체적으로 메일을 주고받는것이 아닌 stmp 메일 서버를 사용해서 메일을 보내는 만큼 spring 안에 어떤 메일 서버와 연결하는지 관련 정보들을 넣어줘야 한다. 가장 많이 사용하는 법 2가지는 네이버, 구글 Gmai.. 2023. 1. 11. JVM Stack & Heap C/C++의 경우 컴파일 플랫폼과 타겟 플랫폼이 다를 경우, 프로그램이 동작하지 않는다. 개발시에는 문제되지 않는다. 문제는 개발이 아닌 배포할 때 문제가 된다. 이를 해결하기 위해선 타겟 플랫폼에 맞춰 컴파일을 한다. 이를 '크로스 컴파일(Cross Compile)' 이라 한다. JVM 으로 문제를 해결 자바 바이트코드는 타겟 플랫폼에 상관 없이 JVM위에서 동작 JVM은 타겟 플랫폼에 의존 Write Once, Run Anywhere" - Sun Microsysyems 네가 짠 자바 코드를 컴파일해서 배포하면, 어떤 플랫폼이든 다시 컴파일할 필요 없이 실행시킬 수 있어! 하지만 실행하려면 그 플랫폼에 맞는 JVM 이 설치되어 있어야 해! 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적 .. 2023. 1. 10. @Async 어노테이션 @Async 어노테이션 비동기처리 @Async 어노테이션을 빈Bean에 넣으면 별도의 쓰레드에서 실행. 호출자는 호출된 메소드가 완료될 때 까지 기다릴 필요가 없다. @Async 의 두가지 제약사항 public 메소드에만 적용해야한다 셀프 호출self invocation – 같은 클래스안에서 async 메소드를 호출 – 은 작동하지않음 메소드가 public이어야 프록시가 될수 있기 때문이고 셀프호출은 프록시를 우회하고 해당 메소드를 직접 호출하기때문에 작동하지않는 것 리턴타입이 없는 메소드 Methods with void Return Type @Async public void asyncMethodWithVoidReturnType() { System.out.println("Execute method asy.. 2023. 1. 9. 230108 실전프로젝트 1주차 WIL 드디어 마지막 가장 중요한 실전프로젝트 주차다. 이전까지 뭔가 많이 했나 ? 내가 성장했나 ? 느껴질 때 블로그를 보며 가장 앞부분에 뭘 썼는지 봤다. GET요청, POST요청이 뭔지 몰라서 헤맨적도 많았고, 토큰값이나, 아무런 조건도 없이 회원가입을 만들고 DB에 있는 그 값만 받아서 로그인하는 건데도 엄청나게 헤맨 기억도 있다. 당장은 앞만 봐서 너무 어렵고 모르는거 투성이라 이렇게 헤매고 있지만, 과거에 내가 그렇게 쉬운거에 헤맸던 걸 생각하면 그래도 나름 많이 배우고 성장했다고 느끼고 있다. 개발자라는 것을 몇개월, 몇년만 하고 땡 할게 아니기 때문에 그 시간이 더 쌓이고 축적되면 더 많이 성장하고 더 많은 것들을 알고 있을거라고 생각하며 실전프로젝트도 앞으로의 어려움들도 하나씩 이겨내야겠다. 이.. 2023. 1. 8. 20230101 WIL 클론프로젝트 회고 새해가 되었다. 다시 한번 달려보자 !! 우선 클론프로젝트를 진행했다. 우리 조는 카카오의 아지트를 클론프로젝트를 진행했다. 실제 구현 목표 회원가입 로그인 아지트 개설 아지트 리스트 확인 아지트 멤버 초대 아지트 멤버 리스트 확인 게시글 CRUD 좋아요 / 싫어요 기능 좋아요 싫어요 숫자 보여주기 좋아요 싫어요 2가지 버튼 동시 구현 댓글 갯수 보여주기 최신순 정렬 댓글 CRUD 최신순 정렬 메뉴 모달 이게 기존 로그인하면 화면이 나오는 것이 아닌 아지트를 만들었을때, 그 아지트에 멤버일 경우, 등 꽤 많은 경우의 수가 있었기에 은근히 생각쓸 부분이 많아서 쉽게 생각했는데 까다로웠다. 그리고 모든 부분을 단방향 연관관계로 처리를 해서 헷갈리기도 했다. 그래도 단방향으로 처리를 하다보니 이슈 : Enti.. 2023. 1. 1. 항해99 미니프로젝트 WIL 미니프로젝트 회고 이번주 미니프로젝트는 같이 조를 해보셨던 분들과 함께 해서 너무도 재밌고 너무도 행복하게 프로젝트를 진행했다. 우선 이번주 미니프로젝트를 하며 배운점은 우선 깃에 대해 정말 많이 배웠다. Git flow 전력과 Issue 관리, PR등 정말 많이 배웠다. 그리고 API설계나 ERD도 혼자서 해결할때는 많이 헷갈리는 부분이 있었고 확신에 찬다는 느낌은 없었다. 그래서 이번 프로젝트를 통해 처음으로 같이 ERD설계를 해보고 처음으로 제대로 된 API 설계를 해서 그것을 통해 프로젝트 진행을 할 수 있었다. 우선 이번 미니프로젝트 전 3주간의 스터디를 하며 뭔가 발전을 한 느낌보다는 점점 스프링에 대한 이해가 버거워지고 있다고만 느껴졌다. GitHub - Jaekyeong1/hanghae-s.. 2022. 12. 25. 20221218 미니프로젝트 WIL 우선 3주동안의 입문, 숙련, 심화 주차를 거치며 그래도 약간은 Spring에 익숙해 졌다. 이론적으로 조금은 이해를 했지만 점점 시간이 지날수록 어려운 부분이 많아 헤매기도 많이 했고 참 여기저기 많이 물어보며 해결하려고 애썼다. 하지만 그렇게 해결하는 것도 쉽지만은 않았던 것 같다. 우선 미니프로젝트를 하며 그냥 이것저것 던지며 주제를 정하는게 참 좋은거같다. 관심사나 취미 등 이것저것 얘기하다보면 이것 ! 하면서 생각나는 주제를 가지고 만드는게 참 좋다. 재밌기도 하고 모두 다 원하는 내용이다 보니 말이다 우선 ERD와 API설계 등 많은 것들을 연습만 해보다가 미니프로젝트를 진행하며 다시 한번 해보니 조금 더 이해가 되고 좋았던 것 같다. 다만 내가 그 3주간 열심히 못했던 것인지 어려웠다. 지금.. 2022. 12. 18. JPA study 2주차 영속성 컨텍스트 entity manger는 db연결이 필요한 시점까지 커넥션을 얻지 않는다 트랜잭션을 시작할때 커넥션을 획득 여기서 말하는 커넥션이란 ? 그리고 그 커넥션들이 있는 커넥션풀이란 ? 웹 컨테이너(WAS)가 실행되면서 DB와 미리 connection(연결)을 해놓은 객체들을 pool에 저장해두었다가 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식을 말합니다. 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 엔티티를 데이터베이스에 반영 - flush 트랜잭션을 지원하는 쓰기 지연 - 커밋하기 직전까지 데이터베이스에 엔티티를 저장하지 않고 내부 쿼리 저장소에 SQL을 모아둠 그리고 커밋할때 모아둔 쿼리를 데이터베이스에 보낸.. 2022. 12. 17. 20221211 주특기 심화 주차 WIL 매번 공부를 하면 완벽하지 않은채 넘어가는 날들이 참 많았다. 그러다보니 이번주 WIL 과제인 ORM, MVC, SQL 모두 어떤건지는 알지만 막상 설명하고 정리를 하려니 어려웠다. 이번에는 조금 더 공부를 해서 간단하게 정리해보도록 하자. SQL SQL은 프로그래밍 언어가 아니다 SQL은 Structured Query Language이다 데이터베이스와 대화하기 위해 디자인된 언어 SQL진영은 mysql, postgresql, sqlite가 있다. 우리가 사전 스터디때 배운 MongoDB같은 경우는 NON-SQL에 속함 SQL은 엑셀과 비슷하다고 생각하면 쉽다. SQL 데이터베이스에 테이블 = 엑셀 문서 시트 SQL의 커맨드들은 일반적 영어와 비슷해 이해가 쉽다. ORM ORM(Object-Relatio.. 2022. 12. 11. 이전 1 2 3 4 5 6 ··· 19 다음