inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

04. DB 파트 기출 해설(실기 4번)

미해결

윤파고의 정보처리기사 DB/프로그래밍 All-In-One

해당 강의는 무료 제공 강의이기에 별도의 강의 내용 코칭은 제공해드리고 있지 않고 있습니다. (단, 내용 오류 신고는 지속적으로 받고 있으며, 기존에 신고 받았던 내용은 영상 상세 설명란에 참조 내용으로 적혀있습니다) 수익을 내지 않는 무료 제공 강의다보니 내용 오류나 오탈자가 있을 수 있습니다. 내용 오류는 dbswjdgkssla@naver.com 으로 신고해주시면 주기적으로 검토해서 반영하고 있습니다. (단순 오탈자는 건당 100원, 단순 오탈자가 아닌 내용 오류 신고는 건당 1000원의 신고 포상금을 드리고 있습니다) 강의에 오류가 있는 부분은 강의 내용에 사전 안내가 되어 있습니다, 해당 오류는 유튜브에서 이미 인지한 오류이며, 올인원 교재 업데이트(24년) 전까지 한 강씩 차례로 수정 반영될 예정입니다. 04번 해설에서 SELECT COUNT(COL2) .... 이니깐 개수를 셀 때는 COL2에서 NULLL 값을 제외하고 계산하니깐 4개인거 아닌가요? 강의에서는 COL1에서 NULL 값을 제외하고 4개를 세시는데 헷갈리네요. 제가 잘못 이해한 부분이 있는거라면 그 부분에 대해서 설명 부탁드립니다.

  • python
  • java
  • c
  • dbms/rdbms
  • 정보처리기사
댓글 3 좋아요 0 조회수 431

이제 기출 무한 반복 들어가려고 합니다~

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

기본 강의는 모두 봤고 이제 기출로 익혀보려고 합니다. 그런데 선생님 강의 보는 사람들의 오픈채팅이 있으면 더 도움 되겠다는 생각이 드네요 강의 중간 중간에 오류도 보이는데 그때마다 게시판에 적을수도 없고... 다른 분들의 질문을 통해서 더 이해되는 부분이 있지 않을까 싶기도 해서 시작하시는 초반이라 서로 도움이 되지 않나 싶어요~ 흐름이 빠르다 보니 아쉬운 점이 있지만.. 시험용 강의로 참 좋네요

  • python
  • java
  • c
  • 정보처리기사
이성미 댓글 1 좋아요 0 조회수 257

DTO의 사용 범위와 Controller에서 엔티티 생성 가능 여부

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요. 해당 강의를 수강하다 궁금증이 생겨 질문 드립니다. 강의에서는 MemberService 같은 경우에 @Transactional public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } 이런식으로 엔터티를 파라미터로 받고, MemberApiController 같은 경우에는 @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); } 별도의 DTO를 파라미터로 받아 member 엔티티 객체를 생성하여 set 해주는 식으로 진행하였는데, (set 말고 생성메소드를 이용해야하는건 알아요!) 1. 엔티티를 외부에 노출하면 안되고, API 스펙이 바뀌어도 문제가 생기지 않기 위해 Controller단에 파라미터 및 반환값에 DTO를 사용하는 것은 당연하다. 그렇다면 서비스나 리포지토리에서는 파라미터로 엔티티를 받아야 하나요? DTO를 받아야 하나요?? 2. 만약 DTO를 Controller에서만 받고, Service단에서 파라미터로 엔티티를 받는다면, Controller 단에서 엔티티 객체를 생성하여 Dto의 정보를 넣어준 뒤 Service단으로 보내줘야하는데, Controller단에서 엔티티를 생성하는 것이 괜찮은 방법인가요? 어떤게 더 좋은 방법이고, 실무에서 더 많이 쓰는 방법인지, 어떤 장단이 있는지도 궁금합니다.

  • java
  • spring
  • spring-boot
  • jpa
양성준 댓글 1 좋아요 0 조회수 428

querydsl 의 offset 정의가 헷갈립니다.

미해결

실전! Querydsl

repository에 1,2,3,4,5를 차례로 저장하고 offset을 1로, limit을 2로해서 조회하면 [2,3], [4,5]가 조회되는건가요? 아니면 [3,4] ,[5]가 조회되는건가요? offset이 0부터시작인데 1로 지정하면 2페이지부터 조회한다는건지? 두번째 데이터부터 페이징을 시작한다는건지요?

  • java
  • jpa
정중한 개구리 댓글 2 좋아요 1 조회수 400

추상클래스 인스턴스 생성할 문제를 방지

미해결

김영한의 실전 자바 - 기본편

