묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발 입문을 위한 실무자가 알려주는 Spring Boot
안녕하세요 추가구현사항에 대해 질문이있습니다.
강의 잘 들었습니다!추가로 질문이 있어서 글 남기겠습니다 ~강의를 듣는 목적은 프로젝트에서 회원가입 시 이메일 인증 및 id/password 찾기에 대한 인증번호 전송이었습니다. 사용자의 이메일로 인증번호(ex 6자리 007007) 를 보내 그 사용자가 사이트에 입력 후 번호가 맞으면 이메일인증 , password 찾기 서비스를 이용할수 있게끔 하고싶습니다. 검증유효시간 그런거는 다 제쳐두고 위의 인증 기능만 단순히 구현해보고싶은데요 1. 인증번호 6자리를 어떻게 서버에 보관할수 있을까요?2. 보관 후 그것이 특정 사용자에게 맞는 인증번호인지 확인할까요?? 제가 지금 생각해본 방식입니다. temp_user 테이블 생성하고 pk(email), column(verify_code) 컬럼을 만든다사용자가 이메일 인증요청을 하면 temp_user 테이블에 email,verify_code보관 및 verify_code 전송사용자가 인증번호 확인하려고 입력을 하면 email값에 맞는 verity_code인지 temp_user table에서 꺼내와서 확인 인증번호 검증 후 회원가입 완료 로직 -> temp_user 삭제 후 입력 정보 user 테이블에 저장하는 방법입니다 . 긴 글 읽어주셔서 감사합니다. 생각의 방향이 맞는지 아니면 더 좋은 방법이 있는지 알려주시면 감사하겠습니다 !!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
동영상 강의에서 이러한 기능을 갖춘 UI화면을 미리 만들어서 저희가 셋팅했던 서버에 넣어놨다고 하는데, 포트번호를 8080으로 똑같이 해야하나요?
그리고 질문이 자꾸 지워져요. 그래서 다시 작성하게 되었네요. 질문올리면 첫번째에는 글이 지워지고, 다시 작성한 두번째는 글이 올라가는데, 이런 현상은 왜 일어나나요? 포트번호를 5000번으로 했는데, 자꾸 오류가 걸리네요.강사님이 이러한 기능을 갖춘 UI화면을 미리 만들어서 저희가 셋팅했던 서버에 넣어놨다고 했는데, 이게 무슨 말씀인가요?7강 유저 생성 API개발에서 1분 20초부터 1분 31초까지에서 강사님의 말씀이 자꾸 생각나네요.아까 답변주신 방법으로는 해결이 안되요!프로젝트를 클린 빌드하고, 다시 실행해보세요.라는 말은 무슨 뜻인가요? 클린 빌드는 어떻게 해야하나요?application.properties밖히 없어요!spring.application.name=library-app server.port=5000애플리케이션.프로펄티즈에는 위에처럼 작성되어 있어요. 뭔가 잘못되어 있는게 있나요? 강사님이 주신 파일입니다. URL 설정이 올바르게 되어 있는지 확인하려면 어떻게 하나요?Controller 클래스가 없거나 잘못 매핑됨:URL 경로와 매핑된 @RequestMapping 또는 @GetMapping, @PostMapping이 제대로 설정되지 않았을 수 있습니다.1번은 어디를 말하는건가요? CalculatorController에는 아래 코드가 있습니다. 잘못된 부분이 있으면 알려주세요!package com.group.library_app.controller.calculator; import com.group.library_app.dto.calculator.request.CalculatorAddRequest; import com.group.library_app.dto.calculator.request.CalculatorMultiplyRequest; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @RestController public class CalculatorController { @GetMapping("/add") // GET /add public int addTwoNumbers(CalculatorAddRequest request) { return request.getNumber1() + request.getNumber2(); } @PostMapping("/multiply") // POST /multiply public int multiplyTwoNumbers(@RequestBody CalculatorMultiplyRequest request) { return request.getNumber1() * request.getNumber2(); } }
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
도서관리 애플리케이션에 대한 코드를 안짠거 같아요!
Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Fri Sep 20 20:27:51 KST 2024There was an unexpected error (type=Not Found, status=404).제일 큰 원인은 맵핑이나 펄백이나 도서관리 애플리케이션에 대한 코드를 안짠거 같은데, 이런 오류는 왜 생기는건가요? 아까전에 주신 답변을 따라해도 안되요. 원인과 해결방법을 새롭게 알려주실 수 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
http://localhost:8080/v1/index.html을 입력했을때, 하얀페이지와 오류가 생겨요!
강사님과 똑같이 했는데, 오류가 생겨요. application.properties 파일을 사용할 경우:server.port=6000위처럼 입력하고 검색도 되나요??안되서 server.port=6000를 지워서 기본 디폴트값 8080으로 만든후 실행했어요!그리고http://localhost:6000/v1/index.html으로 검색하면 아래처럼 떠요사이트에 연결할 수 없음http://localhost:6000/v1/index.html의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.ERR_UNSAFE_PORT어떻게 하면 포트번호도 바꾸면서, http://localhost:8080/v1/index.html가 아닌 http://localhost:6000/v1/index.html 을 검색하면서, 도서관리 어플리케이션 화면이 나오게 할 수 있나요?netstat -ano을 입력해서 8080의 pid을 찾아taskkill /pid 번호 /f를 입력해서 지워야 작동이 되나요? 지우고 다시 작동해도 바뀌질 않아요.http://localhost:6000/v1/index.html을 입력해도사이트에 연결할 수 없음http://localhost:6000/v1/index.html의 웹페이지가 일시적으로 다운되었거나 새 웹 주소로 완전히 이동했을 수 있습니다.ERR_UNSAFE_PORT가 떠요. 기본값 8080으로 바꿔도 변경이 안되요! 무엇이 문제인가요?기본값에서 포트번호 6000으로 변경해도 강사님이 보여주신 http://localhost:8080/v1/index.html에서 로컬호스트 번호만 변경해도 똑같이 되나요? 아니면 강사님과 똑같이 기본값 8080으로 사용해야하나요?포트번호를 6000번으로 바꾸면서도 도서관리 어플리케이션이 작동했으면 좋겠어요!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
인텔리제이의 포트번호를 8080에서 다른 번호로 변경하는 방법을 알려주세요!
제가 대학교 컴퓨터를 사용하고 있고, 스프링부트, STS, oracle database, 이클립스 등을 사용하니까 8080포트를 중복해서 사용하는것 같아요.그래서 아래 방법으로 해결했어요!윈도우버튼 누르고, CMD입력해서 실행창 띄우서, 아래 코드를 입력해서 8080포트의 PID를 알아냈어요!netstat -ano그다음 8080의 pid 2032를 지우고 다시 실행하니까 해결이 되는데, 매번 이렇게 하기 어려우니, 인텔리제이의 포트번호를 바꾸고, 포스트맨이나 다른 어플리케이션에서도 바꾼 포트번호를 설정해서 사용하고 싶어요. 어떻게 해야하나요? 인텔리제이의 8080포트번호를 다른 번호로 변경해도 작동하는데 문제가 없습니까?taskkill /pid 2032 /f
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
추가질문, 프로젝트에서 사용위치를 찾을 수 없데요!
package com.group.library_app.controller.calculator; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class CalculatorController { @GetMapping("/add") // GET /add public int addTwoNumbers( @RequestParam int number1, @RequestParam int number2 ) { return number1 + number2; } }Execution failed for task ':com.group.library_app.LibraryAppApplication.main()'.> Process 'command 'C:\Users\Student\.jdks\corretto-17.0.12\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.BUILD FAILED in 1s3 actionable tasks: 1 executed, 2 up-to-date 제거는 0개의 사용위치라는 문구가 뜨고, ("/add")안에 지구모양의 아이콘을 클릭할 수 있는 메뉴가 안떠요!0개의 사용 위치를 클릭하면 "프로젝트 파일에서 사용 위치를 찾을 수 없습니다"라는 메세지가 뜹니다. 이게 가장 큰 문제인것 같은데, 아까전에 답변주신 것으로는, 제가 질문을 하기 위해 참고한 사이트를 똑같이 링크를 올려주셨더군요. 해결이 안됩니다. 무엇인가 설정은 안해준걸로 아는데, 어떤것을 설정을 안해주거나 빌드.그래들안에서 디펜던시 같은 곳에 입력을 안해준것이 있거나 할건데, 어떤 것인지 모르겠어요! 강사님 동영상과 똑같이 따라했는데, 오류가 해결이 안됩니다. 직접 이 동영상의 강사님이 해결해주실 수 있나요?빌드 및 실행과 테스트 실행을 Gradle로 설정하면 오류가 생겨요!의 답변을 참고해서 다시 질문드립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드 및 실행과 테스트 실행을 Gradle로 설정하면 오류가 생겨요!
강사님 200 OK랑 30이 나와야 하는데, 저는 오류가 떠요. 아래 오류는 강사님 코드를 다운받고 실행시킬 처음부터 발생했습니다!500 Internal Server ErrorThe server has encountered a situation it does not know how to handle.{ "timestamp": "2024-09-20T07:29:31.340+00:00", "status": 500, "error": "Internal Server Error", "path": "/add" }위에거는 인텔리제이 코드가 아니라 포스트맨에서 나오는 오류 코드입니다.인텔리제이 빌드.그래들을 실행시키면 아래 오류가 뜹니다. 아래 오류는 설정에서 Build and run using과 Run tests using을 인텔리제이 IDEA로 바꿔야 해결되는데, 그러면 포스트맨에서 코드가 안나옵니다.정답은 30, 200OK가 저는 안나와요!아래 참고 사이트:https://dev-emmababy.tistory.com/86https://velog.io/@blackbean99/Java-finished-with-non-zero-exit-value-1-%EC%97%90%EB%9F%AC-%ED%95%B8%EB%93%A4%EB%A7%81 Execution failed for task ':com.group.library_app.LibraryAppApplication.main()'.> Process 'command 'C:\Users\Student\.jdks\corretto-17.0.12\bin\java.exe'' finished with non-zero exit value 1* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.BUILD FAILED in 2s3 actionable tasks: 1 executed, 2 up-to-date
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
빌드.그래들에서 디펜던시에 값을 붙여넣었는데, 어노테이션에 아무런 변화가 없어요!
빌드.그래들에서 디펜던시에 값을 붙여넣었어요!plugins { id 'java' id 'org.springframework.boot' version '3.3.3' id 'io.spring.dependency-management' version '1.1.6' } group = 'com.group' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' implementation 'org.springframework.boot:spring-boot-starter-web' } tasks.named('test') { useJUnitPlatform() }하지만 어노테이션에 임포트 클래스라는 메뉴가 안떠요! 아무런 변화가 없습니다!https://needneo.tistory.com/272위 링크처럼 임포트 클래스 메뉴가 떠야하는데, 새로고침을 어떻게 하라는 건가요?한글메뉴라서 버튼이름이 다를 수 있어요!파일에서 IDE고치기도 해보고 실행도 해보고 디버그도 해봤어요! 전혀 변화가 없습니다.구체적으로 해결방법을 가르켜주세요!
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강사님의 동영상처럼 어노테이션을 입력하면 저는 임포트가 안떠요!
강사님처럼 어노테이션을 입력하면, 임포트가 입력이 안되요. 직접 작성해도 web.에서 오류가 걸려요. 무엇인가 설정이 안되었거나 무엇인가 안깔려있는거 같은데, 어떻게 해결해야하나요? 그리고 임포트 단축키좀 알려주세요. ctrl+O인가요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
개선된 아키텍처의 구조
많은 도움을 얻어가는 취준생입니다. 다름아니라 본 영상(레이어드 아키텍처의 문제점과 해결책) 9분30초의 구조는 DDD라고 볼 수 있나요?감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
db에 저장되는 이름과 객체를 지정하는 이름 스타일 차이는 그냥 관례일까요
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]db의 필드 이름은 item_name 이렇게 지정하고, 객체에서는 itemName이런 형식으로 camelCase 스타일로 지정하는 이유는 그냥 오랜 관례일까요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 데이터베이스 연결
h2 데이터베이스 연결이 자꾸 안된다고 뜹니다...Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided)
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
react 소스 부탁드립니다.
강의 너무 잘 보고 있습니다.강의를 진행하면서 그냥 따라하는것보다는이건 이렇게도 해보고 저건 저렇게도 해보면서 배움을 진행 하는게 좋을 것 같아요청 드립니다 ㅎ좋은 강의 감사합니다.jhr7124@naver.com
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@GeneratedValue 전략
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@GeneratedValue 에서 따로 strategy 전략을 안주면 AUTO로 설정되고 jpa에서 pk 순서?를 관리해주는걸로 알고있는데몇번 post man으로 API 요청을 날리다보니 member_id 가 1,2까지 순차적으로 증가하다가 갑자기 52번으로 뛰었어요. 그래서 member_seq 테이블의 값을 3으로 수정해줬는데 다시 api 호출을 해보니 음수로 바뀌었습니다. 이부분이 이해가 안가는데 pk 값을 어떤식으로 동작? 관리 하는지 알려주시면 감사하겠습니다. 그리고 이 방식은 항상 순차적인 값으로 증가가된다는 보장이 없는것 같은데 AUTO 로 사용해도 되는지 궁금합니다.참고로 db는 Mysql 사용했습니다. .
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요
안녕하세요깃허브 부분까지도 다 듣고, 깃허브에 README기능을 알게되어 어떤 기능이 있는지 등을 간단히 적어두었는디 괜찮을까요?또한 깃허브에 계속 올려놔도 되는건지 궁금합니다(저작권 때문에여!)
-
미해결Practical Testing: 실용적인 테스트 가이드
Spring REST Docs 관련 질문 사항
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! 강의 유용하게 잘 보고 있습니다.테스트 기반 문서에 대해서 의문점이 있어 질문 드립니다. 기존에 작성한 MockMVC를 활용한 Controller단 테스트는, REST Docs를 사용하기 위해 만든 테스트가 있다면 중복되는 테스트는 제외를 해도 관계가 없을까요?예시로, 정상 Case 테스트와, 예외 Case (비교적 다수) 가 하나의 API에 테스팅 될 것 같은데, 정상 Case 테스트만 RestDocs로 운용, 나머지 예외 케이스는 Mocking 하여 별도의 Test 진행.아니면 controller 테스트는 Docs로 구분, 정상케이스만 .andDo(...) 적용하여 같은 테스트 파일에 포함되도록 설정 등등... REST Docs의 가장 큰 장점은 테스트가 완료된 API End Point만 명세화되어서 작성 된다고 느껴졌습니다. 테스트 코드를 통과해야 merge가 가능하도록 branch 전략을 수립하거나, CI/CD 과정에 포함시키는 등을 진행하면 Swagger를 통한 명세 작성에 비해 떨어지는 접근성을 지닐 수도 있다고 생각합니다.다만, 테스트코드의 강제성 부분에서는 장점이 있다고 생각되는데 혹시 다른부분의 장점이 또 있을까요?테스트 코드 작성 부분이 많이 약해 도움받을 목적으로 강의를 수강하게 되었는데, 많은 부분에서 도움을 받은 것 같습니다. 감사합니다!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
값 타입 컬렉션 대안
update도 보면 create one-to-many row 업데이트가 나오지 않으며 id도 1씩 추가가 되지 않습니다. 왜 이런건지 이해가 안되네요 38:37초 입니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
실제 비즈니스에서 createOrder() 오버로딩에 관한 질문
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요! 강의를 듣는 중에 createOrder() 메소드에 관한 궁금한 점이 생겨 질문드립니다.좋은 예시와 설명으로 테스트를 어렵게 코드들을 외부로 빼서 테스트를 쉽게할 수 있게 하는 점을 잘 이해했습니다.그런데 강의에서 파라미터 주입으로 변경한 createOrder(LocalDateTime ) 메소드는 사실상 다른 비즈니스 클래스에서 사용한다고 했을 때 모두 LocalDateTime.now()을 파라미터로 사용할 것으로 생각됩니다.그래서 저렇게 파라미터로 뺀 경우 createOrder() 메소드를 사용하는 다른 비즈니스 클래스에선 불필요한 코드 반복이 발생할 수 있을 것 같고 또 개발자가 LocalDateTime.now() 대신 잘못된 값을 넣을 수 있게 되니 잠재적으로 예기치 못한 동작을 유도할 수도 있을 것 같다는 생각이 드는데 이런 부분들은 어떻게 생각하시는지 궁금합니다..!
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
개발 툴에 질문드립니다.
일단 수강 신청은 해놨는데 ...vscode ,intellij 쓰는 줄 알았는데 아닌거 같아서요 ...혹시 수업진행할 때 쓰는 툴이 구체적으로 어떻게 쓰는 건지알수 있을까요 ? vscode로만 다 하나요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
WebSecurity 설정 질문입니다.
@Bean protected SecurityFilterChain config(HttpSecurity http) throws Exception { http.csrf( (csrf) -> csrf.disable() ); http.authorizeHttpRequests( authorize -> authorize .requestMatchers("/**").permitAll() .anyRequest().authenticated() ); http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin())); return http.build(); } 이 코드를 @Bean protected SecurityFilterChain config(HttpSecurity http) throws Exception { http.csrf( (csrf) -> csrf.disable() ); http.authorizeHttpRequests( authorize -> authorize .requestMatchers("/**") .access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')") ) .anyRequest().authenticated() ); http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin())); return http.build(); }.access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')") ) 이 부분을 추가시키면, 파일 링크로 가는 것이 아니라, info 라는 파일이 다운받아지는데, 어떻게 해결해야 할지 여쭤보고 싶습니다 ㅠㅜ