란 개발일지

Total / Today

고정 헤더 영역

글 제목

메뉴 레이어

란 개발일지 Total / Today

메뉴 리스트

  • MY GITHUB
  • GITHUB.IO
  • 태그
  • 방명록
  • 전체 (257)
    • 일상 (21)
    • 학부 (14)
      • 캡스톤(a.k.a 졸작) (14)
    • 취준 (48)
      • 1. 기술면접 (12)
      • 2. 코딩테스트 (36)
    • 여러가지 (18)
      • 맥린이 탈출기 (12)
      • 기타 (6)
    • 갭알 (35)
      • 어렵다.. 서버.. (5)
      • WEB (15)
      • GIT (6)
      • JS & JQUERY (8)
      • DATABASE (1)
    • JAVA (61)
      • 기본 & 강의복습 (32)
      • SPRING (29)
    • PYTHON (60)
      • 기본 (19)
      • K-DIGITAL (41)

검색 레이어

란 개발일지

검색 영역

컨텐츠 검색

전체 글

  • [SPRING] JPA 활용1 | 웹 애플리케이션 개발

    2021.04.16 by ranlan

  • [SPRING SECURITY] CSRF

    2021.04.16 by ranlan

  • [SPRING SECURITY] 커스텀 클래스와 로그인

    2021.04.16 by ranlan

  • [ERROR] JPAQueryFactory 의존성 문제

    2021.04.15 by ranlan

  • [JPA] getOne과 findById ID로 객체 조회하기

    2021.04.14 by ranlan

  • [ERROR] 순환참조 문제

    2021.04.14 by ranlan

  • [SPRING] JPA 프로그래밍 기본 | 객체지향 쿼리 언어

    2021.04.08 by ranlan

  • [SPRING] JPA 프로그래밍 기본 | 값 타입

    2021.04.08 by ranlan

  • 20210402 | 6개월간의 근무 끝!

    2021.04.05 by ranlan

  • [WEB] 템플릿 엔진이란

    2021.03.27 by ranlan

  • [WEB] RESTful API 만들기

    2021.03.22 by ranlan

  • [JPA] 게시판 CRUD

    2021.03.21 by ranlan

[SPRING] JPA 활용1 | 웹 애플리케이션 개발

[Inflearn] 실전! 스프링 부트와 JPA 활용1 - 웹 어플리케이션 개발 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., - 강www.inflearn.com  엔티티 설계시 주의점1. setter을 남발하지 말 것setter로 인해 변경되는 부분이 많아지면 이후 유지보수에 어렵다. 2. 모든 연관관계는 지연로딩(LAZY Loading)으로즉시로딩(EAGER Loading)은 예측이 어렵고 예상치 못한 SQL이 실행될 수 있다(JPQL의 N+1 문제). 연관된 엔티티를 조회해야 한다..

JAVA/기본 & 강의복습 2021. 4. 16. 02:52

[SPRING SECURITY] CSRF

CSRF(Cross Site Request Forgery) 공격사용자 의지와 무관하게 공격자의 의도대로 서버에 특정 요청을 하도록 함예를 들어 한 사용자가 서비스를 사용중이다. 공격자는 이와 비슷한 도메인을 가진 가짜 사이트를 하나 만들어 사용자가 접속하도록 유도한다. 동일한 화면의 가짜 사이트에 사용자는 정보를 입력하고 서버에 요청을 보낸다. 하지만 실제로 서버에 요청되는 내용은 사용자의 요청이 아닌 공격자가 심어둔 내용이다. 이렇게 사용자 권한을 이용해 서버에 변조된 요청을 보내는 공격방법을 CSRF라 한다.  CSRF Token서버에 들어온 요청이 실제 서버에서 허용한 요청인지 확인하기 위한 토큰서버에서 뷰 페이지를 발행할 때 마다 랜덤으로 생성된 Token을 같이 준 뒤 사용자 세션에 저장한다. ..

JAVA/SPRING 2021. 4. 16. 01:22

[SPRING SECURITY] 커스텀 클래스와 로그인

AuthenticationProvider입력된 로그인 정보와 DB에서 가져온 사용자 정보를 비교하는 인터페이스사용자의 요청이 담긴 Authentication를 AuthenticationManager에 넘겨주며 해당 인터페이스를 ProviderManager가 구현ProviderManager은 여러 AuthenticationProvider로 구성되며 AuthenticationProvider에서 실제 인증에 대한 부분 처리인증 전의 Authentication 객체를 받아 인증이 완료된 객체 반환 AuthenticationProvider 인터페이스를 구현하여 해당 클래스를 AuthenticationManger로 등록AuthenticationManger 인증 요청을 받고 Authentication를 채움Authe..

