본문 바로가기
  • 시 쓰는 개발자

Spring21

JPA repository 쿼리문 코드 참고 (+jpa가 만드는 쿼리문 확인하기) jump to spring boot 교재를 참고하였습니다. jpa repository 메소드가 만드는 쿼리문 확인하기 → application.properties 혹은 yml에 아래 문구 추가하기 !! spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.show_sql=true Question findBySubjectAndContent(String subject, String content); 이런 코드를 쿼리로 바꾼다면 아래 사진에서 where절같이 바뀌게 된다. JPA repository 메소드 이름 짓기 그렇다면 repsository의 메소드 명을 잘 지어야한다는 감이 올것이다. 엔티티에 subject, co.. 2024. 1. 24.
Spring 프로젝트 구조 (인텔리제이) 본 포스팅은 "점프 투 스프링부트"(박응용) 을 공부하면서 작성해놓은 글 입니다. SpringBoot 프로젝트 구조 이해하기 src/main/java 우리는 src/main/java 디렉터리의 하위 패키지에 자바 파일을 만들어서 파일을 작성하게 된다. 이때 말하는 하위 패키지란, 사실 크게 신경쓸 부분은 아니긴 한데 우리가 start.spring.io에서 만들어지는 패키지의 이름과 동일하다.(ex. com.mysite.sbb) 이 패키지 아래에서 controller나 dto, entity, service 파일 등을 만든다. Application 파일 모든 프로그램에는 시작을 담당하는 파일이 있다. 스프링부트 애플리케이션에도 시작을 담당하는 파일이 있는데 그 파일이 바로 "프로젝트명"+Application.. 2023. 9. 5.
SpringBoot 개발준비 (참고용) 본 포스팅은 "점프 투 스프링부트"(박응용) 을 공부하면서 작성해놓은 글 입니다. STS sts는 spring 전용 tool 정도로 생각하면 될 거 같은데, 이클립스나 인텔리제이같은 에디터이지만, spring 전용이기 때문에 start.spring.io가 자동으로 연동되는 등의 편리함이 있다. 하지만 우리는 인텔리제이 프로페셔널을 대학생용으로 사용 가능하기 때문에 굳이 안써도 될듯. SpringBoot 맛보기 @Controller HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미이다. 이 애너테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다. @GetMapping("/hello") http://localhost:8080/hello URL 요청이 발생하면 hello 메서드가 .. 2023. 9. 5.
spring 개발시 RestApi 방식과 뷰템플릿방식의 차이 스프링 공부를 하다보면 restapi, model, json, 뷰템플릿... 등의 이야기를 자주 듣게 되는데 이것들이 어떤 때에 사용되는 단어들인지 모르는 경우가 많다. 각각의 방식에 따라 데이터를 주고받는 형식이 다르고, 이것을 모른다면 Postman으로 기능 테스트를 진행할 때에도 올바른 기능일지라도 데이터 형식 설정을 잘못해서 오류가 나는 경우가 많아서, 이번 기회에 이것들을 간단하게 정리해보려고 한다. RestApi와 JSON https://100won-developer.tistory.com/21 API란 무엇인가 (+REST API) API란? sw가 다른 sw로부터 지정된 형식으로 요청하거나, 명령을 받을 수 있는 수단. ▶ 어떤 기술이나 제품이 아니라 “형식”이기 때문에 어떤 언어나 어떤 프.. 2023. 3. 8.
API 명세서 작성하기 예전에 api 관련 글을 쓴 적이 있다. https://100won-developer.tistory.com/21 API란 무엇인가 (+REST API) API sw가 다른 sw로부터 지정된 형식으로 요청하거나, 명령을 받을 수 있는 수단. ▶ 어떤 기술이나 제품이 아니라 “형식”이기 때문에 어떤 언어나 어떤 프레임워크를 쓰든, 어떤 SW를 만들든 이 100won-developer.tistory.com 이때는 api에 대해서 간단히 알아보고 rest api는 무엇인지, 전체적인 맥락을 가볍게 훑어보았다. 이번에는 API 명세서 작성하는 방법을 써보려고 한다. API 명세서란?? API (Application Programming Interface) 명세서는 소프트웨어 개발자들이 서로 다른 시스템이나 프로그.. 2023. 2. 19.
PUT과 PATCH의 차이점 PUT과 PATCH는 모두 HTTP 메소드 중에서 데이터를 수정하기 위한 메소드이다. 둘 다 수정을 담당하는 메소드라서 어떤 것을 언제 사용해야하는지 헷갈리는데, 일반적으로 PUT과 PATCH는 다음과 같이 분류한다. PUT은 전체 엔티티를 업데이트하기 위해 사용되는 메소드이다. 전체를 교체하기 때문에 PUT을 쓸 때에는 모든 필드가 필요해서 클라이언트가 업데이트하고자 하는 리소스의 전체 표현을 제공해야 한다. 만약 PUT을 쓸 때 필드의 전체가 아니라 일부만을 제공한다면 제공한 일부를 제외하고 나머지 모든 필드값이 NULL이 되거나 default값이 되므로 주의해야한다. → 그래서 이런 실수를 방지하고자 일부러 PATCH만 쓰도록 개발자들끼리 약속하기도 한다. PATCH는 부분적인 업데이트 즉 엔티티의.. 2023. 2. 19.
spring security - 인증 방식에 따른 차이 (세션과 토큰방식) 세션 기반 자격 증명 방식이란, 인증된 사용자의 정보를 서버 측에서 세션 형태로 하여 세션 저장소에 저장하는 방식을 말함. 클라이언트의 request에는 서버로 전달되는 쿠키가 있는데 이 쿠키 안에 세션 id가 담겨서 전달됨. 그리고 이걸 서버에서 관리함. 즉, 인증된 사용자의 정보를 서버의 세션 저장소에서 관리하고 클라이언트에겐 해당 사용자를 구분할 세션 Id만 전달 서버에서 세션id 생성(고유한 값) → 클라 쿠키에 저장돼서 request시 쿠키랑 같이 서버로 전송해서 인증된 사용자임을 증명 // 세션 데이터가 많아질수록 서버 부담 증가 세션 id만 클라에서 사용 → 적은 네트워크 트래픽 서버에서 세션 정보 관리 → 보안성 유리 서버 여러개로 확장시 불리 → 세션 불일치 문제 발생 가능 (확장한 서버.. 2023. 1. 3.
WelcomePage란? WelcomePage란? 예전에 웰컴페이지가 Login으로 고정돼서 localhost:8080을 아무리 쳐도 login 화면만 나왔던 경험이 있었다. 그때는 오류거나 경로를 잘못 입력해서 생긴 오류였다고 생각했는데, 다시 생각해보니 그것이 바로 WelcomePage가 설정돼서 그런 거였다. // 한마디로 localhost:8080이 특정 페이지로 고정되는 것이다. 이게 설정되어있으면 localhost:8080을 쳐도 예를 들어 항상 localhost:8080/index.html 로 고정돼서 메인화면으로만 나온다거나, 로그인화면으로 고정된다거나 등의 오류아닌 오류같은 상황이 일어날 수 있다. 아래 사진의 코드처럼 자바코드로 되어있을 수도 있고, html로 path를 고정시켜놓는 경우도 있는 것 같은데 ht.. 2022. 12. 11.
서블릿이란? (퍼옴) 출처 : https://mangkyu.tistory.com/14 [JSP] 서블릿(Servlet)이란? 1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다. 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해서, mangkyu.tistory.com 1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다. 클라이언트의 요청을 처리하고, 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 java web programming 간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술입니다. 그런데 좀더 들어가서 설명하면 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시.. 2022. 12. 8.