묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanner Util 패키지
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 코드를 작성했을 때는 영한님 강의에서처럼 저절로 import java.util.Scanner;가 생기지않고 사진과 같이 java.util.Scanner로 되더라고요. 혹시 따로 무슨 설정을 만져야 할까요??-감사합니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
sout문안에서 연산이 가능한가요?
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=====================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 문제 중 더 큰 숫자 찾기 문제에서 삼항연산자를 사용하는 과정에서 질문이 있습니다.아래처럼 sout문안에서 삼항연산자를 사용하여 a와 b중 더 큰 수를 big에 대입해서 바로 쓰면서 문자열과 연결하는 방법은 불가능한걸까요?;int a=10, b=20; int big=0; System.out.println("더 큰 숫자는 " + {big = (a>b) ? (big = a) : (big = b)} + "입니다.");
-
미해결스프링 시큐리티
error , exception 이 잘 안됩니다.
강사님 소스와 똑같이 했는데도 안되는데요 ....로그인 실패해도 에러 문구가 안뜹니다. 디버깅하면 Controller 값이 null 로 들어오는데 왜그런걸까요 ?? security 설정에 /login?* 설정도 해줬습니다. @Controllerpublic class LoginController { // 에러가 있을때만 선택적으로 받는다.@RequestMapping(value={"/login"})public String login(@RequestParam(value = "error", required = false) String error,@RequestParam(value = "exception", required = false) String exception, Model model){model.addAttribute("error",error);model.addAttribute("exception",exception);return "login";} @GetMapping("/logout")public String logout(HttpServletRequest request, HttpServletResponse response) { Authentication authentiation = SecurityContextHolder.getContext().getAuthentication(); if (authentiation != null) {new SecurityContextLogoutHandler().logout(request, response, authentiation);} return "redirect:/login"; }} package com.eazybytes.springsecsection3.security.handler; import java.io.IOException; import org.springframework.security.authentication.BadCredentialsException;import org.springframework.security.authentication.InsufficientAuthenticationException;import org.springframework.security.core.AuthenticationException;import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler;import org.springframework.stereotype.Component; import jakarta.servlet.ServletException;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse; // 인증 검증시 실패할때 인증 예외 발생@Componentpublic class CustomAuthenticationFailureHandle extends SimpleUrlAuthenticationFailureHandler { @Overridepublic void onAuthenticationFailure(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException exception) throws IOException, ServletException { String errorMessage = "Invalid Username or Password"; if(exception instanceof BadCredentialsException) {errorMessage = "Invalid Username or Password"; }else if(exception instanceof InsufficientAuthenticationException) {errorMessage = "Invalid Secret";} setDefaultFailureUrl("/login?error=true&exception=" + errorMessage); super.onAuthenticationFailure(request, response, exception); }}package com.eazybytes.springsecsection3.security.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.security.servlet.PathRequest;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.security.authentication.AuthenticationDetailsSource;import org.springframework.security.authentication.AuthenticationProvider;import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;import org.springframework.security.crypto.password.PasswordEncoder;import org.springframework.security.web.SecurityFilterChain;import org.springframework.security.web.authentication.AuthenticationFailureHandler;import org.springframework.security.web.authentication.AuthenticationSuccessHandler;import com.eazybytes.springsecsection3.security.provider.CustomAuthenticationProvider;import com.eazybytes.springsecsection3.security.service.CustomUserDetailsService;import jakarta.servlet.DispatcherType;@Configurationpublic class SecurityConfig { @Autowiredprivate AuthenticationSuccessHandler customerauthenticationSuccessHandler; // 인증 성공후 핸들링 처리 @Autowiredprivate AuthenticationFailureHandler authenticationFailureHandlerl; // 인증 실패후 핸들링 처리 @Autowiredprivate AuthenticationDetailsSource authenticationDetailsSource; // FormWebAuthenticationDetails 을 security 가 사용할 수 있도록 등록 @Autowiredprivate CustomUserDetailsService userDetailsService; // 개발자가 만든 userDetailsService 를 사용 protected void configure (AuthenticationManagerBuilder auth) throws Exception{ // CustomAuthenticationProvider 를 seruciry 가 사용할 수 있도록 등록auth.authenticationProvider(authenticationProvider());} @Beanpublic AuthenticationProvider authenticationProvider() {return new CustomAuthenticationProvider();} @BeanSecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Exception {http.csrf(AbstractHttpConfigurer::disable); http.authorizeHttpRequests((auth) ->auth.dispatcherTypeMatchers(DispatcherType.FORWARD).permitAll().requestMatchers("/","/users","/users/login/**, /login*").permitAll() /* /login* /login?error=true&exception 접근 허용 */.requestMatchers("/mypage").hasRole("USER").requestMatchers("/message").hasRole("MANAGER").requestMatchers("/config").hasRole("ADMIN").anyRequest().authenticated()); http.formLogin((form) ->form.loginPage("/login").loginProcessingUrl("/login_proc").defaultSuccessUrl("/").authenticationDetailsSource(authenticationDetailsSource).successHandler(customerauthenticationSuccessHandler ) // 인증이 성공한 후 핸들링 처리.failureHandler(authenticationFailureHandlerl) // 인증이 실패후 후 핸들링 처리.permitAll());return http.build();} @Beanpublic PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();} @Beanpublic WebSecurityCustomizer webSecurityCustomizer() {// 정적 리소스 spring security 대상에서 제외return (web) ->web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations());}} --------------------- <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head th:replace="layout/header::userHead"></head><body><div th:replace="layout/top::header"></div><div class="container text-center"><div class="login-form d-flex justify-content-center"><div class="col-sm-5" style="margin-top: 30px;"><div class="panel"><p>아이디와 비밀번호를 입력해주세요</p></div><div th:if="${param.error}" class="form-group"><span th:text="${exception}" class="alert alert-danger">잘못된 아이디나 암호입니다</span></div><form th:action="@{/login_proc}" class="form-signin" method="post"><input type="hidden" th:value="secret" name="secret_key" /><div class="form-group"><input type="text" class="form-control" name="username" placeholder="아이디" required="required" autofocus="autofocus"></div><div class="form-group"><input type="password" class="form-control" name="password" placeholder="비밀번호" required="required"></div><button type="submit" class="btn btn-lg btn-primary btn-block">로그인</button></form></div></div></div></body></html>
-
미해결스프링 시큐리티
thymeleaf tag 질문합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 로그인 하지 않을 때 isAnonymous() 는 동작하는데 로그인 하고 isAuthenticated() 는 동작 하지 않아서 top 메뉴에 로그아웃이 보이지 않네요 로그인 처리가 잘 안돼서 그런건가요 ??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPQL 컴파일 오류
JPQL 함수 강의에서 사용자 정의 함수 호출 부분 설명에서 컴파일 오류가 발생헀는데 강사님이랑 코드 작성 똑같이 했는데 함수값이 틀린거 같은데 저 빨간색 코드 부분을 뭐라고 수정을 해야 하나요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
기본 생성자
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Address 클래스에 기본 생성자를 만들지 않으면 insert 쿼리가 나오지 않던데 이 이유에 대한 내용이 어느 파트에서 나왔었는지 찾고싶어요!
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
JDK 21없어요 22로 다운로드 해서 사용해도 되나요?
프로젝트 설정 잡으려고 따라하고 있는데요!JDK 버전 21을 설치하도록 하셔서 보는데 윈도우 이구용,,21버전은 없어요 22만 있어서 이걸로 설치 다운로드 해서 사용해도 되죠?
-
미해결실전! Querydsl
토이 프로젝트를 진행하다 궁금한게 생겨서 질문드립니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Projection 을 사용해서 2~3번의 query 를 통해 필요한 데이터만 받아오는것과 fetch join 을 통해서 한번에 3개의 entity 전체를 받아 오는 방법중 어떤방식이 적절한지 고민되서 질문드립니다. fetch join 을 통해 쓰지않는 데이터를 받아오더라도 query가 여러번 나가는거보다 성능적으로 좋은가요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
yml 설정 내용 공유
혹시 귀찮으신분들 있으실까봐 공유드립니다.2칸(뎁스) 는 주의부탁드려요 spring: jpa: hibernate: ddl-auto: create show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/stock_example username: root password: 1234 # JPA 쿼리가 어떻게 나가는지 logging: level: org: hibernate: SQL: DEBUG type: descriptor: sql: BasicBinder: TRACE
-
미해결김영한의 실전 자바 - 기본편
접근 제어자 질문이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.package shopping; public class Item { private String name; private int age; private int score; public Item(String name, int age, int score) { this.name = name; this.age = age; this.score = score; } Item[] items = new Item[3]; public void show() { items[0] = {???}; } }접근제어자 문제와풀이 2번을 하다가 생각이 났습니다. 혹시 위 사진처럼 생성자를 대입하는거 말고 items[0]에 직접적으로 대입할 수 있는 방법은 없을까요?
-
미해결김영한의 실전 자바 - 기본편
접근제어자 문제풀이
안녕하세요! 그 Main 클래스 13, 14 번째 줄 보시면 items[itemCount] = item; itemCount++;이 코드의 의미가 item 객체를 items 배열에 선언을 해주고 , 문제에서 itemCount 는 장바구니에 쌓이는 개수? 인데 그럼 코드의 의미는 장바구니의 있는 아이템의 개수를 증가시켜주는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
수정시에 질문있습니다!!!! Editor??
[질문 내용]여기에 질문 내용을 남겨주세요. 저는 지금까지 수정을 시도할때 changeContentsAndtitle 이런 식으로 엔티티단에서 수정을 시도했는데 https://velog.io/@gundorit/Spring-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EB%90%9C-CRUD-Update 이 블로그에 따르면 그것은 별로 안좋고 Editor 를 선언해서 하면 좋다는 식으로 얘기하고 있습니다. 근데 이렇게 하면 영한님이 얘기하셨던 얘기 중에 그런 이야기가 있었습니다. DTO 는 엔티티를 참조해도 되는데 , 엔티티는 DTO 를 참조하지 말라고 하셨습니다.위 블로그에서는 Entity 에서 DTO 를 참조하지는 않는데 Entity 에서 UpdateEditor 를 선언하고 있는데 이런 부분에 문제는 없을까요?? 영한님도 이런 스타일로 하시나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
14분 50초 일대다 페치조인 질문
public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); System.out.println("zzzzzzzzzzzzzzzzzzzzzzzzzzzz"); //비영속 try{ Team teamA = new Team(); teamA.setName("teamA"); em.persist(teamA); Team teamB = new Team(); teamB.setName("teamB"); em.persist(teamB); Member member1 = new Member(); member1.setUsername("member1"); member1.setTeam(teamA); em.persist(member1); Member member2 = new Member(); member2.setUsername("member2"); member2.setTeam(teamA); em.persist(member2); Member member3 = new Member(); member3.setUsername("member3"); member3.setTeam(teamB); em.persist(member3); Member member4 = new Member(); member4.setUsername("member4"); member4.setTeam(null); em.persist(member4); em.flush(); em.clear(); String query ="select t From Team t join fetch t.members"; List<Team> result = em.createQuery(query, Team.class).getResultList(); for (Team team : result) { System.out.println("team= " + team.getName() + "|members=" + team.getMembers().size()); } tx.commit(); } catch (Exception e){ tx.rollback(); e.printStackTrace(); }finally { em.close(); } emf.close(); }이 코드를 실행시켰더니 14분 50초에 나오는 3줄이 나오는 것이 아닌team= teamA|members=2 team= teamB|members=1이렇게 나오는데 혹시 어떤 이유에서 그런것인지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
스택 영역과 힙 영역
스택 영역과 힙 영역에서 궁금한게 생겨 질문 남깁니다! 지금 Main 클래스에서 17번째줄에 있는 Data data2 를Data data2 = new Data(); 이렇게 작성하면 안되는건가요?
-
미해결김영한의 실전 자바 - 기본편
메서드 생성시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]메서드 생성시 형(반환) 부분에 클래스(인스턴스) 이름을 바로 넣어 쓰는 것 과 참조값(변수 )쪽에 클래스(인스턴스 참조값) 넣는 차이가 뭔가요? class A {}-=---===========생성후======메서드(** <-객체이름)예1) void *** (A **,int* * ,etc) {} //인스턴스에 클래스 넣어 사용예2) A **(int * *, etc){} //메서드명에 클래스 직접넣어 사용 ===========================
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB설정, 동작확인 강의에서 오류메세지 발
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]제가 오류를 못찾는건지 자료랑 비교했을 때 별 특이사항은 없는 것 같은데 자꾸 오류가 발생합니다.MEMBER_SEQ이 대체 뭔지 모르겠네요 ㅠㅠ 젤 하단 사진 테스트코드 실행 시 오류가 발생합니다. application.yml server: port: 8081 #MVCC=TRUE를 넣어주면 여러개를 한번에 접근했을 때 좀 더 빨리 처리가 된다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver #ddl-auto: create -> 자동으로 테이블을 만들어주는 모드 jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true System.out.~을 통해서 출력 format_sql: true #logger를 통해 출력 #로그 레벨 #hibernate SQL로그를 디버그 모드로 쓴다는 것 #-> Hibernate가 남기는 모든 로그가 다 디버그 모드로 해서 JPA나 Hibernate가 생성하는 SQL이 다 보인다. logging: level: org.hibernate.SQL: debug Memberpackage jpabook.jpashop; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Member { @Id @GeneratedValue private long id; private String username; }MemberRepositorypackage jpabook.jpashop; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; @Repository public class MemberRepository { @PersistenceContext private EntityManager em; public Long save(Member member){ em.persist(member); return member.getId(); } public Member find(Long id){ return em.find(Member.class,id); } }MemberRepositoryTestpackage jpabook.jpashop; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.*; import static org.junit.Assert.*; @RunWith(SpringRunner.class) //junit한테 SpringBoot로 테스트 한다고 알려주는 것 @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional public void testMember(){ //given Member member=new Member(); member.setUsername("memberA"); //when Long saveID= memberRepository.save(member); Member findMember=memberRepository.find(saveID); //then assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
편하게 들어도 된다고 하셨는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이 방식이 옛날 방식이라 편하게 들어도 된다고 하셨는데 코드를 안 적어도 되나요? 아니면 나중에 최신 방식으로 알려주시나요?
-
미해결스프링 시큐리티 OAuth2
키클락 권한 구성에 대해 조언 및 가이드 문의 입니다.
안녕하세요. 인증관련 개발 진행중입니다.저희는 사용자의 유형을 보면1차 분류로 시스템을 관리하는 관리자와 서비스를 이용하는 사용자로 구분되며사용자는 다시 같은 그룹의 사용자를 관리(생성,수정,삭제등)할 수 있는 관리사용자와 일반사용자 이렇게 나뉩니다.이런 환경일때 realm과 role, group을 어떻게 나누는게 효율적일지 궁금하여 문의 드립니다.1차 시스템 관리자와 서비스 이용 사용자는 서로 완전히 다른 유형이라 realm으로 나누는 게 좋을지 group 또는 Client나 role 등으로 나뉘어야 할지 고민입니다. 같은 서비스라서 같은 realm안에 두는게 맞을거 같기도 하고요.그리고 서비스 이용자 중 그룹과 Role를 둘다 나뉘어야 할거 같아서 이렇게 권한 분류가 가능한지 궁금합니다서비스 이용자중 그룹을 나누어 A, B, C 그룹이 있고 A그룹에 관리사용자 role, 일반사용자 roleB그룹에 관리사용자 role, 일반사용자 roleC그룹에 관리사용자 role, 일반사용자 role각 그룹별로 권한을 나누어 각그룹의 관리사용자는 각그룹만 관리가능하고 다른 그룹에는 관리권한이 없게 구성하고자 하는데 이런게 키클락 옵션만으로 가능할지 궁금합니다. 아 그리고 키클락의 REST API를 통해 UI를 이용하지 않고 사용자 관리 옵션 설정등을 하려고 하는데요. 최고 관리자인 Admin으로 API 토큰을 받아 처리하는 방법까지는 확인을 하였습니다.그런데 혹시 이 부분을 그룹 관리자에게 권한을 부여할 수 있을까요?예를 들면 A그룹에 관리사용자로 인증 토큰을 받아서 이 토큰으로 REST API를 이용해서 사용자 관리를 할 수 있는지가 궁금합니다. 질문이 정리가 안되서 의도를 이해하실지 모르겠네요. 암튼 읽어 주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
첫 gradle build부터 안됩니다 ㅜㅜ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.JDK 17로 맞추고, gradle 설정 들어가서 IntelliJ IDEA로 빌드하라고 설정을 해도 안됩니다. 처음 시작부터 막히니까 너무 막막하네요.캐쉬삭제하고 해봐도 똑같습니다. 무엇을 더 해봐야할지도 모르겠어요. 도와주세요
-
미해결자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
스레드 중지 – flag variable vs interrupt() - 2 강의에서 질문
안녕하세요.처음 강의 부분에스레드 1번 2번이 있는데 1번에 sleep을 주어서 컨텍스트 스위칭이 일어나 코어 캐시 메모리에서 false라는 값을 업데이트한다고 하셨는데 sleep을 주지 안 아도 시간 자원이 만료되면 자동으로 컨텍스트 스위칭이 일어나서 둘 이 번갈아 가며 실행 될 때캐시 메모리가 비워지지 않는 건가요? 이 부분 때문에 이해가 잘 안 갑니다. 아니면 멀티 코어 환경이라 스레드1 캐시 메모리는 그대로 true고 sleep으로 인해서 초기화가 된건가요?