inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

SpringBootApplcation에 관한 질문입니다

미해결

스프링 핵심 원리 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. SpringBootApplication에 @ComponentScan이 있다고 하셨는데 그럼 AutoAppConfig의 역할을 포함하는 건가요? AutoAppConfig는 필터를 위한 예제를 보여주기 위해 만든 건지 궁금합니다. AutoAppConfig에 Configuration이 있는데 Configuration은 @Bean으로 등록된 메서드를 싱글톤으로 보장하기 위해 쓰는 것으로 알고 있습니다. 그런데 AutoAppConfig는 어차피 ComponentScan으로 싱글톤이 보장될텐데 @Configuration을 사용하는 이유는 관례상 설정 클래스라는 것을 보여주기 위함인가요?

  • spring
  • 객체지향
박준영 댓글 1 좋아요 0 조회수 199

6분쯤 MemberRepository 관련 질문

미해결

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 6분쯤 OrderServiceImpl 클래스 작성할 때 memberId로 Member를 찾기 위해서 MemberRepository 객체를 생성해서 findById()를 호출하셨는데 MemberService 객체를 만들어서 findMember()를 호출하는 것과 같은 것은 알지만 객체 지향의 관점이나 SOLID 원칙 이런 것들을 생각했을 때 저 부분에서 Service와 Repository 어떤 것을 호출하는 것이 더 좋은 코드인가요?

  • spring
  • 객체지향
김희범 댓글 1 좋아요 0 조회수 149

MemberRepository { 질문이요

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 해당 부분에서 오류 발생되는데 왜 그런 걸까요 public class MemoryMemberRepository implements MemberRepository { 이부분에 빨간줄이 있습니다. package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; /** * 동시성 문제가 고려되어 있지 않음, 실무에서는 ConcurrentHashMap, AtomicLong 사용 고려 */ public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findByID(long id) { return Optional.ofNullable(store.get(id)); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } public void clearStore() { store.clear(); } }

  • java
  • spring
  • mvc
  • spring-boot
장진웅 댓글 2 좋아요 0 조회수 353

톰캣처리

미해결

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

정적파일은 웹서버에서 HTTP요청,응답 처리 동적파일,HTTP API등은 서블릿을 지원하는 WAS에서 HTTP요청과 응답을 처리 스프링의 톰캣은 1번과2번을 모두 처리해주는건가요??

  • spring
  • mvc
댓글 1 좋아요 0 조회수 155

섹션3 질문 있습니다

미해결

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

안녕하세요! 섹션3 마지막 부분쯤 나온 @Component 어노테이션에 대해 질문이 있습니다! 이 어노테이션은 다음과 같은 경우에 사용된다고 하셨는데요! 컨트롤러, 서지스, 리포지토리가 모두 아니고, 개발자가 직접 작성한 클래스를 스프링 빈으로 등록할 때 사용된다. 제가 궁금한 것은 Service 나 리포지토리 모두 우리가 직접 작성한 클래스 아닌가요?? 그러면 컴포넌트 어노테이션 아닌가요?? 답변해주시면 감사하겠습니다

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

beanDefinition 생성 과정 질문입니다

해결됨

스프링 핵심 원리 - 기본편

컨테이너에 있는 Reader를 통해서 설정 정보(appConfig.class)를 읽고 @Bean이라고 적혀 있는 메서드들을 읽은 후 BeanDefiniton이라는 메타데이터를 생성해서 컨테이너에 있는 빈 저장소에 넣는다라고 이해 했는데 맞을까요??

  • spring
  • 객체지향
박준영 댓글 1 좋아요 0 조회수 272

join과 join feth 차이점

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

public List<Order> findSearchOrders(OrderSearch orderSearch){ return em.createQuery("select o from Order o join o.member m" + " where o.orderStatus = :status" + " and m.name like :name", Order.class) .setParameter("status", orderSearch.getOrderStatus() ) .setParameter("name", orderSearch.getMemberName()) .setMaxResults(1000) .getResultList(); } public List<OrderQueryDto> findQueryOrder() { List<OrderQueryDto> result = findAllOrder(); for (OrderQueryDto order : result) { List<OrderItemQueryDto> orderItems = findOrderItem(order.getId()); order.setOrderItems(orderItems); } return result; } public List<OrderItemQueryDto> findOrderItem(Long orderId) { String query = "select new jpabook.jpashop.repository.order.query." + " OrderItemQueryDto(oi.order.id, oi.orderPrice, oi.count )" + " from OrderItem oi " + " join oi.item i" + " where oi.order.id = :orderId"; return em.createQuery(query,OrderItemQueryDto.class) .setParameter("orderId", orderId) .getResultList(); } public List<OrderQueryDto> findAllOrder(){ String query = "select new jpabook.jpashop.repository.order.query." + " OrderQueryDto(o.id, m.name, d.address, o.orderStatus, o.orderDate) " + " from Order o " + " join o.member m" + " join o.delivery d"; return em.createQuery(query, OrderQueryDto.class).getResultList(); } 첫번째 코드 블럭은 order를 select 할때 member를 join 하면 member를 프록시 객체로 가져오는걸로 알고 있습니다. join fetch 를 하게 되면 바로 객체로 가지고 오는걸로 알고 있습니다. 하지만, 두번째 코드 블럭은 그냥 join을 했는데, 왜 프록시 객체에서 객체로 전환? 프록시 객체가 객체를 가르키는 행위를 하지않고도 dto에 바로 삽입이 가능한가요? ex) order.getName() , member.getName()

  • java
  • spring
  • spring-boot
  • jpa
