inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

DDD 적용시 JPA 설계에 대해 궁금한 사항

해결됨

실전! 스프링 데이터 JPA

안녕하십니까 강사님. 좋은 강의 정말 감사합니다. 이번에 강사님께 강의를 듣고 현업에 적용하는 도중 궁금한 사항이 있어 문의하게 되었습니다. 저희는 현재 DDD 를 적용하려고 합니다. DDD 에서는 애그리거트끼리의 관계를 맵핑하는 것을 지양하는 것으로 알고 있습니다. 따라서 저희는 ERD 기준으로 도메인을 설계해보니 실제 나온 도메인을 보면 테이블이 전부 도메인 클래스가 되었고 서로간의 관계를 코딩으로 맺는 부분 (@ManyToOne 등)이 존재 하지 않습니다. 현업에서도 ERD 를 기준으로 도메인 클래스를 나누면 테이블 당 하나의 애그리거트가 나오는 것이 보편적인 사항일까요? DDD 로 개발하다보면 도메인 클래스에 관계를 맺는 부분이 없는게 보편적일까요?

  • java
  • spring
  • spring-boot
  • jpa
김가가가 댓글 2 좋아요 0 조회수 1312

IoC != DI에 대한 질문입니다.

해결됨

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요,선생님 습하고 더운 여름 몸 건강히 계시길 바랍니다. 강의를 듣는 도중 궁금한 부분이 생겼습니다. DIP와 IoC가 다르다고 말씀하신 부분이, DIP가 의존성 주입을 역전함으로써 제어의 흐름을 바꾸지만 IoC가 의존성을 주입해주는 것은 아니어서 그렇다고 이해되는데 제대로 이해한 게 맞을까요? ㅜㅜ 또, Open-Closed 법칙을 설명해주시는 1:32초 부분에 수정에는 열려있어야 한다는 말씀을 하셨는데 수정 시 많은 메소드 혹은 클래스를 수정해야 하는 경우가 수정에 열려있는 것이 아닌지요 ㅜㅜ... 제가 잘 모르다보니 헷갈려서 질문드립니다!

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
nsonestudy2 댓글 2 좋아요 1 조회수 860

예외 처리 리팩토링 질문

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요. 강의 들으며 재밌고 공부하고 있습니다. 감사합니다. 예외 처리를 util패지키에 모아서 처리하는 것은 이해했습니다. 약간 궁금증 생겨서 문의 남겨봅니다! BookService의 코드 일부분 입니다. 여기서 보면 UserRepository 와 BookRepository 의 findByName 에서 모두 fail()로 예외 처리를 하는데요, 이걸 그냥 리포지토리 계층의 메서드 자체에서 예외를 처리해주면 더 깔끔하지 않을까 하는 궁금증이 생겼습니다. 제가 지금까지 공부하면서는 리포지토리 계층에서 디폴트 메서드를 통해서 처리하는 코드도 봤고, 서비스 계층에서 처리하는 코드도 봐서 어떤 방식을 선호하시는지, 권장 하시는지 궁금합니다! 좋은 강의 감사합니다!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
장대영 댓글 1 좋아요 4 조회수 943

[h2 DB] test.mv.db 파일 생성 에러 해결법 공유

미해결

스프링 DB 1편 - 데이터 접근 핵심 원리

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] [H2 데이터베이스 설정] 강의의 2분30초~3분00초 강사님 매뉴얼대로 따라하면 h2 DB 기본 생성에 에러가 발생하여 고생했습니다.. 콘솔에서 /~test로 먼저 연결해도 test.mv .db가 만들어지지 않았습니다. 버전이 2.1.xxx대로 가면서 콘솔에선 db 자동 생성이 안 되는 이슈이므로, 수동 생성을 진행해야 했습니다. 제가 2시간 걸려서 해결한 과정 정리해봤습니다. 링크 올립니다. https://blog.naver.com/jtcjtc/223117129981

  • spring
제이티시 댓글 3 좋아요 8 조회수 4132

인텔리제이 같이 설치하는 과정부터 좀 알려주시면 안될까요 너무 답답하고 짜증나죽겠습니다

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 몰라요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 처음하는 초심자 입장에서 너무 어렵습니다 일단 설치부터 jdk까지는 꾸역꾸역 구글링해서 깔고했는데 인텔리제이를 설치하고 설치하는 과정에서 어떤 체크사항을 체크해야하고 어디에 저장하고 하는지 하나도 모르고 그냥 "인텔리제이 설치하시오", "자바 jdk 설치하시오" 미리 준비물로 딸랑 해놓고 지금 혼자 깔고 인텔리제이 실행해서 강사님이랑 똑같이 하려는데 처음 run하는것부터 run이 보이지도 않고 막히네요 무료강의도 아니고 돈내고 듣는데 너무 짜증나고 답답합니다 이 질문도 한참있다가 질문답변이 달릴테고... 극초심자를위한 설치부터 하나하나 같이 알려주고 하는방법좀 설명해주셨으면 좋겠습니다 시간아깝고 짜증납니다 정말

  • java
  • spring
  • mvc
  • spring-boot