안녕하세요 강사님 추상 클래스 덕분에 실수로 인스턴스를 생성 할 문제를 근본적으로 방지한다고 하셨는데, 인스턴스를 생성할 근본적인 문제가 어떤 것인가요? 아직 추상 클래스를 사용하는 이유를 잘 모르겠습니다...

  • java
  • 객체지향
딩띵 댓글 1 좋아요 0 조회수 220

JSON API 활용하기(JSON-Java)

미해결

Java TPC 실전프로젝트 (Java API 활용)

package TPC; import org.json.*; public class Project01_Bd { public static void main(String[] args ) { // JSON-Java(org.json) JSONArray students = new JSONArray(); //JSONArray 생성 JSONObject student = new JSONObject(); // JSONObject객체생성 student .put( "name" , "홍길동" ); // key와 value쌍으로 이루어진 구조인 put메서드를 사용해서 studunt에 데이터를 집어넣는다. student .put( "phone" , "010-1111-1111" ); student .put( "address" , "서울" ); //여기까지가 한사람의 JSON 객체다. System. out .println( student ); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"} // 여기까지 우리가 JSON으로 굳이 객체를 만들지 않더라도 제이슨 구조가 바로 만들어진다. students .put( student ); System. out .println( student ); //{"address":"서울","phone":"010-1111-1111","name":"홍길동"} student = new JSONObject(); // 새로운 인스턴스 생성되어 변수에 할당되어 이전 인스턴스에 대한 참조가 대체 (홍길동 -> 나길동) student .put( "name" , "나길동" ); student .put( "phone" , "010-1111-1111" ); student .put( "address" , "서울" ); students .put( student ); //배열은 호출 시점에 객체에 대한 참조를 보유하므로 홍길동 -> 나길동으로 재할당 되었더라도 배열은 원래 객체에 대한 참조를 유지한다. System. out .println( student ); //{"address":"서울","phone":"010-1111-1111","name":"나길동"} System. out .println( students ); //[{"address":"서울","phone":"010-1111-1111","name":"홍길동"},{"address":"서울","phone":"010-1111-1111","name":"나길동"}] } } student라는 객체를 홍길동에서 나길동으로 재할당했는데, 배열은 호출시점에 객체에 대한 참조를 보유해서 재할당하더라도 배열은 이전 객체에 대한 참조를 유지한다고 하는데.. 그러면 홍길동은 배열에선 살아있는거고 (?) student 객체에서는 사라진건가요..?....... 그리고 JSONObject에서 put메서드가 key-value 쌍이라고 설명하셨는데, JSONArray는 왜 put메서드를 객체로 저장하나요? put메서드는 객체에 저장하는지 배열에 저장하는지에 따라 구조가 달라지는건가요?

  • java
  • 배열
  • 객체
  • put메서드
뇽뇽이 댓글 2 좋아요 0 조회수 359

문제와 풀이4 - Queue

미해결

김영한의 실전 자바 - 중급 2편

안녕하세요 영한님 🙂 항상 감사한 마음으로 강의 잘 듣고 있습니다 ㅎㅎ 별거 아닌 오탈자이긴 한데, 큐 두번째 문제에서 실행 결과 부분 오탈자가 있어서 말씀드립니다! "작업 시작" -> "==작업 시작==" "작업 완료" -> "==작업 완료=="

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
갈색곰 댓글 2 좋아요 0 조회수 257

HelloDice, HelloSum 리팩토링 문제 풀이!

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 바로 전에 AnonymousOuter 참고해가며 이렇게 해봤는데 출력 결과는 동일하게 나오는데 혹시 잘못된 부분있거나 부족한 부분있으면 조언 부탁드립니다. package nested.anonymous.ex; import java.util.Random; public class Ex1Main { public void hello(String str) { System.out.println("프로그램 시작"); Process process = new Process() { @Override public void run() { if (str.equals("DICE")) { // 코드 조각 시작 int randomValue = new Random().nextInt(6) + 1; System.out.println("주사위 = " + randomValue); // 코드 조각 종료 } else if (str.equals("SUM")) { // 코드 조각 시작 for (int i = 0; i < 3; i++) { System.out.println("i = " + i); } // 코드 조각 종료 } } }; process.run(); System.out.println("프로그램 종료"); } public static void main(String[] args) { Ex1Main ex1Main = new Ex1Main(); ex1Main.hello("DICE"); ex1Main.hello("SUM"); } }

  • java
  • 객체지향
vivajayyy 댓글 1 좋아요 0 조회수 223

안녕하세요 jdk 질문드려요

해결됨

토비의 스프링 6 - 이해와 원리

안녕하세요! 토비님 같은 버전의 jdk에서도 zulu나 강의에서 예시로 다운받으신 liberica와 같이 회사가 다른데 혹시 그들만의 차이점이 있을까요?

  • java
  • spring
정호빈 댓글 1 좋아요 0 조회수 435

안녕하세요 선생님

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

강의명 중 반복문+조건문 문제풀이 쪽에 문제 다운로드하는 링크는 따로 없을까요? 수업 자료 라고 떠서 확인해보니 다른 커리큘럼에는 수업자료를 받을수 있게 설정이 되어있는데 해당 과목 쪽만 다운로드 링크가 없어서 문의 드립니다!

  • python
  • java
  • c
  • 정보처리기사
봉달 댓글 2 좋아요 0 조회수 301

MemberJpaRepository 테스트 오류

해결됨

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] \querydsl\src\test\java\study\querydsl\repository\MemberJpaRepositoryTest.java:21: error: cannot find symbol MemberJpaRepository memberJpaRepository; ^ symbol: class MemberJpaRepository location: class MemberJpaRepositoryTest MemberJpaRepository 테스트 오류를 어떻게 확인해야되나요 동일하게 질문하신 분이 계신데 드라이브 통해서 파일 올리라고만 답변되어있어서 질문 드립니다. 강의와 같은 경로에 repository 생성 후 테스트를 돌리면 심볼 오류가 납니다. 확인 부탁드립니다!! generated/study/querydsl/repository/ MemberJpaRepository 소스 코드 경로 https://drive.google.com/file/d/1wV-xy9-oUE0TgfONiumr5dr2TniGHdj_/view?usp=sharing

  • java
  • jpa
배배배 댓글 1 좋아요 1 조회수 238

반복문 + 조건문 문제 풀이 강의 중

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요 쌤c언어 문제에서 i % 3 이 0이 나오려면 3의 약수가 아니라 3의 배수 아닐까해서 여쭤보고자 질문드립니다!3, 6, 9 이런 식으로 말이죠 :)

  • python
  • java
  • c
  • 정보처리기사
ds0794 댓글 1 좋아요 0 조회수 273

19강 TakeIf 질문

미해결

자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)

강사님 안녕하세요. 우선, 좋은 강의 감사합니다. 19강.코틀린의 이모저모 학습 중 이해되지 않는 부분이 있어서 질문드립니다. takeIf 을 설명하실 때 getNumberOrNull 함수와 getNumberOrNullV2 함수가 동일한 코드라고 설명해주셨는데요. 강의에서 takeIf 확장 함수는 주어진 조건을 만족하면 그 값을, 만족하지 않는다면 null 을 반환한다고 설명해주셨는데, 그러면 getNumberOrNull 함수의 반환 값이 반대로 된 것이 아닌가요? 오히려 getNumberOrNull 함수는 takeUnless 를 사용하는 getNumberOrNullV3 함수와 동일하다고 생각됩니다. 저는 아래와 같이 이해했는데.. 혹시 제가 잘못 이해한건지, 아니면 강의자료에 오타가 있으신건지 궁금합니다~~ // takeIf 구현 fun getNumberOrNull(): Int? { return if (number <= 0) number // 해당 조건이 맞으면 해당 값을 반환 else null // 아니면 Null을 반환 }

  • java
  • kotlin
  • 객체지향
LEE-YOONSEON 댓글 1 좋아요 2 조회수 215

500 에러

미해결

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다.: 500 에러 뜨면서 자꾸 실행이 안됩니다. 이거 tomcat 설정에 jdk 버전이랑 뭐 안 맞다고 하는 오류 떄문에 그런 것 같은데 설정해봐도 안 되고 미치겠네요

  • java
  • jsp
Hugh Park 댓글 1 좋아요 0 조회수 272

/api/v1/members 버그

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강사님처럼 코드를 다음과 같이 작성했습니다. MemberApiController.java package jpabook.jpashop.api; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.AllArgsConstructor; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.stream.Collectors; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @GetMapping("/api/v1/members") public List<Member> membersV1() { return memberService.findMembers(); } @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long id = memberService.join(member); return new CreateMemberResponse(id); } @PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long joinedMemberId = memberService.join(member); return new CreateMemberResponse(joinedMemberId); } @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); memberService.update(id, request.getName()); return new UpdateMemberResponse(id, request.getName()); } @Data static class CreateMemberRequest { @NotEmpty private String name; } @Data @AllArgsConstructor static class CreateMemberResponse { private final Long id; } @Data static class UpdateMemberRequest { @NotEmpty private String name; } @Data @AllArgsConstructor static class UpdateMemberResponse { private Long id; private String name; } } MemberService.java package jpabook.jpashop.service; import jpabook.jpashop.domain.Member; import jpabook.jpashop.repository.MemberRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class MemberService { private final MemberRepository memberRepository; /* * 회원 가입 * */ @Transactional public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } /* * 중복 확인 메서드 * */ private void validateDuplicateMember(Member member) { List<Member> findMembers = memberRepository.findByName(member.getName()); if (!findMembers.isEmpty()) { throw new IllegalStateException("이미 존재하는 회원입니다."); } } // 회원 전체 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Member findOne(Long memberId) { return memberRepository.findOne(memberId); } @Transactional public void update(Long id, String name) { Member member = memberRepository.findOne(id); member.setName(name); // 영속성 컨텍스트에서 엔티티를 수정하면 트랜잭션 커밋 시점에 변경 감지(Dirty Checking)가 동작한다. } } MemberRepository.java package jpabook.jpashop.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jpabook.jpashop.domain.Member; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import java.util.List; // 컴포넌트 스캔에 의해 // 스프링 빈에 자동으로 등록 @Repository @RequiredArgsConstructor public class MemberRepository { private final EntityManager em; public void save(Member member) { em.persist(member); } public Member findOne(Long id) { return em.find(Member.class, id); } public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } public List<Member> findByName(String name) { return em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); } } Member.java package jpabook.jpashop.domain; import jakarta.persistence.*; import jakarta.validation.constraints.NotEmpty; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; @NotEmpty private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } 그리고 postman으로 localhost:8080/api/v1/members로 호출을 하게 되면 다음과 같이 무지막지하게 많은 양의 결과가 나옵니다. 왜 그러는 걸까요?

  • java
  • spring
  • spring-boot
  • jpa
