묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
sql 단축키
안녕하세요. sql에서 위와 같이 깔끔하게 정렬할 수 있게 도와주는 단축키가 뭐였나요?답변 미리 감사합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
프론트엔드와 백엔드의 과정
안녕하세요!! 제가 아직 개발에 대한 개념이 부족한지라..계속 프론트엔드와 백엔드가 어떻게 연동되는 지와 동작과정이 너무 궁금해서 이렇게 질문드립니다. 만약 프론트엔드 개발자와 백엔드 개발자가 따로 있다고 생각해보겠습니다!!저희의 library-app을 예시로 들면 프론트엔드 개발자가 React를 이용해 JS파일을 만들고 그거를 build해서 JS앱으로 만든 것을백엔드 개발자에게 전달해서 스프링부트 안에 집어 넣은거라고 이해하고 있습니다.그리고 당연히 CSR 방식이니까 처음 클라이언트가 페이지를 요청했을 때 서버는 빈 뼈대인 HTML에 JS에 접근할 수 있는 링크만을 포함해서 브라우저에 전달하고 브라우저는 다시 서버에 JS링크를 이용해 JS파일을 가져와서 그때부터 동적으로 UI를 만들어 클라이언트에 보여주는 것으로 알고있습니다. 여기서 1) JS링크라는 것이 아까 프론트엔드 개발자가 백엔드 개발자에게 전달한 JS파일에 접근하는 링크인 것 같은데 맞을까요?2) 제가 위에 설명한 과정이 전반적으로 맞을까요? 아 그리고 HTML이나 CSS같은 파일들도 React를 이용해 만드는 건가요?? 그리고 제가 조금 찾다보니 nginx같은 웹 서버가 따로 있더라고요.. 웹 서버가 정적인 파일 (HTML, CSS, JS)을 클라이언트에 전달하는 역할이라고 알고있습니다. 물론 WAS에서도 정적인 파일도 전달할 수 있지만 웹서버와 WAS로 나누는 게 더 낫다고 하더라고요.3) 그럼 저희의 library-app은 nginx나 apache같은 웹 서버를 이용하지 않고 WAS에서 바로 화면을 클라이언트에 전달하는 건가요??뭔가 강의랑 동 떨어진 질문같긴한데..ㅜ그래도 답변 부탁드리겠습니다...!!
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
컴퓨터 재시작 하니까 실행이 안됩니다..
https://drive.google.com/file/d/1BB9SitCiSG3ZyZ9G-U15W5IyIKKtjBeH/view?usp=drive_linkjava.lang.IllegalArgumentException: Unable to instantiate org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector [org.mybatis.spring.boot.autoconfigure.MybatisDependsOnDatabaseInitializationDetector]Caused by: java.lang.UnsupportedClassVersionError: org/mybatis/spring/boot/autoconfigure/MybatisDependsOnDatabaseInitializationDetector 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 59.0버전을 변경한적이 없는데 버전 업그레이드 하라는거 같습니다. 어떻게 해야 하나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
Mybatis forEach로 쓰는것과 Service에서 for문으로 Mapper 호출 중에 고민입니다
최근 회사에서 Mybatis로 개발중 고민이 생겨서 문의 드립니다. Mybatis로 forEach 사용하여 List를 Insert, Update 할때는에러나면 몇번째 index에서 에러 났는지 알수없음으로Service 단에서 List 길이 만큼 for문 돌려서 Mapper를 쓰잔 의견을 받았습니다Service 단에서 for문으로 돌리면 log도 찍을수 있고, 어떤 index에서 에러났는지도확인 할 수 있단 장점이 있다고 들었습니다Mybatis에서 forEach 쓰는것과, Service에서 for문 돌려서 Mapper 호출 계속 하는것중에 뭐가 맞는건지 알 수 있을까요? 주니어 개발자인데 회사에 Spring 사용하는 시니어 개발자분이 없어서 문의드립니다..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
질문 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 지금 개발하시는 jpa는 스프링 jpa가 아닌 순수 jpa로 개발하시는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
contoller단 질문입니다.
첫번째코드는 jpa1탄 이고, 두번째코드는 jpa2탄 입니다. 2개 다 contoller단인데 1탄은 html에서만 동작하고 2탄은 postman에 같은곳에서 동작하는건가요? 근데jpa2탄 api만 놔두어도 정상작동은 되는데 원래 이런건가요? @PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long id = memberService.join(member); return new CreateMemberResponse(id); }@PostMapping("/members/new") public String create(@Valid MemberForm form, BindingResult result) { if (result.hasErrors()) { return "members/createMemberForm"; } Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode()); Member member = new Member(); member.setName(form.getName()); member.setAddress(address); memberService.join(member); return "redirect:/"; }
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
App.jsx에서 RouterProvider
안녕하세요. 강의 따라서 진행하였는데요. localhost:8080으로 접속하면 아무것도 뜨지 않아서요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컬렉션 연관관계 페이징
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 페이징 처리에 대해서 질문이 있습니다. 엔티티로 조회를 하든지 DTO로 조회를 하든지 둘 다 컬렉션은 페이징 처리할 때 조회할 수 없는 것으로 알고 있는데요.만약, 해당 컬렉션이 리스트 조회 조건에 포함되어 있다면 어떻게 처리하면 좋을까요? @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = {"id", "name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); @OneToMany(mappedBy = "team") private List<Skill> skills = new ArrayList<>(); public Team(String name) { this.name = name; } } 예를 들어서 위와 같이 Team 엔티티가 있고, OneToMany 컬렉션으로 member와 skill 엔티티를 가지고 있습니다.Team 엔티티를 페이징 처리해야 하는데, 검색 조건에 skill=[스킬1, 스킬2] , member=[멤버1, 멤버2] 가 있다고 하면 페이징처리할 때부터 where조건에 저 컬렉션을 넣어줘야 할 것 같은데, 페이징할 때는 컬렉션을 같이 조회하면 안된다고 알고 있어서 어떻게 해결해야 할지 고민입니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
영상이 검정색으로 화면이 안보여요...
영상 실행은 되는데 화면이 검정색으로 뜨고 아무것도 안보여용...어제만 해도 별문제 없엇는데 확장프로그램 문제인가 해서 사파리로도 들어갔는데 똑같이 어둡게 나오네요... 혹시 다른 강의도 그런가 하고 다른분 강의 켜봤는데 그분 강의는 잘 화면이 나오고 여기 해당 강의만 어둡게나와요! 근데 아이패드로 접속해서 틀면 제대로 나오는데.. 노트북에서 보고 싶은데 해결방법이 뭘까요... 추가적으로 강력새로고침해서 캐시도 지워보고 시크릿모드에서도 해보고 다해봤는데도 같은 현상입니다. 혹시해서 확장프로그램 삭제하고 노트북도 껏다 켜봤습니닥 ㅠㅠ...
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
임베디드 데이타 베이스를 테스트가 아닌 운영코드에 사용이 가능한가요?
임베디드 모드는 h2데이타베이스만은 ㅣ기능인거 같은데 테스트코드가 아닌곳에서도 이용이 가능한가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
임베디드 모드 DB finditems test오류
섹션 3. 데이터 접근 기술-테스트 부분을 진행하던중 임베디드 모드 DB부터 finditems 부분에서 test fail이 발생합니다. transaction 문제 같은데 오류를 못찾겠네요. 참고로 이전 testcase의 h2데이터베이스도 모두 delete했습니다! 구글 드라이브에 압축파일 같이 첨부합니다.https://drive.google.com/file/d/1n7RxuytuS5MgEG8ctRhQrs9Hx_7r7XFq/view?usp=sharing
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
수동 빈 등록에서 기초적인 부분인것 같은데 질문 드립니다..
ItemServiceApplication에서 @Import를 통해서 config를 임포트 받는 이유가 무엇인가요? 로드맵 첫 강의인 스프링 입문에서는 @Import를 해주지 않았는데 본 강의에서는 적용되어있는 이유가 궁금합니다. 또 config 패키지로 구분되어있는 곳의 config 하나를 (메모리컨피그를 이용했습니다) itemservice패키지 바로 하위로 이동하여 주었고 Itemservice패키지 하위로 이동한뒤 ItemServiceApplication에서 @Import를 제거하니까 실행이 안되는데 그 이유가 있나요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
cropper 오류 문제로 질문드립니다..
좋은 강의 덕분에 공부를 열심히 잘 하고 있습니다 선생님 감사드립니다. 다름이아니라 이번 강의 중 cropper 사용에서 똑같이 설치 후이미지 파일을 불러오면 Uncaught TypeError: $newImage.cropper is not a function at reader.onload 지정된 함수가 아니라고 뜨는데 cropper가 안 먹혀서 그런 걸까요 ㅠㅠ..? 서치하고 코드를 계속 봐도 답이 나오지 않아 이렇게 질문 드립니다..
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
update에서 new BeanPropertySqlParameterSource()사용시 문제
강의에서 update부분을 new BeanPropertySqlParameterSource()로 변경해서 사용해 보았는데 수정이 정상적을 이루어 졌습니다. I’d가 어떻게 자동으로 매핑이 되는건가요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
예외처리 질문
안녕하십니까, 현재 섹션3까지 수강하였는데 예외처리에 대해 궁금한 점이 생겨 질문드립니다.아직 예외상황 발생시 백엔드와 프론트엔드에서 무엇을 해야할 지 잘 모르겠는데 예외가 발생했을때 백엔드에서는 어떤 정보를 넘겨줘야하나요? 강의에서처럼 상태코드와 메시지만 넘겨주면 백엔드에서 할 일은 끝인가요?마찬가지로 프론트에서도 어떻게 대처하는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 필드 순서에 대해 질문드립니다.
@Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) // @ManyToOne @JoinColumn(name = "member_id") private Member member; @JsonIgnore @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @JsonIgnore @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) // @OneToOne @JoinColumn(name = "delivery_id") private Delivery delivery; private LocalDateTime orderDate; //주문시간 @Enumerated(EnumType.STRING) private OrderStatus status; //주문상태 [ORDER, CANCEL] 이렇게 작성하면 보면 h2에서 필드에 작성한대로 id ||member || delivery 이렇게 나와야 하는데저는 member || delivery ||id 이렇게 나 순서가 보장되지 않게 나옵니다.인터넷에 찾아보니 엔티티 필드 순서가 데이터베이스의 컬럼 순서를 결정하지 않기 때문에 schema-generation.scripts.create-target을 주어야 한다고 나와있는데 해당 강의 코드를 보아도 저런 걸 설정하지 않았는데 강의에서는 어떻게 필드가 순서가 보장이 되었나요?1번답변을 https://www.inflearn.com/questions/17359/hbm2ddl-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%83%9D%EC%84%B1%EC%8B%9C-%EC%BB%AC%EB%9F%BC-%EC%88%9C%EC%84%9C-%EC%88%98%EC%A0%95-%EB%B0%A9%EB%B2%95여기서 찾았는데요. 실무에서는 ddl을 직접입력하라는건데요. 그런데 궁금한점이 실무에서는 fechjoin이나 joincolum을 안쓰나요? ddl을 입력하는거면 joincolum(외래키)까지 같이입력하는거 아닌가요? 2. @ManyToOne 컬럼에서 조인할 때 데이터 테이블명을 기준으로 조인하고 OneToMany는 mappedBy 할 때 클래스명을 기준으로 하는것처럼 보입니다. 혹시 이유 좀 알 수 있나요? OneToMany에서 자기 자신을 바라봐서 mapped by여도 참조는 둘다 똑같이 클래스로 들어가거나 테이블명으로 들어가야 하는거 아닌가요?3.엔티티 설계시 주의점 24분에서 질문이있습니다. 아래처럼 연관관계 메소드는 중심이 되는지점에 입력하라고 하셨는데요. member 메소드에는 왜 getOrders() 에서 add()이고 orderItem은 왜 그냥 add(orderItem);만 붙나요? 저는 orders가 리스트라서 getOrders로 붙이는 줄 알았는데 orderItems도 리스트라서요. 그리고 orderItem에서 가르키는 this는 무엇인가요? 매소드 내에서 this가 없어요. this 우선순위가 메소드 내부에 this가 있을 때 this를 지칭하고 나머지는 클래스를 지칭하는건가요?// setMember 메서드는 Order 객체에 Member 객체를 연결하고, 역방향으로도 Member의 주문 목록에 이 Order를 추가합니다. public void setMember(Member member) { // 현재 Order 객체의 member 필드에 매개변수로 받은 Member 객체를 할당합니다. this.member = member; // Member 객체의 getOrders 메서드를 호출해 주문 목록을 가져온 뒤, 현재 Order 객체(this)를 그 목록에 추가합니다. // 이는 Member 객체 내부의 주문 목록에도 현재 Order 객체가 포함되도록 하는 역방향 연결을 설정합니다. member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 설계시 주의점에대해서 질문있습니다.
class Order {@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)public class Member { @JsonIgnore @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>();엔티티 설계시 주의점 20분에서 21분사이에서 아래처럼 진행되기 때문에 cascade = CascadeType.ALL가 필요하다고 하셨는데요.persistence(orderitema)persistence(orderitemb)persistence(orderitemc)persistence(order)Member 도 @OneToMany인데 cascade를 왜 안하시나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
섹션 8 .. API서버에서 사용자 정보 추출하기(2) 질문입니다.
accessToken을 넘기는데 undefined가 떠서 컨트롤러에 오지 못하는 거 같습니다. socialcontroller 입니다. 리액트 kakaoAPI.js 입니다. accessToken을 쿼리스트링으로 잘 보내고받는 코드는 맞는거 같은데 왜 undefined가 뜨는지 모르겠습니다...
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
경로 표현식을 사용하면 묵시적 조인에 해당하나요?
경로 표현식을 사용한다는 것은 묵시적 조인을 사용하는 것과 같은 의미인가요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
여러방식의 데이터접근기술을 같이 사용하는 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]기본적으로 JPA 를 통해 DB 접근을 하지만 몇몇 쿼리들을 JdbcTemplate 를 활용해 DB접근을 한다고 가정한다면 일반적으로 어떤식으로 구조를 만들어내는지 궁금합니다. ItemRepository 인터페이스를 구현한 JpaTemplate 를 만들어 ItemRepository 를 주입받을 때 그 구현체로 JpaTemplate 가 주입되게 하되, JdbcTemplate 는 ItemRepository 구현체가 아닌 별도의 컴포넌트로 만들어 필요한 부분에서는 별도로 주입받아 사용하게 되는걸까요?