이야기를 나눠요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 수강 중 에러.
질문탭으로 가야하는데 고민으로 작성했네요... 수정으로는 이동이 안되는데 이동 가능하다면 부탁드립니다.ㅠㅠ===========================================AOP 수강 중 에러가 발생했는데 어디를 건드려야할지 잘 모르겠어서 문의 남깁니다.우선 강의와 다른 환경으로 실습해보고 있어 조금씩 코드가 다릅니다.먼저 에러 메세지는 아래 2개입니다.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberController' defined in file [D:\dev\java\hello-spring\out\production\classes\hello\hellospring\controller\MemberController.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.hellospring.service.MemberService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}2번 메세지를 보게 되면 MemberService타입의 Qualifying 한 bean이 존재하지 않아 wiring 할수 없다는 에러인데. 스프링을 처음 해보는 입장에서는 그대로 따라 쳤는데 되지 않아 어떻게 더 수정해야할지 고민입니다.관련된 코드 블럭을 첨부 드립니다.SpringConfig.Javapackage hello.hellospring; import hello.hellospring.repository.*; import hello.hellospring.service.MemberService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { // private EntityManager em; private final MemberRepository memberRepository; public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } // public SpringConfig(EntityManager em) { // this.em = em; // } @Bean public MemberService memberService(){ return new MemberService(memberRepository); } // @Bean // public MemberRepository memberRepository(){ //// return new MemoryMemberRepository(); //// return new JdbcMemberRepository(dataSource); //// return new JdbcTemplateMemberRepository(dataSource); //// return new JpaMemberRepository(em); // } }MemberService.Javapackage hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.JdbcMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Component public class MemberService { private final MemberRepository memberRepository; @Autowired public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /* * 회원가입 */ public Long join(Member member){ //같은 이름이 있느 중복 회원X validatedDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validatedDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } public List<Member> findMembers(){ return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId){ return memberRepository.findById(memberId); } } application.propertiesspring.datasource.url=jdbc:h2:tcp://localhost/~/test spring.datasource.driver-class-name=org.h2.Driver spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=none spring.datasource.username=sagradleplugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'hello' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '21' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' // implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.h2database:h2' } tasks.named('test') { useJUnitPlatform() }MemberController.javapackage hello.hellospring.controller; import hello.hellospring.domain.Member; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping("/members/new") public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } @GetMapping("members") public String list(Model model){ List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } } 감사합니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 환경에서 h2 db 를 사용하는 경우 실용성에 대하여
테스트 환경에서 h2 메모리 db 를 사용하는 방식에 대한 실용성 관련 고민이 있습니다. 프로젝트를 진행하다보면 기본적으로 orm 기반으로 구현을 하지만 일부 예외적인 기능들은 특정 dbms 에 의존적인 쿼리를 직접 실행하는 경우가 불가피하게 발생하는 듯 합니다. 이 경우 특정 dbms(예를들어 mysql) 에 대한 의존성이 발생할 수 밖에 없는데요. 이때 운영 dbms 와 다른 메모리 db(h2) 를 사용하여 테스트를 작성하게 불가능해지고 결국엔 실환경과 동일한 테스트용 db 를 세팅하는식으로 다시 변경하게 되는 듯 합니다. (결국 메모리 db 를 이용한 간단한 테스트를 사용할 수 없는 상황) 실무적인 차원에서 이런 경우 보통 어떤 방식으로 해결하는게 최선일지 궁금합니다.
-
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
프로젝트 설계
안녕하세요 프로젝트 관련해서 몇가지 조언을 얻고 싶어서 글을 작성하게 되었습니다.현재 mvc2강의를 듣고 있고 해당 강의를 모두 수강하면 배웠던 것을 간단한 프로젝트를 통해 복습할 생각입니다.저는 지금까지 프로젝트 경험이 없는 상태라 어떻게 설계를 해야할지 감이 잘 잡히지 않습니다. 강의를 들을 때는 이해가 잘 가지만 막상 만들려 하니 어려움이 생기네요.. 패키지 구조, 요청의 흐름, url 등 전체적인 설계를 할 때 도움을 받을 수 있는 책이 있을까요? (여러 권이어도 괜찮습니다.)+영한님 강의 잘 듣고 있습니다, 좋은 강의 만들어 주셔서 감사합니다!
-
김영한의 실전 자바 - 기본편
강의 수강 질문
안녕하세요 현재 김영한님 자바 강의까지 다 수강하였고 spring 강의를 들을 예정입니다. 김영한님 스프링을 db관련 강의가 있는데 이 강의를 수강 하기전에 mysql과 같은 강의를 수강하고 기본적인 쿼리를 짤 수있는 상태에서 spring db강의를 들어야 하나요??김영한님 강의중에 db(mysql,MongoDB)자체에 대한 강의는 없는 것 같아서 따로 다른걸 수강해야하는지 알고싶어서 질문합니다.
-
실전! FastAPI 입문
파이썬 콘솔 > openssl rand -hex 32 관련
제 PC에서는 openssl 명령어가 작동하지 않아서요. 비슷한 분들 계실까봐 제가 찾은 방법 공유드립니다.아래 명령어 복붙하신 다음, 출력되는 값 사용하시면 됩니다. import osdef generate_random_hex(length): # 운영 체제에서 암호학적으로 안전한 무작위 바이트를 생성합니다. random_bytes = os.urandom(length // 2) # 16진수이므로 길이를 2로 나눕니다. # 바이트를 16진수 문자열로 변환합니다. hex_string = random_bytes.hex() return hex_string# 32길이의 16진수 난수를 생성합니다.random_hex = generate_random_hex(32)print(random_hex)
-
제대로 파는 자바스크립트(JavaScript) - by 얄코(Yalco)
무료가 저렇게도 긴대도
유료는 더더 긴 느낌이다.. 열심히 해야겠다..
-
스프링 핵심 원리 - 기본편
9분 13초 코드 실행 하면 객체 주소가 다 다른값이 나와요
강의에서는 다 같은 값으로 나오는데, 저는 왜 다른값으로 나올까요? ㅠ package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; public MemberServiceImpl(MemoryMemberRepository memoryMemberRepository) { this.memberRepository = memoryMemberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //테스트용도 public MemberRepository getMemberRepository(){ return memberRepository; } } package hello.core.member; public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; public MemberServiceImpl(MemoryMemberRepository memoryMemberRepository) { this.memberRepository = memoryMemberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } //테스트용도 public MemberRepository getMemberRepository(){ return memberRepository; } }package hello.core.order; import hello.core.discount.DiscountPolicy; import hello.core.member.Member; import hello.core.member.MemberRepository; public class OrderServiceImpl implements OrderService{ private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy; } @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } public MemberRepository getMemberRepositoryO() { return memberRepository; } } 강의코드
-
[취업폭격기] 공공기관 전산직(IT) 취업 준비를 위한 정규과정 (기초~고급)
지거국 지역할당제를 서울 공기업에 가능할지요?
안녕하세요? 개인적 궁금함이 있어서요. 지거국 출신이 지거국의 지역할당제 이용하는거는 해당 대학교의 지역에만 해당이지만, 지거국출신이란거로 서울권 공기업 들어가기는 이득이 있는지 궁금해서 질문 남깁니다
-
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
공부 방식 질문입니다.
안녕하세요일단 지금 현재 MVC패턴에서 view 분리 하는 과정을 듣고 있는데요, 이 과정들은 결국 spring MVC가 되는 과정을 배우고 있는거잖아요?강의를 보면서 과정도 대략 이해가 되고 코드작성도 잘 따라서 하지만, 강의를 보지 않고 다시 해보라고 하면 하지 못할 것 같습니다. 스스로 구현할 수 있을 만큼 완벽히 외우고 공부를 해야하는 건가요? 아니면 스프링MVC의 내부 그림을 이해하기 위한 정도의 흐름만 알면 되는건가요?
-
[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
질문있어요!
진지하게 고민이 있어요..코드를 작성할 때 이 부분에서 어떤게 나와야하는지 전혀 감이 안옵니다.예를들어서if(convertView == null){ convertView = LayoutInflater.from(parent?.context).inflate(R.layout.listview_item, parent, false) }이 부분에서 if(convertView==null){convertView = OOOOOOOOOO}OOOOOOOO부분에 어떤걸 적어야 할지 전혀 감이 안오는데 이런건 어떻게 공부해야하나요?또 각 함수에 인수값에 무엇을 넣어야할지 전혀 감이 안와요. 저런 부분을 별도로 강의를 듣거나 공부를해야하는건지..다른분들은 이에 대해 언급이 없으신 걸로 보아 저만 감을 못잡는거같아서 여쭤봅니다.
-
[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
정말 좋은 강의 감사합니다!
안녕하세요! 양질의 강의를 제공해주셔서 감사합니다.혹시 이러한 것을 상용화 및 상업화 할 수 있을만큼성능이 나올 수 있을까요?그리고 다양한 주행 환경에서(어둡거나 붉은 빛이 나거나 등)도졸음운전 인식이 가능할까요? 선생님의 견해가 어떠신지 고견 여쭙습니다 다시 한번 감사드립니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 소스 코드
현재 자바 기본편까지 듣고 스프링 입문 강의 수강 중입니다. 학업에 있어 건의드릴 사항이 있는데 강의 소스코드가 있었으면 좋겠습니다. 스프링 로드맵을 따라 쭉 공부할 예정인데 이 강의의 다음 강의인 스프링 핵심원리 기본편에도 강의 소스코드가 없는 것 같아 말씀드립니다.감사합니다.
-
윈도우 리버싱 (window reversing) 완벽 이해 - 레나 챌린지 풀이
PEID 질문드립니다.
개인적인 질문드립니다.A프로그램을 PEID를 이용해서 어떤 방법으로 패킹되었는지 알고 싶은데, nothing found* 표기만 도출됩니다. 혹시, 다른 방법으로 패킹 상태를 볼 수 없나요?
-
15일간의 빅데이터 파일럿 프로젝트
클라우데라 CCA 자격증 관련 문의
클라우데라 CCA 자격증 관련 문의강사님 안녕하세요? 강의를 듣다 하둡 관련 자격증을 찾아보니 CCA 자격증이 있던데 취득했을시 관련분야 취업에 우대를 해주는지 궁금합니다. 정보가 적어 여기에 문의 드립니다.
-
김영한의 실전 자바 - 기본편
스프링 입문 강의 듣기 전 어디까지 들어놔야 하나요?
스프링 입문 강의 시작 전에 김영한 님의 자바 문법 강의 중급, 고급까지 다 듣고 나서 들어아하나요? 아니면 이 실전 자바 기본편 학습 후에 바로 넘어가도 무방한가요?
-
워드프레스 제대로 개발하기 - 어드민 편
워드프레스 백엔드 개발
안녕하세요. 선생님, 궁금한 점이 있어 문의 드립니다. 제가 궁금한 것은 워드프레스를 통해 커스텀 사이트를 제작할 때 프론트단은 코드 삽입을 통해 가능하지만, 백엔드의 경우, 어떻게 만들수 있는지가 궁금합니다. 어드민편에서 알려주시면 방법인 외부 api 를 가져와서 쓰는 방법이 아닌 현업 개발과 같이 직접 디비 구축하여 api 만들고 프론드단에서 이 데이터를 가져오는 방식처럼 워드프레스에서 제작이 가능한지 여부가 궁금하고, 또 어떻게 개발하는 것인지가 궁금합니다.
-
15일간의 빅데이터 파일럿 프로젝트
맥북 사용
맥북 사용에 따라 vmware-fusion을 통해 실습 진행하려고 하는데 가상머신 구성해주신게 버츄얼박스에만 적용되나요???
-
[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
Simplify Add name 설정
조이스틱 프리팹을 단순명으로 바꾸려 하면 이미지에 보이는 에러문이 나오면서 적용되지 않는데 무슨 문제일까요?
-
CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
프레임워크
https://github.com/egoing/django-tutorial-src 현재 컴퓨터 공학과로 편입하고 군복무중입니다. 복무중 토이프로젝트(to do list) 하나정도는 만들고 cs의 기본은 떼고 가자해서 파이썬을 배우고 장고를 배우고 있었습니다. 그리고 디자인 패턴을 공부하고 가장 쉽게 가르친다는 생활코딩의 장고 강의를 보면서 하려고 하는데 위 링크의 myapp의 views.py에서 읽고 쓰고 수정하고 삭제하는 crud를 구현하는 코드를 잘 이해하지 못하겠어서 고민입니다. 분명 장고가 어떻게 구동되는 방식도 아는데 조금 무슨 개념을 몰라서 이해를 못하는지 답답합니다.제가 그 부분의 코드를 이해하려면 어떤 공부를 먼저 해야할까요..?
-
포트폴리오 시작이 고민이라면
[AI 노션포트폴리오 제이력서]“나만의 포트폴리오를 완성하지 못했다면 주목!”여섯가지 질문에 대답만 하면 24시간안에 나만의 맞춤형 포트폴리오가 띵-동 하고 도착합니다.2년차 이하 기획자/마케터/개발자 만족도 upgrade 😎 ! 후기가 증명합니다.아직 나만의 포트폴리오를 완성하지 못했다면, AI제이력서와 함께 자동 노션 포트폴리오를 완성해보세요 !🔥포트폴리오 무료 피드백 받을 수 있는 혜택까지🔥✅신청 : https://ai-jforce.oopy.io/✅금액 : 10,000원✅대상 : 아직 포폴 없는 기획자/PM, 마케터, 개발자