묻고 답해요
121만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
스프링 사용 중 생기는 오류
안녕하세요spring tools4를 설치하였고 돌아가는지 확인하고 싶어 확인하는 도중에 오류가 걸려서 글 올립니다.java는 11로 사용하였고demo1는 local로 실행했을 때 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0오류가 떠서 java버전이 다르다는 것을 알기는 알아냈지만 인터넷으로 검색한 방법을 다 써봐도 해결이 안됐습니다.사용한 방법은 build path에서 jre system library로 해보았고 installed jres도 제대로 해두었습니다.compiler에도 11로 표시하였는데 혹시 다른 추가적이 방법이 있을까요
-
미해결
sprign webflux와 main 쓰레드 수
제가spring webflux를 공부하다가 궁금한게 있어서 이렇게 질문 남깁니다.webflux는 비동기 프로그래밍을 지원하기 때문에 적은 쓰레드 수로도 대량의 트래픽을 처리할 수 있다고 알고 있는데요. [실제로 사용자 요청을 받는 main 쓰레드는 한 개만 생성되는지 궁금합니다.]webflux는 블로그를 보다가 default값으로 core 당 한개의 쓰레드가 생성한다고 본거 같은데.. 이게 main 쓰레드는 한개 인데 sub 쓰레드(block 상태 풀린 쓰레드 요청 처리 용, event loop 처리 용 등)들이 core 갯수까지 추가적으로 생성된다는건지(main + sub == core수), 아니면 main 쓰레드가 실제로 코어 수만큼 생성이 된다는 의미인지 잘 모르겠네요..마지막으로, 후자가 맞다면 webflux는 소수의 main 쓰레드로 멀티 쓰레딩 지원과 비동기 프로그래밍을 지원한다고 보면되는걸까요?
-
해결됨
스프링 dependency 추가 어떻게 해요?
aspose엑셀 Dependency 추가가 잘안되네요..
-
미해결
스프링 인터셉터가 동작하지 않아 질문드립니다.
안녕하세요, 스프링 MVC 강의를 완강이후 프로젝트를 수행중인 학부생입니다.로그인 기능 구현과 관련하여 강의 예제 코드를 참고하며 구현하던 중이해할 수 없는 현상이 발생하여 질문 드립니다. 코드LoginInterceptor.javapackage Alchole_free.Cockpybara.interceptor; import Alchole_free.Cockpybara.constant.SessionLoginConst; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Slf4j //@Component public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession(); log.info("session = {}", session); if(session==null || session.getAttribute(SessionLoginConst.LOGIN_MEMBER)==null){ log.info("로그인되지 않은 사용자"); response.sendRedirect("/login"); return false; } log.info("정상 요청"); return true; } } WebConfig.javapackage Alchole_free.Cockpybara.config; import Alchole_free.Cockpybara.interceptor.LoginInterceptor; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; //@Slf4j @Configuration //@RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { // private final LoginInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .order(1) .addPathPatterns("/**") .excludePathPatterns("/", "/join", "/login", "/css/**", "/*.ico", "/error"); } } 문제위와 같이 코드를 구성하고 애플리케이션을 동작시켰는데, 인터셉터가 아예 로그에 남지않는(생성되지 않는 것으로 보이는) 현상이 발생하였습니다. 관련하여 구글링을 하다보니인터셉터 클래스를 빈으로 등록해주는 형태가 아니면 동작하지 않을 수 있다고 하여,빈으로 등록하고 WebConfig 클래스에서 생성자를 통해 주입받는 형태로 구현도 해보았는데여전히 같은 문제가 발생하더군요. 도대체 어느 부분에서 문제가 발생하는 것인지파악하기가 힘들어 고민끝에 질문드립니다. 혹시 몰라 아래 빌드, 설정 파일도 첨부합니다. 문제 실행 화면/hello 로 Controller @GetMapping 메서드를 구현해놓고 요청을 보냈으나 인터셉터 관련 로그가기록되지 않는 모습입니다.build.gradleplugins { id 'java' id 'org.springframework.boot' version '2.7.13' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'Alchole_free' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' //swagger 설정 implementation group:'io.springfox', name:'springfox-swagger2', version:'2.8.0' implementation group:'io.springfox', name:'springfox-swagger-ui', version:'2.8.0' } tasks.named('test') { useJUnitPlatform() } application.properties# ?????? ?? ?? spring.datasource.url=jdbc:mariadb://localhost:3306/cockpybara spring.datasource.username=root spring.datasource.password=cockpybara spring.datasource.driver-class-name=org.mariadb.jdbc.Driver # JPA ?? spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=create spring.jpa.properties.hibernate.format_sql=true //JPA ???? Hibernate? ????? ???? SQL? formating?? ?? spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect #show parameter binding logging.level.org.hibernate.type.descriptor.sql=DEBUG logging.level.org.hibernate.SQL=DEBUG
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
요청 매핑 (파라미터로 추가 매핑 코드 400 오류)
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 요청 매핑 강의 내용 중에 파라미터 추가 매핑 관련 질문 드립니다. @GetMapping(value = "/mapping-param", params = {"mode=debug","data=good"})public String mappingParam() {log.info("mappingParam");return "ok"; }postman url 창에 localhost:8080/mapping-param => 이 뒤에 어떻게 입력해야 제대로 출력이 되는 건 지 알고 싶습니다. 위에 코드 부분이 잘못되었는지 아니면 url 창에 적은 부분이 잘못 되어서 그런건지 400오류가 계속 나옵니다. 어떻게 하면 해결 되어질까요?
-
미해결스스로 구축하는 AWS 클라우드 인프라 - 기본편
php가 아닌 spring프로젝트를 배포할 때 질문입니다.
안녕하세요. 수업에서 배운 3Tier인프라를 똑같이 배포하려는데, 이 때 PHP가 아닌 spring Java 프로젝트로 배포하려고 합니다.이 때 각각의 서버에 프로젝트 파일을 어떻게 배포해야할지 모르겠어서 며칠간 구글링해봐도 답을 찾지 못해 글을 남깁니다.원래 spring 프로젝트를 배포할 때, 대부분 ec2 인스턴스에 Tomcat서버를 설치하고 프로젝트의 jar파일 또는 war파일을 Tomcat서버에 압축 해제해서 프로젝트를 배포하는 걸로 알고 있습니다.이렇게 배포하는 방법은 WAS인 Tomcat서버를 Web서버이면서 동시에 App서버로 활용하는 것인데, 이렇게 배포하는 방법이 WAS-DB의 2Tier 구조인가요?저는 2Tier구조가 아닌 강사님이 알려주신 Web - WAS -DB 의 3Tier로 배포하려고 합니다.현재 Web인스턴스에 Apache, WAS인스턴스에 Tomcat, RDS인스턴스에 mysql을 설치해준 상태입니다.그런데 spring 프로젝트 파일을 어떻게 배포해야 할지 모르겠습니다.WAS인스턴스에 war나 jar파일을 압축 해제시키면 배포가 가능하지만 3Tier구조로 배포하려니 프로젝트 압축 파일을 어떻게 각 서버에 넣어주어야 하는지 모르겠습니다.답변주신다면 정말 감사하겠습니다.
-
미해결더 자바, 코드를 조작하는 다양한 방법
어노테이션 프로세서 활용 예와 관련해 질문 있습니다.
'마무리' 한 강 남았네요.덕분에 많이 배우고 많이 성장한 것 같습니다.그런데, 어노테이션 프로세서 활용과 관련해서,, QueryDSL 사용 시 생성되는 엔티티의 Q파일도 어노테이션 프로세서를 활용한 기술인지 궁금합니다.짐작으로는 맡긴 한데, 관련 언급이 없었어서요.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Editor에 관한 질문이 있습니다!
다른 질문들을 보고도 아직Post 엔티티를 Editor를 사용해서 변경하는 것과 아래 코드가 어떠한 차이가 있는지 잘 이해가 되지 않습니다...public Post toUpdate(PostUpdate req) { this.title = req.getTitle() != null ? req.getTitle() : this.title; this.content = req.getContent() != null ? req.getContent() : this.content; return this; }
-
미해결
스프링 입문 질문드립니다.
이번에 취업하게 된 신입 개발자 입니다.회사에서 스프링/VUE를 사용하고있습니다. 자바를 공부하고있었는데 스프링에 대해선 아무것도 모릅니다. 보니깐 저희 회사는 maven? 을 사용하고있습니다. 혹시 스프링 공부하기 위한 책 과 인프런에서 봐야할 강의를 각각 추천 부탁드립니다. 그리고 강의보면 gradle 로 설정해서 강의 하는 부분이 많은 거같은데 강의보는데 지장이 있을까요? 여러분의 도움이 필요합니다.
-
미해결
junit.jupiter의 Assertions 질문
Assertions를 입력했을때 웬 이상한 AssertionsKt가 뜹니다.왜이러는거죠?
-
미해결
jsp 체크박스 기능 사용
안녕하세요 현재 spring을 이용하여 개발 중인 초보개발자입니다.다름이 아니라 현재 spring의 ajax 통신 기능을 사용하여 체크박스 기능을 구현 중인데, 생각보다 잘 풀리지 않아 질문하고자 합니다.javascript에 배열을 선언 후 체크박스가 요청하는 데이터베이스 데이터를 mybatis로 구분하여 불러오려 하는데, 배열의 size가 null로 나와 조회가 되지 않습니다. 현재 화면에 데이터를 불러오는데 getmapping을 사용 중인데, 구글링을 하다보니 postmapping이 적합하다고 하는데 혹시 어떤 이유 때문인지 궁금합니다.만약 꼭 바꿔야한다면 getmapping -> postmapping 으로 변경하려 하는데, 컨트롤러와 ajax의 type을 get에서 post로 변경하였는데 아예 데이터가 올라오지 않는 현상이 발생했습니다.혹시 어떻게 형식을 바꾸면 되는지 궁금합니다.
-
미해결실전! Querydsl
querydsl에서 oneToMany 관계인데 Many쪽 검색이 필요할 때 어떻게 해야하나요?
예를 들어 Order와 OrderItem이 있는데 Order의 검색을 동적쿼리로 검색해야해서 querydsl을 사용하고 있는 상황입니다. 그 중 검색조건이 OrderItem의 이름으로 검색해서 Order의 목록을 가져와야하는데 Order와 OrderItem을 조인하고 where절에 OrderItem의 이름으로 조회하는 방법 말고는 없을까요? 그럴 경우 distinct를 쓰거나 따로 중복 제거 로직을 넣어야해서ㅜ 혹시 다른 방법이 있나 문의드립니다.이런 경우에는 양방향 연관관계를 맺어주고 해결해도 될까요?
-
미해결스프링 핵심 원리 - 고급편
포인트컷과 어드바이스의 관계를 다음과 같이 이해하면 될까요?
프록시대리자를 통칭디자인 패턴프록시 패턴접근 제어캐싱(Caching), 지연 로딩(Lazy Loading)검증(Valid), 인증(Auth)데코레이터 패턴부가 기능로깅(Log)컨버터(Convertor), 포맷터(Formatter)스프링 프록시포인트 컷검증(Filter)만 담당어드바이스검증 이외의 모든 로직을 담당데코레이터 패턴 + 프록시 패턴(캐싱, 지연 로딩)어드바이저포인트 컷 1개 + 어드바이스 1개의 묶음위와 같이 이해하는게 맞게 이해하고 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
mysql 1064에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]h2말고 기존 mysql을 설치한게있어 heidisql을 이용하여 강의자료 코드 복붙하였습니다. 계속 1064 신택스 에러가 떠서 찾아봐도 해결이 되지않아 직접 생성했는데 아래처럼 해도 상관없나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getter setter 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 마지막 8분 22초에서 System.out.println 으로 member의 getName을 찍어서 확인하는데 Form html에서 input name을 name="name"이 아닌name="asd"로 변경후 Form class에서도 private String name을 private String asd로 바꾸고getter에서 return도 name->asd로 변경했습니다이때 메서드명은 getName() 그대로 남겼는데 sout(시스템아웃프린트)로 찍어보니까 null이 뜹니다.메서드명을 getAsd()로 바꾸니까 정상적으로 작동이 되구요 게터와 세터 메서드명을 꼭 변수의 이름과 맞춰야하는건가요? 이유가뭔가요?
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
onload 이벤트 넥사크로 로컬 확인 오류
안녕하세요, onload 이벤트 구현하면서 주문상태 받아오는 데이터 사이클 만들고 넥사크로에서 실행시켰는데 주문상태에는 나오는게 없고 밑에 콘솔창처럼 생긴 곳에Nexacro (15708)> CacheLevel : noneLocal Web Server> [Error] The File doesn't exist : "file://C:/Dev/eclipse-workspace/orderBoard/src/main/webapp/packageN/none"Local Web Server> [Error] 404 Not Found : 127.0.0.1:4099 "GET /none HTTP/1.1" Local Web Server> [Error] The File doesn't exist : "file://C:/Dev/eclipse-workspace/orderBoard/src/main/webapp/packageN/none"Local Web Server> [Error] 404 Not Found : 127.0.0.1:4099 "GET /none HTTP/1.1" Nexacro (15708)> UD 14:55:52:071 gfnCallback : SvcID>>selectCommonCode, errorCode>>0, errorMsg>>SUCCESS, isAsync>>true, sStartDate>>2023-02-03 14:55:51 922, sEndDate>>2023-02-03 14:55:52 71, nElapseTime>>0.149이렇게 나오는데요ㅠㅠㅠ 무슨 문제가 있는걸까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
save() 메서드 반환 타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberRepository의 save() 메서드는 반환 타입이 Member인 이유가 있을까요?저장하는 기능이라서 void로 해도 괜찮다고 생각하는데 테스트를 편리하게 하기 위함인가요?아니라면 다른 이유가 있는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/hello-mvc?name=Spring 오류
똑같이 한 거 같은데 오류가 뜨네요,,,
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://localhost:8080/hello 로그인 ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. http://localhost:8080/hello 에 들어가면 로그인이 하라는 창이 뜨구요취소 시 Unauthorized이렇게 뜹니다. ㅠㅠ프로젝트 새로 만들어도 똑같아서요 build.gradle 에 들어가도 시큐어리티가 없네요 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
그냥 boolean을 사용하면 어떤 단점이 있을까요?
Boolean이 아닌 boolean을 사용하면 값이 없을 경우 null이 아닌 false로 자동 설정되는 것으로 알고 있습니다.boolean으로 설정하면 hidden을 사용할 필요 없이 편하게 쓸 수 있을 것 같은데 Boolean으로 쓰는 것에 비해 어떤 단점이 있나요?