JAVA/SPRING 2021. 4. 16. 01:04

[ERROR] JPAQueryFactory 의존성 문제

문제QueryDSL 코드를 짜고 api 테스트를 해보려고 서버를 켰더니.. 실행이 안된다..  대충 뭐 JPAQueryFactory에 대해 의존성 주입이 잘 안된듯 하다.구글링 해보니 나와 완벽히 같은 오류가 발생한 경우는 거의 없고 보통 레퍼지토리나 서비스의 의존성 주입에 대한 문제가 발생하는 것 같았다. 대부분 어노테이션을 제대로 안붙였거나 경로를 잘못썼거나.. 사소한 이유들이였다. 근데 ..왜 ....나는 ......어노테이션도 잘 쓰고 코드도 잘 짰는데 ......🥲🥲🥲🥲🥲  build.gradleplugins { id 'org.springframework.boot' version '2.4.4' id 'io.spring.dependency-management' version '1.0.11..

JAVA/SPRING 2021. 4. 15. 00:57

[JPA] getOne과 findById ID로 객체 조회하기

Spring Data JPA를 사용하여 객체의 @Id로 조회할 때 두 메서드 모두 사용 가능하다. 그 차이점은 무엇일까? getOne() /** * Returns a reference to the entity with the given identifier. Depending on how the JPA persistence provider is * implemented this is very likely to always return an instance and throw an * {@link javax.persistence.EntityNotFoundException} on first access. Some of them will reject invalid identifiers * immediately. ..

JAVA/SPRING 2021. 4. 14. 01:10

[ERROR] 순환참조 문제

문제차근차근 JPA를 사용하여 로직을 만들고 잘 나오는지 테스트를 하고 있었다. 그런데 갑자기ㅠㅠ java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed 아주 난리가 났다.. 쿼리를 살펴보니 계속해서 같은 쿼리가 반복되고 포스트맨으로 응답 결과를 보니 매핑관계에 따라 끝없이 타고 가는 것이였다 😭😭   '순환참조' 문제라 부르기도 하고 JPA를 사용하며 흔히들 겪는 문제라 한다.즉 양방향 매핑된 경우 엔티티를 JSON으로 변환하는 도중(연관관계를 직렬화 하는 도중) 무한 참조로 인한 에러이다.작성한 엔티티 객체를 살펴보면 Board객체에 작성자 정보로 Member객체를 참조하였고 M..

JAVA/SPRING 2021. 4. 14. 00:24

[SPRING] JPA 프로그래밍 기본 | 객체지향 쿼리 언어

JPA가 지원하는 쿼리 방법1) JPQL엔티티 객체를 대상으로 한 쿼리이다.애플리케이션이 필요한 데이터만 데이터베이스에서 불러오려면 검색 조건이 포함된 SQL 필요한데 JPA는 SQL을 추상화한 JPQL 이라는 객체 지향 쿼리 언어 제공한다. 테이블이 아닌 엔티티 객체를 대상으로 검색하는 것으로 SQL과 문법이 유사하며 select, from, where, group by, having, join 등을 지원한다.*SQL을 추상화하기 때문에 특정 데이터베이스 SQL에 의존하지 않는다(데이터베이스 종속적인 함수는 사용 불가).예시) 18세 이상의 회원 조회String jpql = "select m from Member m where m.age >= 18";List result = em.createQuery(..

JAVA/기본 & 강의복습 2021. 4. 8. 19:22

[SPRING] JPA 프로그래밍 기본 | 값 타입

데이터 타입의 종류값 타입int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체이며 식별자가 없고 값만 있으며 변경 시 추적 불가예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체됨불변 객체@Entity로 정의하는 객체로 데이터가 변해도 식별자로 지속해서 추적 가능예) 회원 엔티티의 키나 나이 값을 변경해도 식별자로 인식 가능  기본값 타입예) String name, int age 처럼 자바 기본 타입(int, double 등), 래퍼 클래스(Integer, Long 등), String생명주기를 엔티티에 의존함(예를 들어 회원을 삭제하면 이름, 나이 필드도 함께 삭제)* 값 타입은 공유하면 안됨 | 자바의 기본 타입(int, double 등)은 절대 공유하면..

JAVA/기본 & 강의복습 2021. 4. 8. 18:24

20210402 | 6개월간의 근무 끝!

4월 2일, 길고도 짧았던 6개월의 기간이 끝나고 난 퇴사하였다. 작년 가을 회기에서의 힘들었던 하계 인턴쉽을 마치고 딩가딩가 난 이제 뭐하고 살아야 하나 고민하던 중, 아빠가 너 자바좀 할줄 아냐며 '청년 일경험 지원 사업'에 지원할 것을 권유했다. 그때 당시 LH였나 어디 공기업에서 체험형 인턴? 교육생?을 모집하고 있었고 난 원래 그걸 준비하려고 지원서를 작성 중이였다. 아빠의 권유를 받고 며칠간 수많은 고민과 생각 끝에.. 회사에 다니기로 결정했다. 나에게 있어 개발은 하계 인턴쉽이 마지막일거라고 생각했었다.이제 생각해보면 거기서 하던걸 개발이라 해도 되나 싶을정도로 우습긴하디만ㅎ 이제 내 노트북에서 어떠한 개발 툴이 돌아가는 일은 후에 복학해서 들을 캡스톤 이전까지 절대 없을 줄 알았다. 하지만..

일상 2021. 4. 5. 00:04

[WEB] 템플릿 엔진이란

템플릿 엔진이란?동적 컨텐츠를 생성하는 방법으로 스프링 MVC(Model, View, Controller) 중 VIEW에 해당한다.jsp, thymeleaf,  Apache Freemarker, Mustache, Groovy Templates 등 여러 템플릿 엔진이 존재한다.클라이언트 사이드 템플릿 엔진 HTML 형태의 코드로 작성되며 데이터를 받아 DOM 객체에 동적으로 그려주는 프로세스 담당한다.서버 사이드 템플릿 엔진서버에서 가져온 데이터를 미리 정의된 템플릿에 넣어 HTML을 그린 뒤 클라이언트에 전달한다.  JSPJSP 내에서 자바 코드 사용 가능 (사용하지 못하도록 설정도 가능하나 jsp 내부에 비지니스 로직이 포함된 자바코드 넣는 것 지양 )서블릿으로 변환되어 실행 ..

갭알/WEB 2021. 3. 27. 01:23

[WEB] RESTful API 만들기

VIEW를 담당하는 컨트롤러를 제외한 모든 컨트롤러를 @RestController로 지정하여 RESTful API로 만들었다. @RestController는 별도의 View를 제공하지 않기 때문에 문제가 발생하는 상황에서 상태코드와 응답메시지 등을 함께 보내주어야 한다고 한다. 따라서 컨트롤러의 반환값은 모두 ResponseEntity로 하였고 ApiResponse라는 response객체를 만들어 상태코드, 메시지, 데이터 등을 담아 반환하였다. ResponseEntity는 '개발자가 직접 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스'로 404나 500같은 HTTP 상태 코드를 전송하고 싶은 데이터와 함께 전송할수 있기 때문에 좀더 세밀한 제어가 필요한 경우 사용할 수 있다. Resp..

JAVA/SPRING 2021. 3. 22. 23:10

[JPA] 게시판 CRUD

가장 먼저 간단한 게시판 기능을 구현하기로 하였다.카테고리를 선택하고 글의 제목과 내용을 입력하여 게시물을 등록하고 조회, 수정, 삭제까지 할 수 있도록 하였다.그 외의 이미지, 동영상 업로드나 수정 시 권한 확인 등의 문제는 차차 추가할 예정!  2021.03.22 - [study/spring boot & jpa] - RESTful API 만들기 [WEB] RESTful API 만들기VIEW를 담당하는 컨트롤러를 제외한 모든 컨트롤러를 @RestController로 지정하여 RESTful API로 만들었다. @RestController는 별도의 View를 제공하지 않기 때문에 문제가 발생하는 상황에서 상태코드와 응juran-devblog.tistory.com 도메인 설계Board@Entity@Gette..

JAVA/SPRING 2021. 3. 21. 09:46

추가 정보

인기글

최신글

페이징

이전
1 ··· 17 18 19 20 21 22
다음
TISTORY
란 개발일지 © Magazine Lab & Customized by Juran

티스토리툴바