김동훈 댓글 1 좋아요 0 조회수 231

26강 오류입니다 !

미해결

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

Execution failed for task ':LibraryAppApplication.main()'. > Process 'command 'C:/Program Files/Java/jdk-11/bin/java.exe'' finished with non-zero exit value 1 이것은 어떤 에러일까요 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
쿵야 댓글 2 좋아요 0 조회수 131

비즈니스로직 처리 위치

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 지금까지 컨트롤러단에서 로직을 다 작성하셨는데요 원래 비즈니스로직 같은 경우는 서비스 단에서 처리를 해야 되지 않나 생각이 들어 질문합니다. 간단한 예시여서 컨트롤러 단에서 로직을 처리하고 dto를 이너클래스로 만드신 건가요? 비즈니스로직 처리 위치를 컨트롤러에서 해야될지 서비스단에서 해야될지 기준이 잘안서서 질문드립니다.~~

  • java
  • spring
  • spring-boot
  • jpa
gogo 댓글 1 좋아요 0 조회수 219

MemberServiceIntegrationTest 에서 Service대신 Repository로 테스트하는 이유가 궁금해요

미해결

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

6강 스프링 DB 접근 기술.pdf 내용을 보면 MemberServiceIntegrationTest 에서는 MemberService로 join하고 Id를 찾는 내용은 Repository 를 통해 수행하는데요. service에 대한 테스트 코드기때문에 이전에 작성한 MemberServiceTest에서처럼 Service로 일관되게 사용하는게 맞지않나요? MemberServiceIntegrationTest .java //When Long saveId = memberService. join (member); //Then Member findMember = memberRepository. findById (saveId). get (); assertEquals (member. getName (), findMember. getName ()); MemberServiceTest.java Long saveId = memberService.join(member); Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName());

  • java
  • spring
  • mvc
  • spring-boot
인영 댓글 1 좋아요 0 조회수 156

Gradle에서 (Gradle -> intelliji IDEA 수정후 실행시 자동종료되는문제)

미해결

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

plugins { id 'java' id 'war' id 'org.springframework.boot' version '3.3.2' id 'io.spring.dependency-management' version '1.1.6' } group = 'hello' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } 초기에 Setting에서 Gradle 일때는 잘 실행되었는데, intelliji IDEA로 수정을 한 이후에 실행을 하면 실행후 종료버튼을 누르지 않았는데 자동으로 종료되는 문제가 있습니다..

  • spring
  • mvc
yy3082 댓글 4 좋아요 0 조회수 432

'회원 이름 필수 입력' 기능

해결됨

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

안녕하세요. 웹계층 회원등록 부분 강의 따라서 코딩하고, HTML 파일도 복붙했는데 홈페이지에 이름을 입력 안 해도 '회원 이름을 필수입니다' 메세지가 뜨는 반응이 없이 redirect됩니다. h2에는 이름이 비어 있는 상태로 데이터가 들어와 있습니다. @NotEmpty가 왜 작동하지 않는지 질문드립니다. https://drive.google.com/file/d/1jvu4wiWz3GwoZ3YazNDJWsFTOxgSqt-M/view?usp=sharing

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
sichelmond 댓글 2 좋아요 0 조회수 158

