묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
문자열 포인터 출력(16:49)
포인터에 의한 문자열 출력 경우들을 몇가지 정리해봤는데 정확히 이해하고 있는 건지 모르겠습니다. 선생님 한번 봐주세요#include <stdio.h>int main() { char *s="Hello world!";//포인트 변수 s 선언, 문자열 Hello world! 저장 printf("%s\n", s); // 포인트 변수 s호출, 문자열의 첫번째 주소를 가져온다. %s에 의해 '문자열'로 취급되서, 전체 출력한다. //printf("%c\n", s);//이건 에러가 나는데 문자열을 문자로 출력하려고 해서?? 잘 모르겠습니다. printf("%c\n", *s); // 포인트 변수 s호출, 문자열의 첫번째 주소가 갖는 값을 가져온다. %c에의해 '문자'로 취급되서, H를 출력한다. printf("%c\n", *s+1); //포인트 변수 s호출, 문자열의 첫번째 주소가 갖는 값을 가져온다. 우선 H가 호출되고 1을 더한 I가 출력 printf("%c\n", *(s+1)); // 포인트 변수 s에 1이 더해진 문자열의 두번째 주소가 갖는 값을 가져온다. e를 출력한다. return 0;}
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
synchronized와 메모리 가시성
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님!캐시 메모리에서 값이 변경이 되어도 메인 메모리에 언제 값이 적용될지 모르는건데 synchronized를 사용하면 메인 메모리는 무조건 값이 메인 메모리에 반영이 되는 걸까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
count 쿼리 질문있습니다
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 구조를 보면 마지막 페이지로 갈 수록 모든 페이지 목록을 불러오는거 같은데 제가 이해한게 맞나요? pageLimitCalculator를 보면 page=4, pageSize=10, movablePage=3일때 pageLimitCalculaotr를 계산하면 61인데 현재 4페이지에 있다면 2번째 그룹인데 2번째 그룹의 데이터 목록들만 불러오는게 아니라 1번째 그룹데이터까지 포함해서 총 60개를 불러오는게 맞는거죠? 그렇다면 pageLimitCalculator 공식에서 (((page - 1) / movablePageCount) + 1) pageSize movablePageCount + 1; 마지막에 1을 더해주는데 왜 해주는 건가요?다음 페이지에 데이터가 있나 없나를 확인하기 위해 1을 더하는건줄 알았는데 제가 생각한대로 마지막페이지로 갈수록 모든 데이터를 불러오는 구조라면 굳이 마지막에 1을 더할 필요가 있나 싶어서요궁금합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
snowflake 알고리즘 - synchronized 활용한 동시성 제어
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강사님 안녕하세요다름이아니라 snowflake 알고리즘에서 의문점이 생겨서 질문 드립니다. 질문1) snowflake 알고리즘에서 synchronized를 활용하여 동시성 제어를 하는데,만약 각 도메인 모듈마다 멀티 서버를 구상한다면 동시성 제어가 가능한가요? 질문2) 만약 안된다면, redis 와 같은 외부 미들웨어를 통해서 동시성제어를 하는 방식으로 해당 알고리즘을 수정해야 될까요?
-
미해결김영한의 실전 자바 - 중급 1편
Object clone 메서드는 protected인데 호출이 불가능한 이유가 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Object의 clone 메서드를 찾아보니 protected 로 접근 제어자가 설정되어 있는데 모든 클래스는 Object 클래스의 하위 클래스이니 clone 메서드를 사용 가능한것으로 이해했습니다. 그런데 실제로 clone 메서드를 실행하면clone() has protected access in java.lang.Object에러가 발생하는데 어떤 차이가 있어서 접근 불가능한 지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Gradle-groovy/Kotlin
스프링 프로젝트 생성시에 강의에서는 Gradle로 만들어라고 했는데 Gradle-groovy랑 Kotlin으로 나눠져 있더라고요.둘의 차이가 무엇인가요??
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
서비스에 @Transactional 애노테이션을 사용하시지 않는 이유가 궁금합니다
안녕하세요 궁금한게 있어 질문 남깁니다. 보통 데이터베이스 사용시 서비스 단에 @Transactional을 관습적으로 붙여왔는데, 서비스 로직을 작성하실때 @Transactional 애노테이션을 사용하시지 않은 건 비즈니스 로직이 너무 간단하기 때문에(트랜잭션 논리 단위로 묶을 필요없을 정도로) 생략하신거라고 이해하면 될까요? 답변 감사합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
autowired에 대한 고찰 이 코드도 결국 스프링이 자동으로 의존성을 주입해주는 코드일텐데 어째서 Autowired는 지양되고 이러한 코드는 사용해도 되는건가요? lombok을 통한 생성자주입과 autowired를 통한 생성자 주입은 어떤 다른 점이 있는
autowired에 대한 고찰이 코드도 결국 스프링이 자동으로 의존성을 주입해주는 코드일텐데 어째서 Autowired는 지양되고 이러한 코드는 사용해도 되는건가요? lombok을 통한 생성자주입과 autowired를 통한 생성자 주입은 어떤 다른 점이 있는건가요
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
pdf 자료들 다운이 안됩니다.
강의 목록에서 pdf 해당되는 목록 클릭하면 하얀 화면만 나오고pdf 파일 다운이 안되는데 일시적인 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberForm 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberForm은 MVC 패턴 중에 model에 속한다고 보는게 맞을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 목록 submit 오류
주문 목록 입력 후 "Submit" 클릭 시 OrderStatus 관련 오류가 발생하는 것 같습니다. db에는 잘 저장되는 거 같은데 어떤 코드가 잘못된지 혼자 힘으로 찾지 못하겠어서 질문드립니다.. 코드 오류인것 같은데 찾아보려 노력했는데도 잘 보이지가 않네요 ㅎㅎ.. 아래는 구글 드라이브 링크 첨부드립니다.https://drive.google.com/file/d/15k5n02QDFcakFz3uhJg3k-4QOI2U2UGy/view?usp=sharing
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
부모 클래스의 메서드를 재정의하는 경우
16:47부모 클래스의 접근 제어자가 private으로 붙은 메서드의 경우, 자식 클래스에서 재정의 할 수 없다고 하셨습니다. 그렇다면, 해당 예시 문제처럼 업캐스팅이 아닌 일반적인 경우에 대해 문의드리고 싶습니다.Parent obj = new Child(); 가 아닌Child obj = new Child(); 로 쓴 경우를 생각해 보겠습니다. 이 경우에는 예시 문제와 마찬가지로 부모 클래스에서 접근 제어자가 private으로 설정된 메서드를 자식에서 재정의 할 수 없겠지요. 그렇다면 만약 부모 클래스에 있는 동일한 메서드가 아닌, void display(String name)과 같이 파라미터를 다르게 정의한다면, 자식 클래스에서 정의하여 사용할 수 있을까요?
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
TCP 연결이 끊길 때의 클라이언트, 서버, 자바 애플리케이션에서의 흐름
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]질문자 OS: mac영상 기준 위치: 11분 30초 ~ 강의록 기준 위치: 7. 네트워크 - 프로그램1.pdf p.29 ~ 질문 상황: 클라이언트 프로그램을 인텔리제이의 Stop 버튼으로 종료할 때의 흐름안녕하세요. 위 상황에 대해서 제가 정리한 흐름이 맞는지 궁금해서 확인차 질문글 남깁니다. 1 ~ 4번의 전체적인 흐름이 맞는지와 2번의 자동적으로(반사적으로), 3번의 주체적으로 라는 표현이 적절한지 궁급합니다.제가 생각한 자동적으로는: FIN을 받으면 내부적으로 곧바로 TCP 수신 버퍼가 닫힌다.제가 생각한 주체적으로는: if (FIN) then close TCP 수신 버퍼 와 같이 FIN을 조건문처럼 감지하고 수신 버퍼를 닫는다.입니다. 제가 생각한 흐름TCP 연결이 끊길 때 클라이언트 OS가 서버 OS에 FIN 패킷을 보내고, 본인의 출력 스트림을 닫는다.서버 OS는 FIN 패킷을 받으면 자동적으로(반사적으로) TCP 수신 버퍼가 닫힌다.서버 OS가 TCP 수신 버퍼가 닫힌 것을 주체적으로 인식해서 "readUTF()에게 이 사실을 알려줘야지!" 라고 하면서 readUTF()의 블로킹을 깨우는 동시에, EOF 신호도 보낸다.readUTF()는 서버 OS에 의해 깨어나는 동시에 EOF 신호를 감지하게 되고 즉시 EOFException을 던진다.
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
정적 메서드가 자식 클래스에만 있는 경우
예시 코드에서 static void print()가 부모 클래스에 없고 자식 클래스에만 있다면,하이딩이 일어나지 않고 자식 클래스에 있는 static void print()를 출력하나요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요 질문잇습니다
안녕하세요 dto로 변환할때 컨트롤러나 서비스에서ex)Member member = Member() .name("name") .build(); 해준는 것이 좋을까요생성자 메서드처럼Member 엔티티에서@Builderpublic Member(String name) {this.name = name;}생성해서 사용하는 것중에 어떤방법이 좋은방법인지 궁금합니다감사합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Transactional Ouxbox 질문 있습니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1."Message Relay는 전송이 실패한 이벤트에 대해서만 Outbox Table에서 polling하면된다 "그리고 생성 10초 이후 이벤트를 polling 하는 이유가"중복 이벤트 발송을 방지하기 위해서"라고 말씀하셨는데 그 부분이 잘 이해가 안됩니다. 우선 첫번째로,예를 들어 위와 같은 상황에서1.Article Service는 API 요청을 받으면 2가지 동작을 한다.2.Message Relay로 직접 이벤트를 전달하고, Outbox table에 이베트를 삽입한다. 위와 같이 이해를 했습니다. 그런데 이 2가지 동작 다음에"Message Relay는 전송이 실패한 이벤트에 대해서만 Outbox Table에서 polling해서 중복된 이벤트를 처리하는 일이 없도록 한다"라는 동작을 어떻게 어떤 순서로 수행할 수 있는건가요?? 그리고 여기에 추가로"생성 10초 이후 이벤트를 polling 해서 중복 이벤트 발송을 방지할 수 있다"라는 부분도 어떤 순서로 동작하기에 가능한 일인지 잘 모르겠습니다 제가 헷갈리는 부분은 이벤트를 직접 받기도 하고, 2.위 ppt 설명에서 2개의 애플리케이션이 있다면, 0~1번 샤드와 2~3번 샤드를 각각 polling한다.가 잘 이해가 되질 않습니다.예를 들어 A 애플리케이션이 0~1번 샤드에 할당된 상태B 애플리케이션이 2~3번 샤드에 할당된 상태일때, 만약, A 애플리케이션의 데이터가 유실됐다는 오류가 발생 -> Message Relay는 Outbox table에서 0~1번의 샤드만 polling한다. 이런 식으로 이해하면 옳게 이해한 것이 맞을까요? 매번 질문글에 상세한 답변 감사합니다좋은 하루 되세요
-
해결됨(2026) 일주일만에 합격하는 정보처리기사 실기
static 메서드 기출문제 질문
안녕하세요. Java의 정적 변수, 정적 메서드(static)강의 중 9분에 나오는 빈칸 채우기 기출 문제에서 질문이 있어서 남깁니다. Test라는 클래스에서 void타입을 리턴하는 static 메서드 main()에서 Test.check(1);을 출력하게 되는데, 이 때 Test는 클래스명이므로, 클래스에서 직접 접근 가능한 메서드이기 때문에 check는 int형 파라미터를 받는 static 메서드인 것으로 보입니다. 혹시, 여기서 앞에 public, private, protected 등을 붙일 경우 오답처리가 되나요?? 아니면, 이런 경우는 명확하게 정답의 글자 수를 알려준다는 등의 방법으로 답이 static이 될 수 밖에 없는 방식으로 문제가 출제되나요? 우선 강의를 다 들은 후에 기출문제를 풀어보려 하니 아직 문제가 나오는 형식을 잘 몰라서 질문을 남깁니다!추가적으로, 9분 14초 정도에 나오는 기출문제에서, 인스턴스 변수인 name에 접근하기 위해서는 (파라미터를 받는 Person 생성자에서, 인스턴스 메서드인 print()에서) this 키워드를 통해 해당 생성자나 메서드 등을 호출한 주체를 찾아야 한다고 배웠었는데, 왜 여기서는 this.name으로 접근하는 것이 아닌 name으로 접근해도 에러가 발생하지 않는 것인가요??
-
미해결김영한의 실전 자바 - 기본편
참조형과 메소드호출-활용 6:15에서의 문제풀이
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public class method1 { public static void main(String[] args) { woon("학생1",15,90); woon("학생2",16,80); } public static void woon(String a, int b, int c) { Student student= new Student(); student.name= a; student.age= b; student.grade= c; System.out.println("이름: "+student.name+", 나이: "+student.age+", 성적: "+student.grade); } }이렇게 하면 코드가 더 간결해지는거 아닌가요? 이렇게 하면 어떤걸 활용 하지 않게 되는것이고, 안되는것인지 궁금합니다.
-
미해결스프링 시큐리티 OAuth2
RFC 문서에서의 AccessToken 발급 방식 궁금한점
강사님 안녕하세요. 진짜 오랜만에 질문드립니다. 다름이 아니라 제가 Authorization Code Grant 방식에서의 OAuth2 인증 인가 프로세스를 RFC 문서에서 읽고 있었습니다. https://datatracker.ietf.org/doc/html/rfc6749#section-4.1에 따르면, (E) The authorization server authenticates the client, validates the authorization code, and ensures that the redirection URI received matches the URI used to redirect the client in step (C). If valid, the authorization server responds back with an access token and, optionally, a refresh token. (E) 인증 서버는 클라이언트를 인증하고, 인가 코드(authorization code)의 유효성을 검사하며, (C) 단계에서 클라이언트를 리다이렉션할 때 사용된 리디렉션 URI가 받은 URI와 일치하는지 확인합니다. 만약 유효하다면, 인증 서버는 액세스 토큰(access token)과 선택적으로 리프레시 토큰(refresh token)을 응답으로 반환합니다. 라고 나와있습니다. 즉, AccessToken 을 요청할때 Http Body 에 명시하는 redirect_uri 주소가, Authorization Code 를 발급할 때 사용한 redirect_uri 와 같으면 이를 유효한 요청이라 판단하고, AccessToken 을 내려준다고 나와있는데요. 근데 우리의 Application. 즉, Client 가 React 와 Spring 으로 나누어진 환경이며, 인가코드 발급은 Front, 나머지는 Back 이 담당한다고 한다면. Frontend 가 Authroization Code 를 발급받고(redirect uri 는 Front 주소) 인가코드를 가지고 Backend 의 특정 Endpoint 에 요청을 찌른다. Backend 가 그 Authroization Code 를 받고, RestTemplate 로 token uri 주소로 code&redierct_uri(백엔드 redirect uri) 등등을 body 에 명시하여 넘길텐데.. 인가서버는 어떻게 엑세스토큰을 내려주는건가요?분명 Frontend 가 Authorization Code 를 발급받을때는 redirecturi 가 Frontend 주소였을테고, Backend 가 AccessToken 을 요청할때 사용된 redirecturi 는 Backend 주소일텐데.. 좀 궁금합니다. OAuth2 Provider 마다 다른걸까요? 많은 블로그에서는 제가 적은 프로세스대로 구현한다고 나와있어 의문점이 들었습니다. 우선 현재는 Spring OAuth2 모듈을 사용하지 않고, 프로젝트 경량화를 위해 OAuth2 Client 모듈이 수행하는 과정을 백엔드에서 직접 모두 구현하여 처리하는 흐름으로 구현해놓긴 했습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
리터럴 질문
질문리터럴 자체가 특정한 타입을 가지고 있나요? 형변환 때 작은범위에서 큰 범위로 대입할 수 있다라고 말씀하셨는데, long a = 10;로 예를 들자면 10이라는 정수 리터럴도 타입이 있는걸로 받아들여져서요 자바에서의 상수는 final 키워드가 붙은 변수로 변수안에 저장된 데이터 값이 변하지 않는걸 뜻하는데, 리터럴도 리터럴상수라고 표현한다고 알고 있습니다. 리터럴 상수에서 상수는 변하지 않는 값으로 값자체가 고정되어있다고 생각하면 될까요??