inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

빈 문자열과 빈 문자 조건문 참거짓

해결됨

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

#include <stdio.h> int main() { char str[] = ""; if (str[0]) { printf("빈 문자열은 참입니다.\n"); } else { printf("빈 문자열은 거짓입니다.\n"); } if ("") { printf("빈 문자는 참입니다.\n"); } else { printf("빈 문자는 거짓입니다.\n"); } return 0; } 온라인 컴파일러에서 이렇게 출력을 해봤을 때 if(str[0]) 이 조건문은 거짓이라 나오고 if("") 이 조건문은 참이라고 나오는데 빈 문자열은 거짓이지만 빈 문자는 참인건가요?

  • python
  • java
  • c
  • 정보처리기사
김령현 댓글 2 좋아요 0 조회수 89

반복문 버전 2 에서 46분대

해결됨

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

한번 while문을 돌고 나서 표를 그린다고 생각하면, 답이 틀린건 아니지만 num이 3이 찍힐때 count는 1이 찍혀야 맞는것 같습니다. 또는 표 위치를 count가 0일때, num은 3이찍힌다. 식으로 count 위 num 아래로 순서를 바꿔야 할것 같습니다.

  • python
  • java
  • c
  • 정보처리기사
조창호 댓글 2 좋아요 0 조회수 91

2.8 페이지별 라우팅 설정에 강의 이외 과제를 하다가 막힌 부분이 있어 문의드립니다.

미해결

한 입 크기로 잘라먹는 Next.js