readonly 트랜잭션에 update를 수행하는 분리된 트랜잭션 메서드를 호출 할 때 질문

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요 영한님 이번에 트랜잭션 적용하면서 @Transactional(readOnly = true) 가 붙은 조회 메서드 내부에 @Transactional(propagation = Propagation.REQUIRES_NEW) 가 붙은 외부 클래스의 메서드가 사용 될 때 물리 트랜잭션이 분리되었고 각각 다른 트랜잭션임에도 변경감지가 적용안되는 부분이 궁금했습니다. 아래는 궁금한 부분에 대한 테스트를 진행한 코드입니다. @Service @RequiredArgsConstructor public class TeamService { private final TeamRepository teamRepository; private final TeamExternalService externalService; @Transactional(readOnly = true) public Team findTeamWithNameChangeExternal(Team team, String name) { Team findTeam = teamRepository.findByName(team.getName()); externalService.changeName(findTeam, name); return findTeam; } } @Service @RequiredArgsConstructor public class TeamExternalService { @Transactional(propagation = Propagation.REQUIRES_NEW) public void changeName(Team findTeam, String name) { findTeam.setName(name); } } @Test void findTeamWithNameChangeExternal() { Team team = new Team("team"); Team savedTeam = teamRepository.save(team); teamService.findTeamWithNameChangeExternal(savedTeam, "changeName"); Team findTeam = teamRepository.findByName("changeName"); assertThat(findTeam.getName()).isEqualTo("changeName"); } 같은 클래스에서 내부 호출 할 경우에는 REQUIRES_NEW 를 적용하더라도 같은 프록시 객체로 해당 메서드가 호출된 상위 트랜잭션의 옵션을 그대로 따라 가기 때문에 변경 감지가 적용안된다고 생각했어요 하지만 이와 다른 외부 클래스의 분리된 트랜잭션에서는 변경 감지가 일어나는 것이 정상이라고 생각했는데 왜 변경 감지가 일어나지 않는 것일 까요 ..? 아래는 궁금해서 디버그를 찍어봤어요 보니가 두 트랜잭션의 번호가 Transaction@13592로 같고 REQUIRES_NEW 가 적용된 트랜잭션의 경우에는 oldTrasactionInfo 이라는 정보를 갖고 해당 메서드를 실행하는  @Transactional(readOnly = true) 옵션이 적혀있더라구요 ?? 그렇다면 내부 호출이 아닌 외부 호출이라도 readOnly = true 로 조회 성능을 챙기면서 변경 감지를 사용할 순 없는 것인가요 ??

  • spring
  • jpa
  • 트랜잭션
  • transactional
HH 댓글 2 좋아요 0 조회수 209

lombok과 autowired의 관계

해결됨

스프링 핵심 원리 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] lombok은 생성자나 set, get 등 코드를 간결하게 해주는 라이브러리라는 걸 확인했습니다. 그리고 lombok으로 @---ArgsConstructor 와 같이 애노테이션을 지정해주어서 생성자를 생략했을 때, lombok 라이브러리 안에 생성자가 존재 -> Spring Container에서 생성자를 찾을 때 lombok 에서 정의된 생성자 참조 -> 생성자가 하나이므로 Autowired가 호출되고 이어서 의존관계 주입 의 과정을 거치는 게 맞나요?

  • spring
  • 객체지향
goranikin 댓글 1 좋아요 0 조회수 230

restSecurityFilterChian에서 addFilterBefore와 authenticationManger 질문

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

httpSecurity.formLogin()을 설정해주지 않으면, securityFilterChain에 UsernamePasswordAuthenticationFilter가 없지 않나요? restAuthenticationFilter를 UsernamePasswordAuthenticationFilter 앞에 추가할 수 있나요? restAuthenticationFilter에서 authenticationManager를 사용할 수 있도록 설정해주었는데, httpSecurity에 또 세팅해줘야 하는 이유가 있는걸까요?

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
정민교 댓글 1 좋아요 0 조회수 223

질문드립니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. validation/v3/editForm.html 여기에서 form action="item.html" 이게 잘 이해가안됩니다 validation/v3/editForm.html 여기에서 검증한걸 @PostMapping("/{itemId}/edit") 여기로 보내야하는거 아닌가요? 근데 이렇게하면 어떻게 가죠?

  • spring
  • mvc
정중한 개구리 댓글 2 좋아요 0 조회수 162

@Transactional을 사용한 테스트에 대해서 질문드립니다

해결됨

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

