묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결최신 SwiftUI와 UIKit과 함께하는 올인원 iOS 앱 개발 강의
xcode15 프리부 2개로 안보여요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 2개로 안되고 뭘해도 저렇게 합쳐져요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
여러 패키지들 does not exist 오류
안녕하세요 김영한님! 강의 아주 잘 듣고있습니다!! 현재 김영한님 첫번째 강의를 다 듣고 저 혼자 만들어보고 싶은게 생겨서 만드는중인데요 현재 제가 군대에 있어서 사지방에서 코딩을 하느라 인텔리제이를 사용하지 못하고 깃허브에서 제공하는 codespaces와 gitpod을 사용하여 vscode 환경에서 코딩하는 중입니다. 근데 jpa의 JpaRepository나 lombok 혹은org.springframework.boot.autoconfigure.SpringBootApplication 이런 패키지들이 계속 does not exist라고 뜹니다. 김영한님꺼 따라할때는 잘 됐는데 이제 제가 혼자서 만들고 싶은거 만드려니 확실하지도 않고 실행도 잘 안돼서 패키지를 못읽는건지도 잘 모르겠습니다. 현재 build.gradle에 의존성도 다 넣어있고 vscode의 패키지 설치에도 java extention pack, lombok, spring extention pack또 다 깔았습니다. 당연 재설치도 해보았구요! 구글링을 지금 며칠째 하고있는데 도저히 안되서 여기에 질문 올려봅니다...springboot version : 3.1.3jdk version : 17
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Span<byte> 으로 유지해서 진행해본 결과..
강사님 안녕하세요.정말 즐겁게 학습 중인 수강생입니다. 강의 후반부에 유니티 연동하면서Span<byte> 를 수정하는 방향으로 진행하는 와중에제가 사용하는 유니티 버전에서 Span<byte>을 지원하게 되어 따로 수정하지 않고 이번 강의를 최종적으로 마무리 지었습니다. 다만, 더미 클라이언트를 마지막에 500으로 설정하고유니티에서 실행하는데 강사님 코드로는 500개 더미 클라이언트가 가끔씩 500개가 연결되지 못한 상태로 연결됩니다.제 코드 역시 간혹 500개가 연결되지 않습니다. 여기서 문제는...강사님은 연결이 덜 된 클라이언트가 있어도 패킷을 모아보내기가 수월하게 동작하나,span<byte>코드로 유지한 저는 500개도 아닌 200개 이상으로 설정하면 연결도 안 덜 되고... 패킷 모아보내기 조차 수행되지 않습니다. 윈머지를 통해서 코드는 전부 비교했으나, span<byte> 관련 부분 제외 전부 동일합니다. 500개가 항상 정상적으로 연결되지 못하는 이유가 있을까요?혹은, 500개가 연결되지 않더라도 span을 사용했을 때와 사용하지 않았을 때의 모아보내기 가능 유무가 달라지는 이유가 어떤게 있을까요...?어떤 차이로 혹은 어떤 곳을 의심해봐야 하는 지 여쭤봐도 될까요? 의심부분을 찾기 너무 어려워 질문 올립니다.
-
미해결홍정모의 따라하며 배우는 C언어
\t 간격 차이
#include <stdio.h> #include <stdlib.h> struct kid { char name[100]; int height; }; int compare(const void* first, const void* second) { if (((struct kid*)first)->height > ((struct kid*)second)->height) return 1; else if (((struct kid*)first)->height < ((struct kid*)second)->height) return -1; else return 0; } int main() { struct kid my_friends[] = { "Jack Jack", 40, "Geenie", 300, "Aladdin", 170, "Piona", 150 }; const int n = sizeof(my_friends) / sizeof(struct kid); qsort(my_friends, n, sizeof(struct kid), compare); for (int i = 0; i < n; i++) printf("%s \t%d\n", my_friends[i].name, my_friends[i].height); return 0; }위는 저의 코드입니다.강의 5분 45초를 보면 printf()함수에 \t를 통해서 간격을 조정해주는데 교수님의 경우 숫자가 같은 위치에서 시작하는데 저는 왜 40 혼자 멀리 떨어져있을까요? 또 \t를 검색해보면 Tab키와 같이 일정한 간격을 띄움라고 나와있는데 일정한 간격을 어디를 기준으로 띄우는 건가요?"Jack Jack"의 경우 공백 포함 9글자고"Geenie의 경우 6글자인데강의에서 "40", "300"은 같은 위치에서 시작함에 의문이 생깁니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
영구 리다이렉션과 일시적 리다이렉션에 관한 질문입니다.
영구 리다이렉션의 경우 검색 엔진 등에서 기존 URL을 버리고 새로운 URL을 사용한다고 했고 일시적 리다이렉션은 리소스의 URL이 일시적으로 변경되고 검색 엔진 등에서는 URL을 변경하지 않는다고 하셨는데 리소스 URL을 변경한다, 유지한다의 개념이 헷갈려서 몇가지 질문드립니다. 1.여기서 말씀하신 리소스 URL이라는게 {host}/{resource}?{query_param} 에서 resource만을 의미하는 건가요?가령 http://google.com/event/4?q=hello 의 경우에 event/4 까지의 변경을 의미하는 것인가요?영구 리다이렉션과 일시적 리다이렉션의 차이는 resource name이 바뀌냐 안바뀌냐의 차이인건가요? 가령 /event로 post를 보냈을 때 /new-event로 post, get을 보내는 것이 영구적 리다이렉션, /event로 post를 보냈을 때 /event까지는 유지하고 /event/{id}로 post, get을 보내는 것이 일시적 리다이렉션 인가요?만약 2번이 맞다면 리소스의 URL이 일시적으로 변경된다는게 /event -> /event/{id}로 변경되는게 일시적 변경인거고 검색 엔진 등에서 URL을 변경하지 않는 것이 /event가 변경되지 않았다는 의미인건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
아무리해도 서버가 켜져있는데 접속이 안됩니다.
서버도 켜고 인바운드 규칙도 변경했는데 서버에선 22 이 르스닝으로 방화벽이 안뚫려서 접속이 안된거 같은데 어떻게 해결하나요ㅠㅠ
-
미해결바닥부터 시작하는 STM32 드론 개발의 모든 것
FS-i6 바인딩 안됨
안녕하세요 이번에 조종기와 수신기 관련해서 바인딩 하려고 했으나 바인딩이 안되고 있는상태입니다.강의자료와 동일하게 결선을 하였고 조종기 공장초기화 후 바인딩시도 했으나 binding ok메시지는 확인하였습니다. 하지만 실질적으로 디스플레이 상으로 바인딩 되지 않고 수신기도 바인딩 할때처럼 계속LED가 빠르게 점등하고 있어요. 혹시 문제점이 무엇인지 알고 계실까요?
-
해결됨코틀린 고급편
추상클래스의 공변 / 반공변, 추상 제네릭 일급컬랙션 리팩토링 에 대한 질문입니다.
믿고보는 태현님강의 다른강의 듣다가 사두고 이제서야 초반을 달리고 있습니다. 역시나 그간 알다가 까먹고 했던부분 확실하게 다지고 가는 느낌이 듭니다.저는 공변/반공변 예제 중 [꺼내기 / 저장] 각각의 기능만 하는 두가지 일급컬랙션을 따라하다가, 추상클래스 AbstractCage 를 둔다면 어떨지 아래처럼 한번 구성했었습니다. abstract class AbstractCage<T>( protected val things: MutableList<T>, )/** 초기화를 통해 아무거나 저장 후, 꺼낼수만 있는 케이지 */ private class ProduceCage<out T>( vararg things: T ) : AbstractCage<T>(mutableListOf(*things)) { // ProduceCage T는 'out(공변)' 이지만 AbstractCage T는 무공변 선언되어 대입불가. fun getFirst(): T = this.things.first() fun getAll(): List<T> = this.things.toList() }/** 아무거나 저장 만 가능한 케이지 */ private class ConsumeCage<in T>( vararg things: T ) : AbstractCage<T>(mutableListOf(*things)) { // ConsumeCage T는 'in(반공변)' 이지만 AbstractCage T는 무공변 선언되어 대입불가. fun put(vararg things: T) { this.things.addAll(things) } }문제는 상속받을때의 : AbstractCage<T>(..things) 선언부에 부모 T 타입이 무공변이라 자식 T 타입이 적절치 못하다고 애러가 나는데요,생각해보니 양쪽의 하위타입에서 이도저도 아닌 T 타입을 강요하는데, 이런 방식이 좋은 접근방식인가? 하는 의구심도 들고, 현업에서나, 또는 올바른 접근방법이 궁금해 질문하게 되었습니다. AbstractCage 의 타입파라미터를 <in T1, out T2> 이렇게 두는것도 이상하구요,이렇게 일급컬랙션 의 공통부분을 만들어야 될때 어떻게 접근해서 풀어내실지 의견이 궁금해서 남기게 되었습니다.읽어주셔서 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트와 Unique 제약 조건에 대해 질문 있습니다.
영한님의 JPA 서적/강의로 JPA를 학습하는 동시에 개인 프로젝트를 병행하여 JPA에 대한 연습을 하고 있습니다.Unique 제약 조건을 추가하는 과정에서 궁금증이 생겨 질문 드립니다. 영속성 컨텍스트는 그 자체로 Unique 제약 조건을 검증하지 않나요?chatGPT에게 질문을 했을 때의 '영속성 컨텍스트는 unique 제약 조건을 확인하지 않고 DB에 해당 역할을 위임한다; 라고 대답하였는데, 달리 검증할 방법을 모르겠어 이곳에 질문 드립니다.아래와 같은 상황을 방지하기 위해서는 데이터 저장 로직에 em.flush()를 함께 써 주는 것이 가장 바람직한 접근 방법일까요?영한님의 다른 답변을 참고하면 데이터 저장의 빈도수가 상대적으로 적기 때문에 em.flush()를 한번 더 호출하는 것이 큰 성능 저하를 가져오지 않을 것 같고, 문제 해결도 되는 것 같습니다만, 제가 놓치는 부분이 있을까 하여 질문 드립니다.테스트에 @Rollback(value=false)를 추가하면 데이터가 예상한 대로 실패하던데, 해당 어노테이션의 유무가 어떤 차이를 가지기에 결과가 달라지는건지 함께 여쭤봐도 될까요??강의 내용에 대한 질문보다는, 강의 내용에 기반을 둔 프로젝트 질문이라 여기에 질문을 드려도 되는지 모르겠습니다만, 혹여나 도움을 받을 수 있을까 하여 질문 드립니다. '영속성 컨텍스트의 동작 원리' 쯤 내용들은 관련 자료가 쉽게 찾아지지 않아 궁금증을 어떤 식으로 해결할 수 있을지 모르겠습니다 ㅠㅠ질문 이해를 돕고자 아래에 문제 상황도 함께 추가하여 질문 드립니다. 배경 설명질문 상황이 이해가 쉽도록 최대한 간단히 프로젝트 구성 설명 드립니다.유저의 데이터를 저장하는 DAO를 구현 중입니다. User 모델@Entity @Table(name = "USERS") @Getter @Setter @NoArgsConstructor public class User { @Id @GeneratedValue @Column(name = "IDX") private Long idx; @Column(name = "NAME") private String userName; @Column(name = "ID", unique = true) private String id; @Column(name = "PASSWORD") private String password; }유저의 ID가 중복되지 않도록 ID 컬럼에만 @Column( ... unique = true) 를 사용하였습니다. UserDAO@Repository public class UserDAO { @PersistenceContext private EntityManager em; public long save(User user){ em.persist(user); return user.getIdx(); } //... } 마지막으로, Unique 제약 조건을 확인하기 위한 테스트 코드 입니다.중복되는 ID 값을 가진 유저를 저장할 때 어떤 예외가 발생하는지 직접 확인하기 위해 실패하는 테스트 코드를 작성하였습니다. UserDAOTest @ExtendWith(SpringExtension.class) @SpringBootTest class DBUserDAOTest { @Autowired UserDAO userDAO; @Test @Transactional public void sameIdSaveTest(){ //given DBUser user1 = new DBUser("User1", "sameId", "PW1"); DBUser user2 = new DBUser("User2", "sameId", "PW2"); //when long savedIdx1 = userDAO.save(user1); long savedIdx2 = userDAO.save(user2); //that } 문제 상황동일한 ID 값인 "sameId"를 사용했음에도 문제가 없이 테스트가 통과하는 모습입니다. 로직 변경public long save(DBUser user){ em.persist(user); em.flush(); return user.getIdx(); }위와 같이 em.flush()를 추가하면 예상과 같이 테스트가 실패합니다.DataIntegrityViolationException이 발생합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 약 10분부근 @RequestMapping 404
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 약 10분 부근에@Controller 를 주석처리하고@Component@RequestMapping 을 어노테이션으로 입력하고 실행하면에러가 뜨네요 ?@Controller로 하면 잘 되는데 강의와는 다르게 안되네요
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
해쉬 충돌에 대해 질문드리고 싶습니다.
해쉬 충돌에 대해서 제대로 이해하고 싶어서 다른 자료를 찾아보다가 이해가 안되는 부분이 있어서 질문드립니다.전제 : Key값은 상수 데이터이다.그림 설명만 놓고 보면 키값이 달라도 해쉬 버켓 값이 동일해서 해쉬 충돌이 일어날 수 있다라고 설명하는 것 같은데, 서로 다른 키가 같은 해쉬 버켓에 매핑 될 수 있는 경우가 해쉬 함수의 성능에 의해 결정되는지 궁금합니다. 더불어 대체적으로 어떤 경우에서 해쉬 충돌이 빈번한지에 대해 질문 드리고 싶습니다.
-
해결됨[코드캠프] 강력한 CSS
노션 학습 링크
노션 학습 자료 링크는 어디서 볼 수 있나요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
python3 manage.py showmigrations 에서 오류
# python3 manage.py showmigrationsTraceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 401, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 395, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 328, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 369, in execute output = self.handle(*args, **options) File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/showmigrations.py", line 52, in handle return self.show_list(connection, options['app_label']) File "/usr/local/lib/python3.6/dist-packages/django/core/management/commands/showmigrations.py", line 71, in show_list loader = MigrationLoader(connection, ignore_no_migrations=True) File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 49, in init self.build_graph() File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 274, in build_graph raise exc File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/loader.py", line 248, in build_graph self.graph.validate_consistency() File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 195, in validate_consistency [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)] File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 195, in <listcomp> [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)] File "/usr/local/lib/python3.6/dist-packages/django/db/migrations/graph.py", line 58, in raise_error raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)django.db.migrations.exceptions.NodeNotFoundError: Migration accounts.0001_initial dependencies reference nonexistent parent node ('auth', '0012_alter_user_first_name_max_length')powershell에서 python3 manage.py showmigrations명령을 수행했을때 위와같은 오류가 뜨네요.. 뭐가 문제인걸까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
put과 post에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. put은 리소스를 완전 대체하기 때문에 데이터의 부분적인 필드만 보낼 시에 부분적인 필드만 대체되거나 새롭게 추가된다고 하셨는데, post로 put을 대체하여 사용할 경우도 마찬가지의 동작이 되나요? 가령 전체 데이터필드는 "username", "age"가 있는데 post로 "age" 필드만 바디로 보낼 경우, put과 같이 "username"없이 "age"만 대체, 추가가 되는 건지요?아니면 애초에 put은 리소스에 식별자를 추가해야되기 때문에 post로 대체 될 수 없는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
./gradlew clean build 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 저는 현재 springboot 2.7.16버전 사용 중입니다. 배포파일 만드는 과정에서 ./gradlew clean build를 했는데 에러가 발생합니다.해결 방법이 있을까요?ㅠ
-
미해결스프링 핵심 원리 - 기본편
prototype 스코프 사용 시 proxymode
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]request 스코프 사용 시 @Scope 에서 proxymode 추가하는 것으로, 코드가 간단해지는 것을 보고, prototype 스코프에도 적용해보려고 했는데, 오류가 발생하였습니다.질문게시판에서 답변이 되는 글을 찾아서 궁금증은 풀렸는데요, (https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55396&tab=community&category=questionDetail&q=560062)그렇다면 결론적으로 prototype 스코프에서는 proxymode를 사용할 수는 없고, provider를 사용하는 것이 최선일까요? 감사합니다
-
해결됨[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱 관련해서 질문 있습니다.
안녕하세요? 강의를 보고 따라했는데 강사님의 앱 실행 화면과제 앱 실행 화면이 달라서 문의드립니다.맨 오른쪽에 있는 라인의 사진들이 비율이 맞지 않는 것처럼 보이는데,혹시 해결 방법이 있을까요?2. Toast를 기입하고 앱 실행을 했는데 에러가 났다고 하면서 실행이 되지 않는데 이것도 해결 방법이 있을까요?감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-K lis 배열과 ans의 차이
안녕하세요 선생님.코드는 선생님의 코드를 참고 하여 질문드립니다!코드 이해를 위해 디버깅을 하는 중 테스트 케이스로610 20 9 30 8 50위 값들을 넣었을 때,출력되는 값은410 20 30 50 이지만lis 배열에 남은 값은8 20 30 50 이었습니다.제가 아직 lis 배열의 의미와*lowerPos = num; 으로 바꿔주는 부분에 대해 잘 이해하지 못한 것 같습니다.lis 배열은 그저 정답을 구하기 위한 임시적인 배열이 맞을까요?
-
미해결지금 당장 NodeJS 백엔드 개발 [사주 만세력]
데이터베이스 스키마 생성 부분에서 중간에 짤린 것 같습니다. 명령어요
데이터베이스 스키마 생성 부분에서 중간에 짤린 것 같습니다. 명령어요
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
교차 검증 시에 계수나 규칙이 계속 바뀌는건가요?
안녕하세요 교차검증에 대해 잘 이해가 안되서요 ㅠㅠ만약 3번 교차검증을 한다했을 때첫번째 학습을 하고 나서 두번째 학습시에 첫번째 모델을 기반으로 분류라면 분류규칙이라든지 회귀라면 회귀계수가 변경이 된고 셋번째 학습시에 두번째 모델을 기반으로 변경이 계속 되는건가요?