박동규 댓글 1 좋아요 0 조회수 235

개발환경 세팅에서 질문있어요.

미해결

토비의 스프링 6 - 이해와 원리

안녕하세요. 토비님. 좋은 강의 만들어주셔서 감사합니다. 질문이 하나 있습니다. 개발환경 세팅에서 bash 명령어를 추천해주는 툴? 플러그인을 사용하고 있는것으로 보이는데요. 무엇인지 알려주시면 좋겠습니다.

  • java
  • spring
안용상 댓글 1 좋아요 0 조회수 379

지역 클래스-지역 변수 캡쳐2 질문

미해결

김영한의 실전 자바 - 중급 1편

안녕하십니까 깊은 내용 쉽게 가르쳐 주셔서 정말 감사합니다. 질문이 있습니다. public static void main(String[] args) { OuterClassV2 outerClassV2 = new OuterClassV2(); Printer innerPrinter = outerClassV2.process(1); innerPrinter.print(); Field[] fields = innerPrinter.getClass().getDeclaredFields(); System.out.println(fields.length); for (Field field: fields) { System.out.println(field.getName()); } } 위 메서드 실행시에 public Printer process(final int paramVal) { int localVal = 2; // 여기 class InnerPrinter implements Printer{ private final int val = 3; @Override public void print() { System.out.println("val = " + val); System.out.println("localVal = " + localVal); System.out.println("paramVal = " + paramVal); System.out.println("outerClassVal = " + outerClassVal); } } return new InnerPrinter(); } 위와 같이 int localVal = 2 처럼 암묵적 final을 이용하면 지역 클래스에 캡쳐되는게 확인 됩니다 하지만 final int localVal = 2 처럼 명시적으로 하면 지역클래스가 캡쳐되지 못하는데 이유가 무엇일까요? 크게 중요한 문제는 아니지만 궁금하였습니다. 감사합니다.

  • java
  • 객체지향
luxleo 댓글 2 좋아요 0 조회수 303

build.gradle 에러

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] build.gradle에서 에러가 발생합니다 자바 버전 17 사용했습니다 Could not apply requested plugin [id: 'io.spring.dependency-management', version: '1.1.5'] as it does not provide a plugin with id 'io.spring.dependency-management'. This is caused by an incorrect plugin implementation. Please contact the plugin author(s).> Plugin with id 'io.spring.dependency-management' not found.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
rkwjdch 댓글 1 좋아요 0 조회수 561

테스트 코드 연결하는데 데베에 문제가 있다고 하네요

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

Caused by: org.hibernate.HibernateException: 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) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:143) ~[hibernate-core-6.4.4.Final.jar:6.4.4.Final] 이런식의 오류가 났는데 데베설정이 잘못돼서 그런건가요 코듣상의 문제는 없는거 같습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
오키 댓글 2 좋아요 0 조회수 5505

강의내용 변경 시 알 수 있는 방법이 있을까요 ?

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

코딩 강의는 다 수강했는데, 혹시라도 강의내용이 변경되면 알 수 있는 방법이 있을까요 ?

  • python
  • java
  • c
  • 정보처리기사
rokkk 댓글 1 좋아요 0 조회수 240

인기 태그

인프런 TOP Writers

주간 인기글