안녕하세요 영한님 강의 정말 잘 듣고 있습니다. ㅎㅎ @Transactional에 대해서 궁금한 점이 생겨서 질문드립니다. @Test @Transactional public void 상품주문() throws Exception { //given Member member = createMember(); Book book = createBook("시골 JPA", 10000, 10); int orderCount = 2; //when Long orderId = orderService.order(member.getId(), book.getId(), orderCount); //then Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER, getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다.", 1, getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다.", 10000 * orderCount, getOrder.getTotalPrice()); assertEquals("주문 수량만큼 재고가 줄어야 한다.", 8, book.getStockQuantity()); } 해당 코드는 강의에서 작성한 테스트 코드 입니다. 지만 저는 지금까지 @Transactional을 테스트 코드에 작성하지 않는 것이 좋다고 알고 있었습니다. 그 이유는 @Transactional을 깜빡하고 작성하지 않는 문제를 테스트 코드에서 잡아 낼 수 있고, 테스트 트랜잭션의 롤백 정책으로 인해 실제 로직과 다르게 작동하기 때문입니다. 아래는 제가 @Transactional을 제거하고 코드를 작성해 보았습니다. @Test public void 상품주문() throws Exception { //given Member member = createMember(); Book book = createBook("시골 JPA", 10000, 10); int orderCount = 2; //when Long orderId = orderService.order(member.getId(), book.getId(), orderCount); //then Order getOrder = orderRepository.findOne(orderId); assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER, getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다.", 1, getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다.", 10000 * orderCount, getOrder.getTotalPrice()); //Transactional이 없기 때문에 객체를 다시 불러와서 조회 Item findBook = itemRepository.findOne(book.getId()); assertEquals("주문 수량만큼 재고가 줄어야 한다.", 8, findBook.getStockQuantity()); } private Book createBook(String name, int price, int stockQuantity) { Book book = new Book(); book.setName(name); book.setPrice(price); book.setStockQuantity(stockQuantity); itemService.saveItem(book); // service에서 저장 return book; } private Member createMember() { Member member = new Member(); member.setName("회원1"); member.setAddress(new Address("서울", "강가", "123-123")); memberService.join(member); // service에서 저장 return member; } @Repository public class OrderRepository { private final EntityManager em; public OrderRepository(EntityManager em) { this.em = em; } // fetch join으로 LazyLoding 문제 해결 public Order findOne(Long id) { return em.createQuery( "select o from Order o join fetch o.orderItems where o.id = :id", Order.class ) .setParameter("id", id) .getSingleResult(); } 위와 같이 코드를 수정해서 @Transactional이 없어도 테스트를 통과하도록 변경하였습니다. 하지만 아래의 코드는 모든 객체를 테스트 작성자가 신경써야 하고 JPA가 관리하는 여러 가지 기능들을 사용하지 못하게 됩니다. 또한 rollback 기능을 사용하지 못해 테스트 작성자가 일일이 DB에 저장된 값을 지워줘야 합니다. 영한님은 이와 같은 상황에서는 어떤 선택이 좋다고 생각하는지 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
이찬원 댓글 2 좋아요 0 조회수 316

배포 환경에서의 세션, 쿠키

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 아니오 [질문 내용] 여기에 질문 내용을 남겨주세요. http 프로토콜의 로컬 환경에서는 별도의 설정 없이 클라이언트에서 jsessionid를 헤더에 넣어서 서버에 전송하는 반면, 프론트엔드 서버와 분리된 배포 환경에서는 cors 설정 뿐만 아니라 https 프로토콜로 변경, yml 파일에 server: servlet: session: cookie: same-site: none secure: true 와 같은 별도의 설정을 완료함으로써 쿠키가 서버로 전달되었습니다. (same-site가 none이면 secure은 꼭 true여야 해서요) 비교적 쿠키-세션 방식이 간단한 것 같지만, 이러한 별도의 설정 그리고 stateful한 쿠키-세션 방식 때문에 배포 환경에서 jwt를 쓰는 것이 좋은지, 아니면 쿠키-세션 방식을 쓰는 것이 좋을 지 잘 모르겠습니다.

  • spring
  • mvc
딸기초콜릿 댓글 1 좋아요 0 조회수 202

스프링 프로젝트 초기 설정

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기서 Gradle JVM에서 Project SDK(openjdk-21)로 할까요? 아니면 다른 선택지인 21 (Oracle OPenJDK 21.0.2)로 해야 하나요? 감사합니다.

  • java
  • spring
  • mvc
  • spring-boot
moses11004 댓글 1 좋아요 0 조회수 532

질문있습니다

미해결

3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]

강의 중에 웹사업 1개에서 응용프로그램 사업100개 +안드로이드 사업100개라는 게 있습니다. 아쉽게도 저는 이게 영상을 보고 도 무슨 말인지 모르겠습니다. 이게 뭘 설명하시는 걸까요? ㅠㅠ

  • spring
  • 전자정부프레임워크
코딩의외로 댓글 1 좋아요 0 조회수 173

인기 태그

인프런 TOP Writers

주간 인기글