임규영 댓글 0 좋아요 2 조회수 1026

낙관 락 vs 비관 락 실무에서 구체적인 예시를 들어주실 수 있을까요?

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

낙관 락과 비관 락을 정확히 언제 사용하는지 궁금한데요, 충돌이 잦을 때는 비관 락을 사용한다고 이해하기엔 막연한 느낌이 있어서요, 혹시 실무에서 구체적인 예시를 들어주실 수 있을까요?? 비관적 락이 구현이 훨씬 간단할 것 같은데, 실제로 실무에서 비관적 락이 아닌 낙관적 락을 직접 구현해서 사용할 일이 있는지도 궁금합니다. 충돌이 빈번하게 일어난다면 비관적 락이 더 적합할 수 있다고 하셨는데 이유가 뭔가요? 어떤 부분에서 성능상 이점이 있는지 궁금합니다. 자세하게 설명해주시면 정말 감사할 것 같습니다. 감사합니다!!

  • java
  • spring
  • 동시성
니나니노 댓글 2 좋아요 0 조회수 5611

messages.properties 렌더링 오류 발생

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

hello=안녕 hello.name=안녕 {0} label.item=상품 label.item.id=상품 ID label.item.itemName=상품명 label.item.price=가격 label.item.quantity=수량 page.items=상품 목록 page.item=상품 상세 page.addItem=상품 등록 page.updateItem=상품 수정 button.save=저장 button.cancel=취소 위에는 messages.properties의 코드입니다 그리고 밑에는 application.peoperties 코드입니다 spring.messages.basename=messages,config.i18n.messages 서버를 띄우고 실행한 결과 밑에와 같이 렌더링이 됩니다 한글버전만 문제가 있는데 어떤 것 때문에 그런걸까요?? messages.properties_en는 정상수행됩니다

  • spring
  • mvc
qwefghnm1212 댓글 2 좋아요 1 조회수 727

마이바티스와 테스트 코드

해결됨

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님 강의 너무 잘 듣고있습니다. 회사에서 Mybatis로 개발 중인데 테스트 코드 작성에 어려움이 있어 질문 드립니다. JPA의 경우 CRUD가 기본적으로 구현되어 있지만, Mybatis의 경우 xml(또는 인터페이스)에 정의된 메서드를 사용하기 때문에 테스트 코드 작성이 어렵더군요.. 만약 Money 테이블이 있고, 해당 Repository에 Select 코드가 없는 경우 어떻게 검증을 해야 좋을까요? 테스트를 위해 xml이나 인터페이스에 새로운 코드를 작성하는 것은 좋은 방법이 아닌 것 같고, Jdbc Template를 이용해봤는데 이 경우에는 데이터가 롤백되지 않는 등의 문제가 있었습니다.( 아마 잘못 사용해서 그런 것 같기도 합니다..) Repository 부분을 Mock으로 Stub하여 테스트를 진행하는 것도 생각해 보았습니다. 이 경우에는 Repository 쿼리를 수정할 때마다 Service에 정의된 Stub도 그에 맞게 계속 수정해야 하는 문제가 있어서 이 방법도 적합하지 않다고 생각이 들었습니다..(이 케이스도 A,B 각각 모듈 단위의 테스트는 성공하나 결합하여 테스트할 때 실패하는 경우라고 볼 수 있을까요?) 회사가 테스트 코드를 작성하는 문화는 아니어서 물어볼 사람이 없어 질문 남깁니다.. 좋은 강의 감사하합니다. 앞으로도 좋은 강의 기대하겠습니다!!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
endeavor 댓글 1 좋아요 4 조회수 1097

