모험가의 Spring/Spring

    JpaRepository에서 Optional 객체에 담긴 정보 가져오기

    JpaRepository에서 Optional 객체에 담긴 정보 가져오기

    개발을 시작하기 얼마 안됐을때쯤 JPA를 통해 Optional 객체로 사용자의 정보를 가져와서 리스트나 아니면 다른 값으로 Response 해주는걸 하다가 의문점이 들었다. 그럼 원하는 정보를 하나만 딱 뽑아서 가져오는건 어떻게하지..? 이것만 쉽게 한다면 세상 뭐든걸 다 개발할 수 있을 것 같아서 바로 찾아봤다. 사실 그렇게 어려운건 아니다. Optional 클래스에 대한 지식이 어느정도만 있어도 충분히 가능한 수준이지만 자린이였던 내가 그런걸 알리가 없다. 그렇기 때문에 바로 다시 개념 공부,, 아래는 필자가 생각하기에 간단한 개념정리가 잘되어있다고 생각한 블로그이다. Optional 1. Optional 소개 catsbi.oopy.io 흔히 우리가 자주 사용하는 Jpa에서 findById를 하였을때..

    인텔리제이로 Spring을 개발할때 TIP !

    인텔리제이로 Spring을 개발할때 TIP !

    플러그인 1. CSV : CSV 파일을 적극적으로 활용하자 - 실무에서 자주 사용되는 플러그인, 대량 등록/ 타 팀에게 특정 데이터를 전달해줄때 효율적으로 사용 가능 2. Git Toolbox : Git에 도움을 주는 플러그인 - 코드 라인에 마지막 Commit 이력이 출력됨, 주석처럼 사용할 수 있다. 3. JPA Buddy : JPA가 익숙치 않다면 사용 추천 4. String Manipulation : - String, 멀티 드래그 같은 입력에 관련해 막강한 편의기능을 지원해줌 편의기능 command + E : 최근 변경 파일 목록 command + shift + A : 액션 검색 기능 command + control + G : 같은 네임 멀티 라인 복사, 편집 option option + 아래 방..

    예외 처리 _ Custom Exception 만들기

    예외 처리 _ Custom Exception 만들기

    개발을 하다보면 정말 수많은 Exception을 만나게 된다. 그러면 우리는 항상 구글링을 통해, 또는 코드를 뒤적뒤적하다가 Exception을 해결하곤 한다. 근데 이러한 Exception을 사용자가 마주했다면? 그렇다면 분명히 제대로 설명이 필요할 것 이다. 이며 표준 명시된 예외처리가 나간다고 하면 우리의 API를 사용하는 유저들은 불친절한 에러에 당장 회원탈퇴를 누르고 말 것이다. 그렇다면 서버에서는 어떻게 해야 사용자들이 잘못된 방식, 접근을 하였을 경우 Exception을 어떻게 처리해주면 좋을까? 방법은 Exception을 Custom 해주면 된다. 쉽게 말해 우리가 직접 예외처리를 만들어 주면 된다. 만약 사용자가 아이디 또는 비밀번호를 잘못 입력하여 Exception을 마주했다고 했을때 ..

    SpringSecurity 접근 허용에 주의 할 점

    SpringSecurity 접근 허용에 주의 할 점

    내가 진행하던 프로젝트를 개발하던 도중 내 골머리를 부실려했던 에러가 하나 있었다, 사실 별거 아니였는데 너무나도 당연하게 생각하고 있어서(...) 해결하지 못했던 에러였던 것 같다. 분명 위 맵핑 주소는 접근 허용을 전체에게 해뒀음에도 불구하고 계속 접근에 대해 검증을 시도하는 것 이였다. 구글링 해도 뭔가 답답하고 제대로 해답이 나오지 않아 미친듯한 삽질을 시작해봤다. 개발하고 있는 코드가 문제일 수도있단 생각에 코드를 갈아엎어보기도 해봤지만 사실 접근문제는 코드문제가 아니기에,, 그래서 Config로 들어가 뭐가 문제일까 열심히 생각을 해보았다. 개발할때 뭔가 문제가 생겼을때 혹시나 이게 ? 라는 생각이 가끔 들때가 있는데 나는 지푸라기라도 잡는 심정으로 설마 맵핑주소 시작에 슬래시가 빠져서 일까?..

    Spring을 이용한 CRUD 구현_Create

    Spring을 이용한 CRUD 구현_Create

    저번 게시글에서 간단한 회원정보를 입력받고, 데이터베이스와 연동을 통해 저장을 하는 것까지 해보았는데 지금까지 공부한 내용을 토대로 조금 더 자세한 CRUD를 구현해보려고 한다. 여기서 CRUD란 Create, Read, Update, Delete의 약자로써 기본적인 정보처리를 하는 API를 개발 해볼려고한다. 그중 이번에 다루어볼 부분은 Create로써 회원정보를 입력받고 DB에 저장받는 부분을 구현해보도록 하겠다. 코드를 관리하고 유지보수하는것은 정말 중요한 부분이기 때문에 패키지의 구조를 잘 만들고 효율적으로 관리하는 것이 중요함을 공부하면서 기본이 되면서도 중요한 내용임을 계속해서 배우고 있다. 저번보다 더 자세하고 효율적인 패키지 구조를 통해 Create부분을 구현해보도록 하자. Create를 ..

    Spring 기초 : SpringDataJpa 사용하기

    Spring 기초 : SpringDataJpa 사용하기

    지금까지 JPA를 이용하여 mysql과 연동해 간단한 회원 정보를 주고받아 봤는데, 이번에는 SpringDataJpa를 이용해 프로젝트를 리팩터링 해보려 한다. 사실 JPA에 관해 공부를 하지 않고 SpringDataJpa를 쓰는 것은 좋진 않지만 현재 사용법에 대해 익히고 있고 기초를 진행하기에 프로젝트를 SpringDataJpa를 이용해 추가 기능을 구현해보려 한다. 당분간은 직접 프로젝트를 통해 어느 정도 흐름을 이해하고 익혀보도록 하자. 상단 폴더에서 Repository에 Jpa 부분을 삭제하고 SpringUserRepository 라는 인터페이스 하나를 생성해주었다. 이 인터페이스를 통해 이미 구현되어있는 메소드들을 불러와 SQL 쿼리문을 자동으로 처리해주는 방식으로 김영한 님의 말씀대로 정말 ..

    Spring 기초 : 간단한 회원정보 입력받기 + MYSQL + JPA

    Spring 기초 : 간단한 회원정보 입력받기 + MYSQL + JPA

    서버도 준비가 되었으니, 이제 spring boot를 통해 값을 입력받고 mysql server에 데이터를 저장해보도록 하자. 그전에 글에 대한 이해도를 높이기 위해 아래의 강의를 전부 완독하고 온다면 정말 좋을 것이다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 위에 대한 지식을 바탕으로 만든 프로젝트의 폴더 구조를 먼저 살펴보도록 하자. 이번 프로젝트에선 View를 사용하지 않고 포스트맨으로 값을 입력받고 데이터가 잘 저장되는지 확인을 해보려고 한다. mvc의 형식으로 직접 form..

    Spring 기초 : Mysql + Spring 연동

    Spring 기초 : Mysql + Spring 연동

    오늘은 Spring Boot 와 데이터베이스인 mysql을 연결하는 방법에 대해 알아보자 🙂 필자의 경우 mysql을 사용하면서 Sequel Ace 라는 MySQL/MariaDB 데이터베이스 작업을 위한 Mac 데이터베이스 관리 애플리케이션을 사용할 예정이다. 사용에 익숙치 않다면 mysql workbench를 이용해 DB 작업에 조금 더 편의성을 갖춰서 작업하도록 하자. 시작하기전, 아래 사항들을 충분히 숙지해두자. 0. Mysql 설치 및 사용 https://itstudy402.tistory.com/12 맥 OS 에서 MySql 사용하기 맥 OS에서 MySql 사용하는 방법을 알아보도록 하겠습니다. MySql은 정말 많은 사람들이 사용하는 DB인 것 같습니다. 이제 시작하는 초보 개발자분들부터 상급 ..

    Spring 기초 : controller를 이용한 간단한 데이터 주고받기

    Spring 기초 : controller를 이용한 간단한 데이터 주고받기

    1. Spring MVC https://u0hun.tistory.com/15 MVC란? (Spring MVC) https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html [SpringMVC] Spring MVC Framework란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io https://developer.mo.. u0hun.tistory.com 2. Postman https://testmanager.tistory.com/342 Postman을 사용한 POST 요청 POST 요청이란 무엇입니까? POST는 HTTP와 유사한 GET request로서, 이것..

    Spring 공부에 들어가기전에

    Spring 공부에 들어가기전에

    back-end 개발자라는 목표를 두고서 가장 먼저 집중해서 공부해야 할 것을 필요로 했는데 제일 많은 고민을 했었던 node.js 와 Spring Boot 에 대한 이야기를 해볼려 한다. 시작점에서 한가지 목표를 잡고 공부하기 시작하면 그것은 상당한 다른 결과를 가진 미래들을 불러오곤 한다. 간단하게 예를 들자면 자신이 프로게이머가 된다고 가정했을때 한가지 게임을 정하여 시작하게 되는데, 보통의 경우에는 한번에 여러 게임을 하게 된다면 당연히 한 분야에서의 능력이 집중적으로 향상될 수 없기 때문이다. 또한 그 선택으로 인해 내가 무엇을 하게되고 어떻게 살게될지 크게 달라질 확률도 클 것이다. 이와 마찬가지로 back-end 개발을 시작하면서 중요한 갈림길인 node.js 와 Spring Boot 중 어..