해당 화면에서 강의와 비슷하게 검색기능을 누르거나 엔터키를 치면 search결과가 나오도록 코드를 짰는데, 에러도 나오지 않고 아무것도 나오지않아. 이리저리 해보다가 우선 문의를 남깁니다! 파일 구조는 아래와 같습니다! index.tsx import SearchableLayout from "@/components/searchable-layout"; import { ReactNode } from "react"; export default function Home() { return <h1>ONEBITE CINEMA</h1>; } Home.getLayout = (page: ReactNode) => { return <SearchableLayout>{page}</SearchableLayout>; }; searchable-layout.tsx import { useRouter } from "next/router"; import React, { ReactNode, useEffect, useState } from "react"; import style from "./searchable-layout.module.css"; export default function SearchableLayout({ children, }: { children: ReactNode; }) { const router = useRouter(); const [search, setSearch] = useState(""); const q = router.query.q as string; useEffect(() => { setSearch(q || ""); }, [q]); const onSubmit = () => { router.push(`/search?q=${search}`); }; const onChangeSearch = (e: React.ChangeEvent<HTMLInputElement>) => { setSearch(e.target.value); }; // Enter 키 입력 이벤트 const onkeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.key === "Enter") { onSubmit(); } }; return ( <div> <div className={style.searchbar_container}> <input value={search} onChange={onChangeSearch} placeholder="영화를 입력해주세요..." onKeyDown={onkeyDown} /> <button onClick={onSubmit}>검색</button> </div> {children} </div> ); } global-layout import Link from "next/link"; import { ReactNode } from "react"; import style from "./global_layout.module.css"; export default function GlobalLayout({ children }: { children: ReactNode }) { return ( <div className={style.container}> <header className={style.header}> <Link href={"/"}>ONEBITE CINEMA</Link> </header> <main className={style.main}>{children}</main> </div> ); } search - index.tsx import SearchableLayout from "@/components/searchable-layout"; import { useRouter } from "next/router"; import { ReactNode } from "react"; export default function Page() { const router = useRouter(); const { q } = router.query; return <h1>검색결과 {q}</h1>; } Page.getLayout = (page: ReactNode) => { return <SearchableLayout>{page}</SearchableLayout>; }; 위와 같이 구성되어있고, 도저히 제가.. 찾지 못하여 문의드립니다 후.. 아마 input쪽이나 search.tsx에 문제가 있는거 같은데 좀 자괴감이 드네요.. 일어나서 다시한번 살펴볼 예정입니다! 다른분들 git도 궁금해서 봤는데 코드는 너무 똑같은데 대체 뭐가 다른 지 모르겠네요..

  • react
  • typescript
  • next.js
ssi02014 댓글 4 좋아요 0 조회수 231

org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing 오류

미해결

스프링부트에서 Thymeleaf를 이용해 회원가입 폼을 만들고 있는데 폼에 입력을 제대로 하면 의도한대로 회원가입이 잘 됩니다. 하지만 폼에 아무것도 입력하지 않으면 유효성 검사에서 @NotBlank를 만나서 그에 맞는 에러 메시지를 출력해야 하는데 저렇게 오류가 뜨네요... 대체 이유가 뭘까요 ㅠㅠ 제 회원가입 코드는 다음과 같습니다. User.java (Entity) @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor @Entity(name="users") //테이블 이름 public class User { @Id //기본키 = userid @GeneratedValue(strategy = GenerationType.IDENTITY) private long userid; @Column(unique = true) //아이디 중복 방지 private String username; private String password; @Column(unique = true) //이메일 중복 방지 private String email; } RegisterDTO.java (DTO) @Getter @Setter @Builder @AllArgsConstructor @NoArgsConstructor public class RegisterDTO { @NotBlank(message = "아이디를 입력하세요.") private String username; @NotBlank(message = "비밀번호를 입력하세요.") private String password; @NotBlank(message = "이메일을 입력하세요.") private String email; } UserController.java (컨트롤러) @Controller @RequiredArgsConstructor public class UserController { private final UserService UserService; @GetMapping("/register") // 유저 등록 창 불러오기 public String ShowRegister(Model model) { model.addAttribute("userDTO", new RegisterDTO()); return "register"; } @PostMapping("/register") // 유저 등록 public String Register(@Valid RegisterDTO userDTO, BindingResult result, Model model) { if (result.hasErrors()) { // 유효성 오류 발견 System.out.println("유효성 오류"); return "register"; } try { UserService.saveDTOUser(userDTO); // 유저 등록 } catch (IllegalArgumentException e) { // 중복된 사용자 발견 System.out.println("예외 처리"); model.addAttribute("error", e.getMessage()); return "register"; } return "redirect:/userlist"; } } UserService.java (서비스) @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; public void saveDTOUser(RegisterDTO userDTO) { if (userRepository.existsByUsername(userDTO.getUsername())) { throw new IllegalArgumentException("이미 등록된 아이디입니다."); } if (userRepository.existsByEmail(userDTO.getEmail())) { throw new IllegalArgumentException("이미 등록된 이메일입니다."); } User user = User.builder() .username(userDTO.getUsername()) .email(userDTO.getEmail()) .password(userDTO.getPassword()) .build(); userRepository.save(user); } } register.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Register User</title> </head> <body> <h1>Register User</h1> <form th:action="@{/register}" method="post" th:object="${userDTO}"> <label for="username">username:</label> <input type="text" id="username" name="username" th:field="*{username}" /> <div th:if="${#fields.hasErrors('username')}" th:errors="*{username}"></div> <br> <label for="password">Password:</label> <input type="password" id="password" name="password" th:field="*{password}" /> <div th:if="${#fields.hasErrors('password')}" th:errors="*{password}"></div> <br> <label for="email">email:</label> <input type="text" id="email" name="email" th:field="*{email}" /> <div th:if="${#fields.hasErrors('email')}" th:errors="*{email}"></div> <br> <div th:if="${error}" class="error"> <p th:text="${error}"></p> </div> <button type="submit">Register</button> </form> <br> <a th:href="@{/userlist}">Back to User List</a> </body> </html> 컨트롤러에서 작성한 "유효성 오류", "예외 처리" 구문은 잘 나오더라구요. 그러면 유효성 검사는 잘 수행하는거 아닌가요?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
과넌 댓글 1 좋아요 0 조회수 83

패키지 구조에 대한 질문

미해결

Java/Spring 주니어 개발자를 위한 오답노트

요즘 가장 많이 쓰는 패키지 구조가 있죠. 아래와 같이 레이어끼리만 모아둔 과연 이것이 좋은 패키지 구조일까요? 더 좋은 코드를 위해 추천하는 패키지 구조나 레퍼런스가 있는지 여쭤보고 싶습니다.

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
댓글 1 좋아요 0 조회수 153

예외 처리 블록의 역할에서 divide(10, 2)의 결과

해결됨

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

예외 처리 블록의 역할에서 divide(10, 2)의 출력값이 Result is: 5.0 Executing finally block 이렇게 나왔는데 왜 float형식으로 출력되나요?

  • python
  • java
  • c
  • 정보처리기사
피로한 염소 댓글 2 좋아요 0 조회수 97

[오타 제보] 2. 람다.pdf p.40

해결됨

김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍

[오타 제보] 대상 강의록: 2. 람다.pdf 대상 페이지: p.40 의 main() 코드 블록 오타 내용 변경 전(1): // 1. 합 구하기 ( 초기값 0, 덧셈 로직) 변경 후(1): // 1. 합 구하기 ( 초깃값 0, 덧셈 로직) 변경 전(2): // 2. 곱 구하기 ( 초기값 0, 곱셈 로직) 변경 후(2): // 2. 곱 구하기 ( 초깃값 0, 곱셈 로직) 코드 블록 에서는 초기값 이라고 되어 있고, 바로 밑에 용어 - reduce, fold 부분에서는 초깃값 이라고 되어 있어서 저도 궁금해서 검색해봤는데 초깃값 으로 표기하는 것으로 확인됩니다. 이런 맞춤법은 명확한 기준이 없이 국립국어원 마음대로 정하기는 하던데 혹시 강의록에서 단어를 통일하실 때 도움이 될까 해서 제보합니다. 출처1: IT 글쓰기와 번역 노트 - 5.1. 맞춤법 - 값 <- 여기서 페이지 조금 내리다 보면 d. 사전에 ‘-값’으로 등재된 단어 부분에 있습니다. 출처2: 초기값 - TTA 정보통신 용어사전 - "초기값은 ... => 규범 표기는 '초깃값'이다." 출처3: 국립국어원 답변 - "'최댓값', '최솟값', '초깃값'이 표준어입니다 ..."

  • java
  • 함수형-프로그래밍
  • lambda
  • optional
dev.rudevico 댓글 1 좋아요 0 조회수 106

파이썬에서의 if문 사용 질문

해결됨

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

for i in range ( 5 ): if i == 3 : pass else : print (i) 이 예제에서 3일 경우 말고는 print를 사용했는데 c나 java에서는 나머지 출력의 경우 else는 사용 안해도 돌아가는데 파이썬은 else를 꼭 사용해야하나요?

  • python
  • java
  • c
  • 정보처리기사
피로한 염소 댓글 1 좋아요 0 조회수 103

개인 개발자 비즈 앱 전환 버튼이 안보여요

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. 강의처럼 개인 개발자 비즈 앱 전환 버튼이 뜨지 않고 카카오 비즈니스 통합 서비스 약관 동의로 표시되어있는데,, 어떻게 해야 이메일 필수항목도 넣을 수 있을까요?

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
codestudy 댓글 2 좋아요 0 조회수 282

supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법?

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

✅ 모든 질문들은 슬랙 채널에서 답변드리고 있습니다. 💡 ”로펀의 인프런 상담소” 슬랙 채널 가입하기 💡 평일중에는 퇴근 이후(저녁 7시)에 답변을 받아보실 수 있고, 주말중에는 상시 답변드리고 있습니다. supabase에서 가입된 유저를 강제로 로그아웃 시키는 방법이 궁금합니다.

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
codestudy 댓글 2 좋아요 0 조회수 449

3:16 파이썬은 string을 변수로 사용할수 있나요?

해결됨

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

C나 Java는 따로 의미 지정되어있는 단어는 변수 사용이 안되는걸로 알고있는데 string = "Hello,World!"라고 적혀있어서요 파이썬은 string을 변수로 사용할수 있나요?

  • python
  • java
  • c
  • 정보처리기사
피로한 염소 댓글 2 좋아요 0 조회수 96

비관적 락 1에 대해서 질문입니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 비관적 락에 대해서 잘 배우고 있습니다. 비관적 락1이 단순히 네이티브 쿼리를 이용하여 update 문 해서 바로 count를 수정하는건데 초반에 알려주신 조회할 때, 조회 락이 안 걸려서 데이터 일관성이 깨지는 거 알려주셨는데 비관적 락 1은 조회 자체를 생각하고 바로 갱신만해서 좋아요 수 카운트를 하는 건가요? 만약에 그렇다면 업데이트 시 락이 걸려 다른 트랜잭션 접근이 안되어 일관성이 유지가 되는 것은 이해가 갑니다. 테스트시 100번 동시 접근할 때 비관적 락2처럼 정합성이 보장되는거면 굳이 1이 더 빠르고 정확할텐데 비관적 락2를 쓰는 이유가 궁금합니다. 그리고 챗gpt한테 물어보니 단순히 update문하여 수정하는 것은 동시성 접근에 해결책이 안된다고 비관적 락 2쓰라고 하는데 테스트에서는 동시 100개가 접근해도 일관성이 충족이 되는거 보니 어느쪽이 맞는건지 모르겠습니다

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
DongA Shin 댓글 2 좋아요 1 조회수 243

부모 클래스의 메서드 상속 관련 질문2

해결됨

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

18:41 유형 8에서는 업캐스팅 형태일때, 메소드를 부모: static void display() 자식: static void display() 위와 같이 선언하여야 하며, 부모 메소드에서 static을 없애면 에러가 난다고 하셨습니다. 그렇다면 만약, 유형 9와 같이 업캐스팅 형태가 아니고, Child obj = new Child(); 로 인스턴스를 생성하였는데, 부모: static void display() 자식: void display() 와 같은 형태로 메소드가 구성되어 있다면 obj.display()를 했을때, 에러가 발생하나요? 자식에도 static이 있어야지 상속이 가능하다는 부분이 업캐스팅일때만 적용되는건지, 업캐스팅이 아니어도 동일하게 적용되는건지 궁금합니다.

  • python
  • java
  • c
  • 정보처리기사
주무세요 댓글 2 좋아요 0 조회수 102

부모 클래스의 메서드 상속 관련 질문

해결됨

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

15:17 부모 클래스의 private 메소드는 자식 클래스로 상속이 불가능 하다고 말씀해주셨습니다. 그렇다면, protected, default의 경우에는 어떤지 궁금합니다. 제가 알기론, protected는 하위 클래스까지 상속가능하고, default는 동일 패키지까지 상속 가능하다고 들었는데요. protected와 default는 자식 클래스에 상속이 가능한지 궁금합니다.

  • python
  • java
  • c
  • 정보처리기사
주무세요 댓글 3 좋아요 0 조회수 153

PDF 문서에 오타가 있어서 알려드립니다.

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

PDF 문서에 오타가 있어 알려드립니다. divideTest()인데 minus(3)으로 되어 있습니다.

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
불꽃맨 댓글 1 좋아요 1 조회수 118

C언어 문자열 NULL값 (18:20)

해결됨

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

강의 18:20에서 char str1[5] = {'H', 'e', 'l', 'l', 'o'}; 이게 이 전 강의인 배열과 문자열 강의에서 마지막에 '\0' 를 넣어줘야 문자를 인식한다고 이해했는데요 char str1[5] = {'H', 'e', 'l', 'l', 'o', '\0'}; 으로 안되어있어도 상관 없는건지 궁금합니다. 또한 저렇게 된다면 str1[6] 이 되어야하는 건가요? 제가 혼자 생각해본 바로는 만약 출력문에서 printf("%s" , str1[]) 로 출력을 하려고했다면 char str1[5] = {'H', 'e', 'l', 'l', 'o'}; 이것이 아닌 char str1[5] = {'H', 'e', 'l', 'l', 'o', '\0'}; 이렇게 선언을 하는게 맞는걸까요? +그렇다면 만약 예제에서 char str1[] = {'H', 'e', 'l', 'l', 'o', '\0'}; 이었다면 sizeof(str1) 과 sizeof(str2)의 값은 같아질까요?

  • python
  • java
  • c
  • 정보처리기사
jins7267 댓글 2 좋아요 1 조회수 210

내장타입과메서드-1

해결됨

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

8:00 "기준문자".join부분이 이해가 잘 안가는데 기준문자로 배열을 문자로 만든다는게 기준문자 ,랑 뒤에 'Hello', 'World'랑 무슨관련이있나여..? find('World')7번째는 공백아닌기여? 8:47 파이썬은 문자열을 출력하면 다 작은따옴표('')나 큰따옴표("")가 붙어서 출력되나요? 파이썬 지식이 별로 없어서 기초적인질문 죄송합니다ㅠㅠ

  • python
  • java
  • c
  • 정보처리기사
피로한 염소 댓글 2 좋아요 0 조회수 118

혹시, 중간에 book에서 catach all 쪽 강의 부분에서 에러뜨는 분들은 .next 지우고 다시 해보세요!

해결됨

한 입 크기로 잘라먹는 Next.js

갑자기 500에러가 뜨면서 강의랑 코드가 틀린게 없는데 뜨길래 뭐지 싶어서 찾아봤는데, .next쪽에 손상이 있어서 그럴 수 있다고 하여, .next를 없애고 다시 'npm run dev'로 빌드했더니, 강의대로 잘 작동하였습니다! 참고하실분들, 참고하시길..!

  • react
  • typescript
  • next.js
ssi02014 댓글 2 좋아요 0 조회수 58

8:00 "기준문자".join부분이 이해가 잘 안가는데

해결됨

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

8:00 "기준문자".join부분이 이해가 잘 안가는데 기준문자로 배열을 문자로 만든다는게 기준문자 ,랑 뒤에 'Hello', 'World'랑 무슨관련이있나여..? find('World')7번째는 공백아닌기여? 8:47 acsefold()랑 lower()랑 같은건가요? 파이썬을 잘 몰라서 기초적인 질문 죄송합니다ㅠㅠ

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

기본 키 매핑 강의에서 질문입니다~

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. IDENTITY 전략일 때, 모아서 INSERT하는 게 불가능하다라고 말씀하셨는데, 이게 PK가 없는 상황에서만 불가능하고 다른 상황(pk가 있을 때 insert 쿼리, select 쿼리 등등)에서는 원래처럼 모아서 커밋 직전에 쿼리가 날라가는건지, 아니면 정말로 IDENTITY 전략일 땐, 모든 JPA가 생성하는 쿼리가 커밋 직전이 아닌 그 때 그 때 나가는건가요?

  • java
  • jpa
ajdsasld 댓글 1 좋아요 0 조회수 127

인기 태그

인프런 TOP Writers

주간 인기글