synchronized 와 @Transactional

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요 재고관리시스템 강의를 복습하며 내용을 정리하는 중 의문이 생겨 질문을 드립니다. 가장 처음에 application code 레벨에서만 동시성을 해결하기 위해 syncrhonized 를 사용할 경우 해당 메서드에는 @Transactional 을 붙여서는 안된다고 설명해 주셨습니다. 실제로 이를 붙일 경우, 동시에 decrease 메서드가 호출되고 해당 로직 내부로 들어가는 것이 가능함을 확인하였습니다. 그런데 여기서 제가 의문이 들었던 것이 있습니다. @Transacitonal 을 사용할 경우 Spring AOP 에 의해 매 번 다른 proxy 인스턴스를 통해 target object 로의 호출을 하게 됩니다. proxy 객체에 대한 lock 은 서로 다른 프록시들 사이에 공유되지 않는다고 하더라도, 내부적으로 호출되는 target 객체에 대한 decrease 메서드는 결국 동일한 객체에 대한 호출을 하기 때문에, 공유되는 lock 에 대한 경쟁이 일어나는 것이 아닌가 생각이 들었습니다. 최종적으로는 target 객체에 대한 synchronized 메서드를 호출하는 것이라면, 단 하나의 스레드만 임계 영역에 들어갈 수 있어야 할 것 같은데, 그렇지 않음을 확인하였습니다. 왜 이런 일이 일어나는 것인지 이해가 잘 되지 않습니다 ㅠㅠ 이와 관련해서 어떤 키워드로 공부해보면 좋을지 추천 가능할까요..?

  • java
  • spring
  • 동시성
  • synchronized
  • @transactional
스빈스빈별 댓글 2 좋아요 0 조회수 1320

Service에 @Transactional(readOnly=true)는 필수적으로 넣어줘야 하는 것인지 궁금합니다.

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 클래스 영역에서 트랜잭션을 걸어두는 것이 필수적인 내용인지 궁금합니다! 실무에서도 마찬가지로 동일하게 클래스 영역에 사용해서 적용하게 되는 것일까요? 저는 작업할 때 수정이 필요한 메서드에만 @Transactional을 선언해줬었는데 이렇게 처리했던 부분들이 잘못된 부분이었던 것인지 고민이 되어 질문드리게 되었습니다. 정리하자면 클래스단에서 무조건 '@Transactional(readOnly=true)' 를 작성해주는 것을 권장한다면 그렇게 해야하는 이유가 무엇인지 궁금하고, 무조건 걸었을 때 매번 '@Transactional(readOnly=true)' 값을 작성해줘야 하는데 매번 작성하지 않을 수 있는 방법은 없을지 궁금합니다. 감사합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
chaerin920 댓글 1 좋아요 0 조회수 725

분산 락 질문드립니다.

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요 강의 잘 들었습니다! 완강하고 나서 몇 가지 궁금증이 생겨 질문드립니다. 분산 락을 "분산" 락이라고 부르는 이유가 뭔가요? Redis가 인메모리 DB이다보니 서버마다 Redis를 가지고 있어 여러 서버에서 모두 가지고 있어 분산 락이라고 부르는 걸까요? Redis가 여러 서버에 분산되어 있다보니 서로 싱크를 맞추기가 쉽지 않을 것 같은데 이런 부분은 어떻게 해결할 수 있나요? 서로 싱크가 맞지 않는다면 synchronized 키워드의 문제점처럼 여러 프로세스에서 접근할 수 있어 정합성이 보장되지 않을 것 같아서요! Redis는 인메모리 DB라 휘발성인데 서버가 다운될 경우 복구는 어떤식으로 이뤄지는지 궁금합니다!

  • java
  • spring
  • 동시성
니나니노 댓글 1 좋아요 0 조회수 571

리눅스 mysql 설치 오류 뜨시는 분들

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

저도 설치할 때 아래와 같은 문제가 발생 했었는데요 Error: Problem: conflicting requests - nothing provides libcrypto.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libssl.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libcrypto.so .10( libcrypto.so .10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 ...... 아마존 리눅스 2023을 쓸 때는 el9 버전 레포지토리를 사용해주어야 한다고 합니다! [ wget dev.mysql.com/get/mysql80-commuity-release-e17-5.noarch.rpm rpm -ivh mysql-community-release-e17.5.noarch.rpm ] 이렇게 작성하던 부분을 [ sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm sudo dnf install mysql-community-server ] 이렇게 작성하시면 잘 설치 돼요! 출처: https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
한지면 댓글 3 좋아요 8 조회수 5504

스프링 컨테이너 관련 질문 드립니다.

미해결

스프링 핵심 원리 - 기본편

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 커뮤니티 내 질문을 읽다가 의문이 들어서 질문드립니다. ApplicationContext를 굳이 만들지 않아도 main 메서드 내 SpringApplication.run() 메서드 내부에서 컨테이너를 생성한다고 답변 주신걸 보았습니다. 하지만 ApplicationContext를 만들 때 AppConfig.class로 커스텀한 config파일을 지정하는 걸로 보이는데, SpringApplication.run() 메서드는 따로 클래스를 지정 하지 않아도 @Configuration 애노테이션이 있는 모든 클래스를 스캔하는건가요?

  • spring
  • 객체지향
최소미 댓글 1 좋아요 0 조회수 431

비밀번호가 틀렸을 때 사라지지 않게 하려면 어떻게 수정해야하나요?

미해결

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] password가 input에 들어가 있어서 사라진다고 하셨는데 틀렸을 때 사라지지 않고 남아있게 하려면 어떻게 해야하나요??

  • spring
  • mvc
  • html
