묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결내 맥북을 자동화하기: 단순반복 작업이여 안녕
VS Code 터미널 창 focus 시 영문으로 고정할 수 있을까요?
안녕하세요! 우선 어디에서도 볼 수 없었던 없는 흥미로운 강의 감사합니다. 덕분에 자동화의 매력에 눈을 떠서 하루하루 저만의 매크로를 만드는 재미를 느끼며 지내고 있습니다 :) 오늘 드리고 싶은 질문은 인트로에서 예시로 보여주셨던 것처럼 특정 상황에서 영문으로 고정되게 설정하는 방법을 알고싶어서 입니다! VS Code에서 readme 파일을 한글로 작성하다가 단축키를 이용해 teminal로 포커스를 옮기면 그 때 영문으로 자동 변환되도록 설정해보고 싶은데 그게 가능할지 trigger를 어떻게 주면 좋을지 모르겠어서 질문 남깁니다. 새해복 많이 받으세요!
-
해결됨홍정모의 따라하며 배우는 C언어
버퍼에 관한 질문 (수정본)
Q1) A가 출력되지 않는 이유는? 영상 (02:40)에 나오듯이 scanf의 %c는 한 문자만 읽을 수 있음으로, "A 3 2"을 입력시, A만 호출되고 \n는 버퍼에 남겨지는 상태를 볼 수 있습니다. 그로 인하여, 다음 출력문으로 입력하였던 "B 1 2"대신에 (\n 3 2)가 먼저 출력되는 것을 확인할 수 있습니다. 여기서 우리는 실제 scanf(%c %d %d)버퍼에 입력된 값이 ('A', 3, 2, '\n')임을 알 수 있습니다. scanf(%c %d %d) ↔ ('A', 3, 2, '\n') 그래서 다음과 같은 테스트를 진행해보았습니다. 영상(02:40)와 달라진 점은 기존에 \n자리에 s가 들어가고, 바로 그 뒤에 '\n'이 붙는다는 점입니다. 즉, 현재 scanf(%c) 버퍼에는 'A', 's', '\n'가 들어가 있는 것이죠. 그렇다면 총 (A 3 2), (s 3 2), (\n 3 2)순으로 while문이 출력되어야 할 것이라는 것이 저의 예상이었습니다. 그러나 위 결과물처럼 'A'는 생략되고, 's'가 출력되는 것을 확인할 수 있습니다. 한편, 버퍼에 남아있던 '\n'는 잘 출력되는 것을 확인할 수 있습니다. ----------------------------------------------------------------------------------- 2) 영상 (05:10)의 오해. // 자문자답 (선생님의 코드와 동일합니다. "* 3 5 빈칸"을 입력하셔서 한 번 반복되신 것으로 확인됩니다. 아마 사람들은 빈칸을 못보고 지나간 다음에 스스로 테스트한 것과 달라서 의문이 생길 수 있으니 다음 분들은 참고해주세요!) 영상에 나온 코드로 "A 3 2"를 입력하면 while문은 종료하게 됩니다. 왜냐하면 while문의 조건이 (c = getchar()) != '\n')인데, 질문1처럼 'A'과 함께 '\n'도 같이 입력이 되니, while싸이클을 한 번 돌고, 다시 올라오면 '\n'와 만나서 반복되지 않고 프로그램은 종료되는 것을 확인할 수 있습니다. 영상에서 보여진대로, 이는 while문 중간에 while (getchar() != '\n') continue;를 넣어주면 해결할 수 있습니다. 그 이유는 A 3 2를 입력하였을 때, getchar함수로 인하여 char c 변수에 'A' 문자 데이터가 저장되고, 버퍼에 남아있던 \n가 두 번째while문에서 읽혀지고 해당 while문 영역에서 벗어나면서 사라지기 때문입니다. ----------------------------------------------------------------------------------- Q3) \n는 어디로?? 본래, 저의 질문입니다. getchar을 청소해주는 while문을 주석처리해놓고, "# 3 2 빈칸"과 "% 1 2"를 입력해보았습니다. 얼핏보면 당연한 결과물이라고 생각할수도 있으나, 질문2에서 확인했다시피 "# 3 2" 싸이클이 끝나면 해당 while문은 '빈칸 3 2'을 한번 더 돌리고, '\n'을 만나서 종료되어야 했습니다. 즉, '\n'의 다음 순서인 "% 1 2"는 실행되어서는 안됩니다. "# 3 2 빈칸"을 입력하는 순간, 버퍼에는 ['#', 3, 2, '빈칸' '\n']가 저장이 됩니다. 이는 while문은 총 (# 3 2), (빈칸 3 2) (\n 3 2)를 돌릴 수 있는 경우의 수를 가지게 됩니다. 이 때, (\n 3 2)는 while문 조건에 의하여 종료되고 실행되지는 않아야 합니다. ***디버깅 테스트: 1. "# 3 2"가 출력된다. 2. 두 번째 싸이클인 "빈칸 3 2"이 시작되면 scanf함수가 실행이 됩니다. 3. scanf함수에 입력한 "% 1 2"는 버퍼에 들어가게 됩니다. 위 이미지처럼 char c변수에는 getchar함수로 인하여 '#'부터 '빈칸', '\n', '%'순으로 문자를 하나씩 버퍼에서 꺼내옵니다. 그 와중에 \n은 어디에서 제거가 된 것인가요?
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
포인터의 연산
p3=p3+1 을 했을 때 p3[0]이 0.5를 가리키게 되고 p3[1]이 0.8을 가리키게 되는 원리가 잘 이해가 가지 않아요. p3주소가 1만큼 옮겨졌단 뜻인가요? p3에 포함된 배열들의 위치가 1씩 옆으로 옮겨졋단건가요?
-
해결됨작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
43강 구독한 게시판의 게시글만 볼 수 있는 구독페이지의 에러
거듭되는 질문에 죄송합니다; 43강 수강중인데 기능은 제대로 구현됬으나, subscribe/list/로 접속할때 pycharm console창에 계속 아래와 같은 메세지가 나옵니다. 무슨 순서 관련인것 같긴한데 구독페이지 기능은 영상처럼 구현은 되고 있고 무엇이 문제인가요? filter 에 순서를 지정해줘야하는건가요?? 에러 내용: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'projectapp.models.Project'> QuerySet. return self.paginator_class(
-
미해결타입스크립트 시작하기
질문 있어요~
안녕하세요! 좋은 강의 항상 감사드립니다. 제가 궁금한 것은 Record에 관한 설명 중에 vscode 8번째 줄에 있는 코드에서 type Record<K extends string, T>에서 string이 여기서 어떤 역할을 하는지 궁금합니다..!
-
미해결Objective-C 강좌 - 12개 앱 만들면서 배우는 iOS 아이폰 앱 개발
tableview Cell 질문입니다.
제가 강의를 들으면서 새로 하나 다시 만들고있는데요 OpenAPI를 활용한 날씨앱을 만들고있습니다. Json파싱을 이용하고 있고요 파싱까지는 잘됩니다. 질문은 TableView -> Table View Cell (ex weather)이라는 걸 생성하고 거기에 파싱받는 값은 잘 넘어오고 있습니다. 그런데 Table View 안에 여러개의 Table View Cell를 이용하고 싶습니다. 각각 JSon파싱한 값을 뿌려주고 싶은데 numberofRowsInSection에서 return 값을 어찌해야할지 고민이네요 지금은 제가 1가지의 값만 얻고 싶어서 return 1;로만 지정해놓은 상태이긴한데 가장 상단에 만든 weather의 cell정보만 출력이되고 새로 만든 Cell의 정보는 출력이 되지않고있습니다. (NSLog로는 출력이 됩니다) View 에 출력을 가능하게 하려면 어느부분을 수정해야할까요 .?
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
맥북 에어 사용자인데 VS for Mac으로 다운받아도 되나요?
이걸로 다운받았더니 초기 화면이 달라서 혼란스럽긴 하네요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
repository 에서 findAll 의 return type에 관한 질문이 있습니다!
안녕하십니까 영한님. 우선 항상 좋은 강의에 감사드리며 새해복 많이 받으시길 바랍니다! 다름이 아니라 제가 영한님 수업때 강조받기를 파라미터를 통해서 엔티티를 받지말고 항상 스펙에 알맞는 DTO를 만들어서 받으라고 이해했습니다. 1. 그렇다면 스펙이 아주 조금 다르더라도 (멤버 변수 하나 차이 정도?) 매번 DTO(커맨드 객체라고 표현해도 맞을까요?)를 별도로 만들어서 데이터를 바인딩 시켜줘야 할까요? 2. 그리고 이건 Spring Data JPA 관련 부분이긴 하지만 JpaRepository<> 에서 기본으로 제공하는 findAll() 의 경우 return type이 List<T> 로 되어 해당 엔티티 타입의 리스트로 반환이 됩니다. 엔티티를 노출 시키지 말라고 강조를 받은 저로써 이 부분은 어떻게 되는건지 의문이 생겨서요. Spring Data JPA 의 경우 뭔가 다른건지 아니면 이 리스트를 다시 DTO를 통해 걸러야하는건지 의문이 생겨 질문 남기도록 하겠습니다!
-
[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
삭제하고 다시깔아도 안됩니다.
삭제된 글입니다
-
[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
에러
삭제된 글입니다
-
미해결Node.js 교과서 - 기본부터 프로젝트 실습까지
global객체 공유 질문드립니다.
강의 보고 잠깐 혼동했던 개념이 1.global 객체는 전역으로 공유 된다 2.a.js에서 global.abc = "abc" 라고 하고 b.js에서 console.log(global.abc)라고 했을 때, "abc"가 찍힌다.로 이해했는데 실험을 해보니 undifinded가 뜹니다. ---- 조금더 실험을 해봤는데 아래의 결론이 맞을까요? b.js에 // const a = require("./a");를추가하니까 console.log(global.abc)가 출력됩니다. 제가 이해한 현 상태는 아래와 같습니다. require (해당파일) 해야만 동일한 글로벌 객체를 공유하게 되는건가요?? 강좌에서는 전역 객체이기 때문에 파일 간 global이 공유된다고 하셔서요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 선생님 Thread.Yeild(); 에 대해서 질문 합니다.
while(true) { int expected = 0; int desired = 1; if (Interlocked.CompareExchange(ref _locked, desired, expected) == expected) break; Thread.Yield(); } 이 코드를 정리를 해보면 만약에 A 쓰레드가 있고, B쓰레드가 있다 A쓰레드가 공유 자원을 점유하고 있으면 lock이 0에서 1로 바뀌고 B 쓰레드는 접근 하려니까 lock이 1이니까 계속 무한 루프를 돈다. 이것은 성능상의 저하를 불러 일으킨다. 왜? 쓸데없는 행동이기 때문에 따라서 A쓰레드가 공유자원을 사용을 끝날 때 까지 B쓰레드를 무한루프를 돌게 하지말고 재우는데 Thread.sleep, yeild.. 뭐 이런 함수를 이용해서 재우는데 그럼 무한 루프가 잠시 멈추는 상황이잖아요? 그럼 a쓰레드가 공유자원을 쓰고 나왔다는 것을 어떻게 알 수 있나요? 검색 해보니까 sleep을 os가 깨운다는데 그럼 정리를 해보면 면접관님 께서 만약 이런 질문을 하시면 일단 OS가 A 쓰레드가 할일을 끝냈으니, 잠자고 있던 B쓰레드를 깨워서 그때부터 반복을 해서 다시 LOCK 검사를 진행합니다. LOCK 변수 값이 0이라면 컨텍스트 스위칭이 일어나는데 A 쓰레드의 정보가 레지스터에서 지워지고 B 쓰레드 정보가 채워짐으로써 B 쓰레드가 CPU를 점유하고 이제 B쓰레드가 공유자원 _num변수를 사용해서 _num++연산이 진행이 됩니다. 이렇게 저는 해당 챕터 강의를 이해 하고 정리를 했거 든요 혹시 틀린 점이 있다면 알려주심 감사하겠습니다. 아 그 sleep 걸어놓고 os가 깨우는 거 맞는지도 알려주시면 감사하겠습니다. ^^
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Builder 사용 시 NullPointerException 뜨는 경우 참고사항 (NPE)
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)private List<OrderItem> orderItems = new ArrayList<>(); 이런 식으로 코드를 작성 후 Lombok의 @Builder를 사용하시는 분들은 빌더 패턴을 통해서는 필드에 아무리 기본값을 명시해뒀더라도 기본값이 null아니면 0이 튀어나오므로 @Builder.Default 를 따로 선언해주셔야 null이 아닌 ArrayList가 생성됩니다. @Builder.Default@OneToMany(mappedBy = "order", cascade = CascadeType.ALL)private List<OrderItem> orderItems = new ArrayList<>();
-
미해결스프링 핵심 원리 - 기본편
Intelij Show Diagram~
안녕하세요 영한센세!!! 역대급 강의 정말 감사합니다ㅠㅠ,,, 강의가 너무 재밌고 유익해서 자야하는데 ... 멈출수가 없어요... 다름이 아니라 강의 7:17 분 경에 나온 인텔리제이가 제공하는 다이어그램 설정하는 부분에 대해서 다른분들에게 조그마한 도움이 될까 몇글자 남깁니다!! 단순해요 !! 그냥 자기가 보고 싶은 클래스, 인터페이스, 추상클래스를 선택하고 영한센세께서 가르쳐 주신 것 처럼 우클릭후 Show Diagram / Show Diagram Pop UP 누른 뒤 JavaClasses를 누르면 짜잔! 이렇게 나옵니다! 단순하게 상위 패키지에 설정하면 복잡한 구조가 나오고 내가 보고싶은 것만 콕콕 찝어서 보면 저렇게 나옵니다 :) 별것 아니지만 공유드립니다😄
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
batch insert 질문있습니다!
안녕하세요 주니어입니다! 이 강의랑은 동떨어진 질문이긴한데요 ㅎㅎ; 강의보면서 계속 이거저거 생각하다보니 영한님은 혹시 batch insert하실때 어떻게 하시는지 궁금합니다 ! 회사에서는 JPA를 쓸때 기본키 전략이 IDENTITY이면 JPA로 batch insert하기가 어려워서 jdbcTemplate으로 한다고 하거든요. 수량은 대략 5,000~10,000건 단위이고요. JPA초고수께서는 어떤방식으로 batch insert를 하시는지 갑자기 너무너무너무 궁금해져서 동떨어진 질문을 달게됐습니다.. 아 그리고 강의보면서 항상 감사드리고있어요. 제 마음속의 스승님이십니다 !
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
숫자 고르기 중복 질문
void ChooseLotto(int numbers[]) { srand((unsigned)time(0)); int count = 0; bool overlap; while (count < 6) { int randValue = 1 + (rand() % 45); overlap = false; for (int i = 0; i < count; i++) { if (randValue == numbers[i]) overlap = true; break; } if (overlap) continue; numbers[count] = randValue; count++; } Sort(numbers, 6); } 강의와 달리 저는 중복을 체크하는 found 값을 overlap이란 변수명으로 whil문 밖에서 선언하고, while을 돌때마다 false로 갱신해주는 방법으로 함수를 짜봤는데, 중복을 못걸러내는 문제가 발생했습니다.제가 보기엔 강의에서의 코드와 거의 차이가 없는데 왜 중복을 못거르는 문제가 발생하는지 잘 모르겠습니다.
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
다른 탭이나 브라우저의 정보가져 올 수 있나요?
혹시 다른 탭이나 브라우저에서 보내는 request나 아니면 다른 탭이나 브라우저가 현재 있는 url등을 들고 올 수 있는 방법이 있을까요? 정말 오래 찾았는데도 안나와서 질문 드립니다 ㅠㅠ 수업과 관련없는 질문드려서 정말정말 죄송합니다.ㅠㅠ
-
해결됨스프링 기반 REST API 개발
Controller 코드 관련 질문입니다.
좋은 강의 감사드립니다. 한국은 설 연휴가 시작되었는데 새해 복많이 받으세요! 10분40초경 return 해줄 때 ResponseEntity의 body에 event가 아니라 newEvent를 반환해줘야 될 것 같은데 아닌가요..? 현재 코드상 event 는 modelmapper를 활용해서 만든 event객체라 id값이 없고 테스트를 실패할것 같은데 body에 event를 넘겨줘도 테스트에서 return 된 body 에는 id값이 들어가있고 테스트가 통과되는데 제가 놓친부분이 궁금합니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
미들웨어 확장 질문입니다.
미들웨어 내부를 다시 미들웨어로 확장 할때, (req, res, next)를 붙이는 이유가 너무 궁금합니다. ㅠㅠ 강의에서는 단순히 유용한 패턴이니 기억해 두라고 했는데 그냥 단순히 외우고 넘어가야 하는 부분인가요? (req, res, next)를 지우고 돌려보니까 네트워크 탭에 '보류중'이라고 나오는 걸 봐서는 미들웨어 내부의 next()가 실행되지 않아서 그런 것 같은데 (req, res, next)를 붙이면 이게 미들웨어로 처리 되서 자동으로 next()가 실행되게 해주는 것일까요??
-
미해결플러터(Flutter) 앱 개발 입문부터 프로젝트 완성까지
1:1 강의도 하시는지요?
1:1 강의도 하시는지요?