묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
실제로 수정자 주입시 누락문제를 경험하는 일이 있나요?
[질문 내용]여기에 질문 내용을 남겨주세요. 수정자 주입을 선택한 경우 4:38에 NPE가 나는 이유는 이해했습니다비록 @Autowired이 달려있지만 ac.getBean으로 획득한 orderService가 아니기 때문에 의존관계 주입이 일어나지 않았고 따라서 NPE가 발생한 것인데요그런데 실제로는 스프링을 사용할 것이고 따라서 orderService를 스프링 컨테이너가 관리하는 스프링 빈으로 사용을 할텐데 이 경우에는 @Autowired가 의존관계 주입을 알아서 다 해주니까수정자 주입의 경우에 누락문제를 걱정할 필요가 없는것 아닌가요?실제로 순수 자바코드를 사용해서 개발하는 경우가 있기 때문에 해당 예제를 보여주신것인지 궁금합니다
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
mysql 연결연산자 질문드립니다.
안녕하세요.이전에 강사님이 써주신 답변을 통해,mysql에서의 공백은 사실 공식적으로는 연결 연산자는 아니며 구문을 구분해주는 역할을 하는 것이라고 참고하였습니다. [실습4-1] 환경 분석 실습에서 위와 같이 %2b를 통해,MSSQL의 연결 연산자인 +를 테스트해보았는데 결과가 잘 출력됩니다.-> 실행 페이로드 : ?idx=13+and+'test'='te'%2b'st'이런 경우 연결 연산자로 판단하는 관점에서는 mysql과 MSSQL을 혼동할 여지가 있는 것 같은데,True로 쿼리가 실행되는 이유가 궁금합니다.항상 좋은 강의 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
portfolio review 코드 말고 수업 예제 코드는 없을까요?
컴퓨터를 교체해서 앞에 수업했던 파일들이 다 날아갔는데 강의 뒷부분에서 재활용 되는 경우가 있더라구요.. 깃허브에는 포폴용 과제만 샘플 코드가 제공되는 것 같아서 혹시 수업 파일도 올려주실 수 있으실까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
9:52초 테이블 생성 부분 질문드립니다.
ORDERS 테이블의 ORDER_ID 컬럼은 만들지 않으신 것 같은데 혹시 이 부분 생략하신건가요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
typscript 적용
안녕하세요! 기본편부터 실전편까지 전부 다 듣고 현재 실전편에서 만든 프로젝트에 타입스크립트를 적용하려고 합니다!아무리 찾아봐도 vue3에 타입스크립트를 이후에 추가하는 자료가 보이지 않아서 질문글에 올려요!혹시 세팅하는 순서와 방법 좀 알려주실 수 있으실까요?거기에 현재 volar가 삭제되어서 vue가 좀 불안정한? 느낌이라 더더욱 타입스크립트 세팅이 잘 안되고 있습니다 ㅠ_ㅠ부탁드릴꼐요..!
-
해결됨초보자를 위한 BigQuery(SQL) 입문
흠,., 수업자료 버튼이 안 보인다능,.
왜때문에.. ? 안보일까요/
-
미해결현직 개발자가 알려주는 안드로이드 앱 쉽게 만드는 방법
안드로이드 스튜디오 설치
안녕하세요? 스튜디오 설치 후 환경설정을 할수가 없습니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
batch size관련 질문
안녕하세요! spring jpa를 공부하다가 궁금증이 생겨서 질문을 올립니다. 혹시 jpa표준이 아닌 spring jpa를 쓰면 batch size를 적용할 필요가 없나요? spring jpa는 Page인터페이스와 Slice인터페이스를 사용하기에 질문을 드립니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MVC완강 후, 프로젝트 진행 중 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]mvc 강의를 다 듣고 프로젝트를 진행중인데 계속 오류가 떠서 혹시 한번만 봐주실수있나요 ? ㅠㅠhttps://drive.google.com/drive/folders/15tIzYE6utLhSHtXVeYGPBUeqcMUFxKJc?hl=ko http://localhost:8080/velog/signUp스프링을 실행시키고 위의 url로 이동한 뒤, 값을 모두 입력하고 Sign Up 버튼을 누르면 처음 기본 화면인 http://localhost:8080/velog/login으로 가야하는데 이동을 안하고 계속 에러가 뜨는 상황입니다 ㅠㅠ.. 혼자 해결해보려고 했는데 하루종일 잡고있어도 에러가 안풀리네요... 도와주시면 감사하겠습니다어느부분에서 오류가 난걸까요 ?ㅠㅠㅠ 오류 내용 그대로 GPT한테 물어보니 GPT는 아래처럼 대답하긴 했습니다.로그인멤버 객체를 저장하는 LoginMember를 로그인 처리하는 컨트롤러에서 사용하였는데요..@GetMapping("/login") public String LoginService(Model model) { model.addAttribute("loginMember", new LoginMember()); return "home"; }위의 코드가 문제인것같은데,,ㅠㅠ 뭐가 문제일까요제발 살려주세요ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
@Configuration과 @ComponentScan을 제대로이해한것이 맞나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요 @Configuration의 역할에 대해 질문드립니다처음에 제가 생각한 @Configuration의 역할은 "Bean을 등록할 때 싱글톤이 되도록 보장해준다" 였는데요https://www.inflearn.com/questions/323589https://www.inflearn.com/questions/157309위 두 답변을 보고 제대로 이해한것이 맞는지 궁금하여 질문드립니다제가 이해한것은 다음과 같습니다1. 스프링 빈은 스프링 컨테이너에 언제나 싱글톤으로 등록/관리된다2. @Configuration은 의존관계로 동일한 클래스가 여러번 객체로 생성되는것을 방지한다그래서 싱글톤의 원래 목적인 하나의 클래스는 하나의 객체만 유지해서 사용하기 위함을 @Configuration을 사용하는 것이지@Configuration 자체가 스프링 빈을 싱글톤으로 보장하는것은 아니다(어차피 빈은 언제나 싱글톤으로 관리되므로)3.@ComponentScan 역시 스프링 빈을 등록해주므로 싱글톤으로 빈을 등록해준다만약 2번과 같이 의존성으로 싱글톤을 해칠 가능성이 존재하는 경우에 스프링 빈 수동등록에서는 @Configuration을 활용했다면스프링 빈 자동등록에서는 @Autowired로 해결한다
-
해결됨홍정모의 따라하며 배우는 C언어
5분 44초경 질문있습니다.
fsetpos() 함수가 어떻게 작동하는지 이해가 잘 안돼서 fpos_t pt;pt = 10;fsetpos(fp, &pt);ch = fgetc(fp);printf("%d %c\n", ch, ch);fgetpos(fp, &pt);printf("%lld\n", pt); 위의 코드 다음에 fsetpos(fp, &pt);ch = fgetc(fp);printf("%d %c\n", ch, ch);fgetpos(fp, &pt);printf("%lld\n", pt); 이런 식으로 코드의 일부분을 추가로 복사 붙여넣기하여 실행하면 어떻게 될지 궁금해서 실행을 해봤더니이런 결과가 나왔습니다.실행하기 전에 결과를 예상해봤는데똑같이 K가 출력되거나 K의 다음칸에서 10칸만큼 더 이동을 해서 V가 출력될 줄 알았습니다그런데 제 예상과는 완전 다른 결과가 나와버렸네요아마 읽고나면 한 칸 이동을 하는 특성 때문에 그렇게 되는 거 같은데그게 어떻게 작동하길레 저런 결과가 나오는지 궁금합니다. 항상 좋은 답변 정말 감사합니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
react 프로젝트 설정 문제
프로젝트를 설정하고 되다가 다시 키니까 안되서 문의드립니다.제가 java 버전이 3개 정도 설치되어 있는 데 작업할 때 17로 수정해서 쓰고 다른 것 해야 할 때 11로 바꿔서 썼다가 오늘 17로 바꿔서 쓰는 데 자바버전이 안 먹히는 것 같아서 문의 드립니다.The supplied phased action failed with an exception.A problem occurred configuring root project 'mallapi'.Could not resolve all files for configuration ':classpath'.Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT.Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.1.10-SNAPSHOT:20240229.214127-20No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT:20240229.214127-20 was found. The consumer was configured to find a library for use during runtime, compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.5' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.1.10-SNAPSHOT declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.1.10-SNAPSHOT declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.5') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.1.10-SNAPSHOT declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.5')
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
에러가 해결이 안돼요ㅜ
에러 : Parameter 0 of constructor in com.group.libraryapp.service.user.UserServiceV1 required a bean of type 'com.group.repository.user.UserJdbcRepository' that could not be found. 구글링해보니까 service, repository 등의 annotation이 빠져서 그렇다고 하는데 다 들어가있습니다ㅜ계속 문제가 해결안돼서 참고하라고 주신 코드로도 변경해봤는데 계속 동일한 문제가 뜨네요.. package com.group.libraryapp.service.user; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import com.group.libraryapp.dto.user.request.UserUpdatRequest; import com.group.repository.user.UserJdbcRepository; import org.springframework.stereotype.Service; import java.util.List; @Service public class UserServiceV1 { private final UserJdbcRepository userJdbcRepository; public UserServiceV1(UserJdbcRepository userJdbcRepository) { this.userJdbcRepository = userJdbcRepository; } public void saveUser(UserCreateRequest request) { userJdbcRepository.saveUser(request.getName(), request.getAge()); } public List<UserResponse> getUsers() { return userJdbcRepository.getUsers(); } public void updateUser(UserUpdatRequest request) { if (userJdbcRepository.isUserNotExist(request.getId())) { throw new IllegalArgumentException(); } userJdbcRepository.updateUserName(request.getName(), request.getId()); } public void deleteUser(String name) { if (userJdbcRepository.isUserNotExist(name)) { throw new IllegalArgumentException(); } userJdbcRepository.deleteUser(name); } } package com.group.repository.user; import com.group.libraryapp.dto.user.response.UserResponse; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class UserJdbcRepository { private final JdbcTemplate jdbcTemplate; public UserJdbcRepository(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public boolean isUserNotExist(long id) { String readSql = "SELECT * FROM user WHERE id = ?"; return jdbcTemplate.query(readSql, (rs, rowNum) -> 0, id).isEmpty(); } public void updateUserName(String name, long id) { String sql = "UPDATE user SET name = ? WHERE id = ?"; jdbcTemplate.update(sql, name, id); } public boolean isUserNotExist(String name) { String readSql = "SELECT * FROM user WHERE name = ?"; return jdbcTemplate.query(readSql, (rs, rowNum) -> 0, name).isEmpty(); } public void deleteUser(String name) { String sql = "DELETE FROM user WHERE name = ?"; jdbcTemplate.update(sql, name); } public void saveUser(String name, Integer age) { String sql = "INSERT INTO user (name, age) VALUES (?, ?)"; jdbcTemplate.update(sql, name, age); } public List<UserResponse> getUsers() { String sql = "SELECT * FROM user"; return jdbcTemplate.query(sql, (rs, rowNum) -> { long id = rs.getLong("id"); String name = rs.getString("name"); int age = rs.getInt("age"); return new UserResponse(id, name, age); }); } }package com.group.libraryapp.controller.user; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdatRequest; import com.group.libraryapp.dto.user.response.UserResponse; import com.group.libraryapp.service.user.UserServiceV2; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController //스프링 빈이 됨. 즉 jdbc에 의존하게됨 public class UserController { private final UserServiceV2 userService ; //@Quailifier("main")가 primary보다 더 앞선다. public UserController(UserServiceV2 userService){ this.userService = userService; } @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request){ userService.saveUser(request); } @GetMapping("/user") public List<UserResponse> getUsers(){ return userService.getUsers(); } @PutMapping("/user") public void updateUser(@RequestBody UserUpdatRequest request){ userService.updateUser(request); } @DeleteMapping("/user") public void deleteUser(@RequestParam String name) { //query를 직접 사용해서 포스트맨으로 찾음 그래서 requestbody가 아니라 param을 씀userService.deleteUser(name); userService.deleteUser(name ); } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
혹시 게임을 시작할 때 애니메이션이 움직이는거로 시작하는데
22:24의 부분에서부터 말씀해주시는 것 중 루키스님께서 말씀하신것은 2개인거로 사료됩니다.Start에 원하는 애니메이션 플레이 코드 삽입움직일 때 None이 되면 가만히 있는 코드를 역이용하여 사용.이렇게 있는데 잠깐 애니메이터를 만지다가 알게 된 건데 애니메이터의 'Entry' 블록에서 Default state를 IDLE_RIGHT와 같이 원하는 항목으로 지정해도 되더라구요. 혹시 현업에서는 어떻게 이용하는지 궁금합니다.1, 2번처럼 하게 될 때 걱정되는 점은 만약에 도중에 애니메이션 파일 이름을 변경하게 될 때 코드에서 까지 바꿔야 되는 점이 염려스럽습니다.나중에는 애니메이션 파일이 하나 뿐만이 아닐텐데 그것을 일일이 찾기도 어려울 것이라고 판단했습니다.
-
해결됨
엑셀
날짜랑 요일 드래그 하면 요일만 안바껴요
-
해결됨[초중급] Flutter Todo 앱 - FlutterBloc
[공유] Hive generator 실습 중 FolderAdapter::read 메서드가 return Folder() 로 생성되는 이슈
pubspec.yamlenvironment: sdk: '>=3.1.2 <4.0.0' dependencies: flutter: sdk: flutter freezed_annotation: 2.4.1 cupertino_icons: ^1.0.2 get_it: 7.2.0 hive: 2.2.3 hive_flutter: 1.1.0 intl: 0.17.0 dev_dependencies: build_runner: 2.4.8 flutter_test: sdk: flutter flutter_lints: ^2.0.0 freezed: 2.4.7 hive_generator: 2.0.1 json_serializable: 6.7.1folder.g.dart 파일class FolderAdapter extends TypeAdapter<Folder> { ... @override Folder read(BinaryReader reader) { ... return Folder(); } ... }
-
해결됨[초중급] Flutter Todo 앱 - FlutterBloc
[공유] Hive generator 실습 중 FolderAdapter::read 메서드가 return Folder() 로 생성되는 이슈
environment: sdk: '>=3.1.2 <4.0.0' dependencies: flutter: sdk: flutter freezed_annotation: 2.4.1 cupertino_icons: ^1.0.2 get_it: 7.2.0 hive: 2.2.3 hive_flutter: 1.1.0 intl: 0.17.0 dev_dependencies: build_runner: 2.4.8 flutter_test: sdk: flutter flutter_lints: ^2.0.0 freezed: 2.4.7 hive_generator: 2.0.1
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강신청 연장 부탁드립니다.
수강신청 연장 부탁드립니다.일이 바빠서 조금씩 밖에 듣지 못하고 있네요...
-
해결됨초보자를 위한 BigQuery(SQL) 입문
2-3강의
편집 전 버전 같아요
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
문제와풀이3 질문입니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]안녕하세요 강사님 혹시 문제에 대한 이해가 되긴하지만 정확한 이해가 잘 안되다보니 질문을 남깁니다! productNames[] 와 productPrices[] 배열안에 productCount를 넣는 이유를 자세히 설명가능할까요..? 저는 for문으로 처음시도를해봤는데 안되고 한참을 고민하면서 여러시도를 한 끝에 해결이 되질않아 풀이과정을 봤습니다. 그래서 풀이방식이 궁금해져서요!! (제가 궁금해하는 부분에 대한 설명이 부족한거같아 추가로 더 적습니다! for문을 돌려 for(int i = 0; i <= maxProducts; i++) {System.out.print("상품 이름을 입력하세요 :");productNames[i] = sc.nextLine();System.out.print("상품 이름을 입력하세요 :");productPrices[i] = sc.nextInt(); productCount++; } 식으로 했습니다! 이방식이 안되는 이유도 궁금해서요!