chr_apple 댓글 1 좋아요 0 조회수 526

컨트롤러 반환 타입 질문입니다.

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요, 강사님. 컨트롤러 코드 관련 질문입니다. 작성한 코드는 컨트롤러의 메소드 반환 타입을 void로 해서 아무것도 반환하지 않는데요, 만약 postmapping 관련 메소드 작성 시, 작성한 게시글의 id값을 반환해주는 코드와 큰 차이가 있을까요? 그리고 찾아보던 중, ResponseEntity를 사용해서 반환해주는 메소드를 보았는데, 메소드의 반환 타입에 따라 기능에 큰 차이가 있는지, 아니면 API 명세의 차이만 있고 기능에는 크게 차이가 없는지 궁금합니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jd 댓글 1 좋아요 1 조회수 845

memberServiceTest 회원가입 NullPointerException 오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의를 한 번 완주한 후 개별적으로 예제와 다르게 다시 공부하고 있는데 오류가 나서요..ㅜㅜ https://drive.google.com/file/d/1Fe9hZbwSCKFYyQtmj_TU2Sl9VwqeXCsO/view?usp=sharing 무엇 때문에 오류가 났는지 알 수 있을까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
새싹 댓글 2 좋아요 0 조회수 608

섹션 7에서 완벽하게 제어하기 파트에서 질문이 있습니다!

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다! 이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요? 아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
khmin3011 댓글 2 좋아요 1 조회수 439

datasource

해결됨

스프링 DB 1편 - 데이터 접근 핵심 원리

datasource는 커넥션을 획득하는 방법을 추상화한 인터페이스라고 학습했습니다. 근데 이번 장에서 Datasource TransactionManager는 JDBC 트랜잭션 관리라고 하셨는데 datasource라는 것은 JDBC에 국한되는 것이 아니라 JPA, hibernate에서도 쓰일 수 있는 것 아닌가요? 전에는 DB마다 커넥션을 얻는 방법, sql전달 방법등이 달라서 이걸 편하게 해주기 위해 나온 것이 JDBC이고 DriverManager를 통해서 url,id,pw를 넘겨서 해당 dbDriver를 얻어서 커넥션을 얻었는데 이제는 DriverManager를 사용하지 않고 Datasource만을 사용해서 DB에 접근하는데 그렇다면 Datasource가 DriverManager가 하는 역할까지 수행하기때문에 가능한 것인가요?

  • spring
Lego 댓글 1 좋아요 1 조회수 364

logger는 언제 사용하나요

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] logger는 정보를 남길 떄 사용한다면 어느 정보를 남겨야 하는지 어떻게 파악이 가능한가요 좀 더 구체적으로 설명 가능한가요

  • spring
  • mvc
일선 댓글 1 좋아요 0 조회수 545

세션을 사용할 수 있다면, URL를 설계할때, /member/{id} 와 같이 PathVariable를 가져갈 필요가 있을까요?

해결됨

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

'모든개발자를 위한 HTTP웹 기본지식' 에서 배운 바로는 URL를 설계할때, 회원조회를 위한 url 이라 치면, "/member/{id}" 같이 PathVariable인 회원id 값을 url에 명시해 두었습니다. 그런데 이번에 쿠키와 세션을 학습하면서 느낀건데, 애초에 그냥 "/member" 로만 해도, 로그인한 세션값으로 회원 정보를 가져와 해당 회원에 맞는 화면을 응답해도 되지 않을까요? 비슷한 또 다른 예시인데, userA가 자신이 주문한 item들을 전체 조회하고자 할때 요청할 url를 "/orders/{memberId}" 로 하여 memberId를 통해 회원객체를 조회하고, 조회한 객체의 주문목록을 화면으로 뿌려주는것보다는, "/orders" 로만 url을 잡고 세션값을 통해 현재 요청을 날린 회원 객체를 받아 주문목록을 화면에 뿌려주는것이 조금 더 url을 간결하게 만들 수 있지 않을까.. 라는 생각이 들었습니다. 결론: url을 "/member/{id}" 으로 잡았던 이유가 아직 세션을 학습하기 이전이라 그런것인가요, 아니면 다른 이점이 있기 때문일까요?

  • spring
  • mvc
  • http
  • url
  • uri
  • 쿠키
  • 세션
Shin Berg 댓글 1 좋아요 0 조회수 675

인기 태그

인프런 TOP Writers

주간 인기글