묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트 입문 - 기초부터 실전까지
핸드북 인터페이스 확장관련
안녕하세요. 캡틴판교님! 좋은 강의 감사드립니다!! 인터페이스 확장 관련해서 강의와, 타입스크립트 핸드북을 공부 중에 있습니다. 타입스크립트 핸드북에 인터페이스 확장 부분에 interface Person { name: string; } interface Drinker { drink: string; } interface Developer extends Person { skill: string; } let fe = {} as Developer; fe.name = 'josh'; fe.skill = 'TypeScript'; fe.drink = 'Beer'; 이렇게 작성되어있는데, Developer 는 Drinker 를 상속받지 않아 drink 속성에 접근 시에 오류가 발생할 것 같다 생각하여 질문 드립니다! 그래서 코드가 interface Person { name: string; } interface Drinker extends Person{ drink: string; } interface Developer extends Drinker { skill: string; } let fe = {} as Developer; fe.name = 'josh'; fe.skill = 'TypeScript'; fe.drink = 'Beer'; 이런 구조가 맞지않을까? 하여 질문드립니다!
-
미해결뉴욕 프로덕트 디자이너가 알려주는, 입문자를 위한 UX디자인 개론
오늘의집으로 ui분석하기
'오늘의 집' 어플을 선정해서 분석했습니다. 이 화면은 사용자들이 보게되는 첫 페이지인데요. 근접성의 원리에 따라 3공간으로 나눠진다고 생각합니다. 먼저 첫페이지에 들어왔을 때 느낀 감정은 "복잡하다" 였습니다. 그이유는 10개의 버튼이 한번에 몰려 있었기 때문인데요. 유사성의 원리에 따라본다면 10개의 버튼이 비슷한 카테고리의 버튼이여야 할텐데 각자 다 다른 카테고리 였습니다. 그로인해 가시성도 나쁘다고 생각했습니다. 10개의 버튼 중 내가 원하는 버튼을 찾아야 한다는 것이 사용자로 하여금 스트레스를 줄 수 있으니 좋은 UI디자인은 아니라고 생각합니다. 오늘의집 1인 사용자가 저라는 것을 가정했을 때 제가 오늘의 집 어플을 이용하는 가장 큰 이유는 '쇼핑'과 '남들의 방은 어떨까?(N평집들이,공간별사진)" 입니다 이를 토대로 오늘의 집 첫 페이지 UI를 분석했을 때, 빠른가구배송과 간편시공, 쉬운이사 버튼(버튼이라는 용어가 맞는지 모르겠습니다 피드백 부탁드립니다! )이 10개 버튼안에 들어갈 필요가 있을까? 라는 생각을 했습니다. 그리고, 오늘의 딜, 0원이벤트 가구세일중 등등 세일 관련한 것들은 결국 '쇼핑하기'와 연결되는 부분이니 쇼핑하기 아이콘 옆에다가 나란히 배치해 유사성의 원리에 따라 디자인해보면 어떨까? 생각했습니다. 이 화면은 '쇼핑하기' 버튼을 눌렀을 때 나오는 화면입니다 간단한 카테고리 구분과 작은 대표사진을 통해 가시성을 높여, 사용자들의 쉬은 접근을 가능케하고 원하는 상픔을 클랙해서 쇼핑할 수 있도록 쉽게 구성되어 있는 것 같습니다. 이 부분은 휴리스틱 평가 중 시스템 가시성과 미학적이고 미니멀한 디자인 부분을 기준으로 좋은 ui디자인 인 것 같습니다. 추가로 각 버튼마다의 간격이 가로세로 둘다 일정하게 배치되어 있어 사용자가 시각적인 편안함까지 느낄 수 있어 좋은 Ui라고 생각했습니다 감사합니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
rabbitMQ 도커 기동 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. rabbitMQ 도커 기동 관련해서 질문드립니다. 도커로 rabbitMQ를 기동하면서 기존에 사용하던 포트번호를 그대로 사용하는거 같은데, 현재 로컬 PC에선 기존에 설치했던 rabbitMQ가 돌아가면서 해당 포트를 사용하고 있는거 같습니다. (컴퓨터 부팅 후 따로 설정하지 않아도 15672 포트로 웹 관리 콘솔에 접근이 되더라구요) 이러한 부분에 관해 설정을 따로 하거나 로컬의 rabbitMQ를 삭제하지 않아도 문제가 없을까요? (추가적으로 MQ를 설치하면서 함께 설치했던 erlang을 로컬에서 삭제해도 도커에선 문제없이 작동하는지도 궁금합니다)
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
DTU와 testbench에 대해 제가 제대로 이해한건지 궁금하여 여쭤봅니다
여기서 제가 뭔가 부족하게 이해하고 넘어간것같아서 여쭤봅니다만. DTU는 플립플롭 등의 설계모듈 testbench는 입력 및 결과측정용으로 이해하면 될까요? 예를들어 이렇게 있을 때 가운데 칩이 DTU라 하고 그 외의 선들과 연결되어있는것들(클록펄스 입력기, 데이터입력기(본 강의에선 클록펄스를 그대로 입력했네요), 출력된 데이터 인식기) 등 testbench로 이해하면 적절한가 싶어 여쭤봅니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderService에서 OrderItem접근
OrderService에서 OrderItem접근이 어떻게 가능한지 궁금합니다. OrderService @Transactionalpublic Long order(Long memberId, Long itemId, int count) { // memberId를 가져오기 위해선 MemberRepository있어야 함 //엔티티 조회 Member member = memberRepository.findOne(memberId); Item item = itemRepository.findOne(itemId); //배송정보 생성(회원정보 Address) Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); //주문상품 생성 OrderItem.createOrderItem() // [질문한 부분]} 혹시 어떠한 도메인 이든 , Controller, Service, Repository에 접근 가능해서 그런걸까요?!
-
해결됨네트워크, 그림으로 이해하자(2022ver.)
안나오는 동영상이 있어요..
ICMP 랑, 전송 계층 개요 동영상이 인코딩 중이라며 나오질 않습니다 확인 부탁드릴게요 ㅠㅠ
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
라우터 분리시킨 후, post 로 보낸 데이터를 못받아주는 문제가 생겨서 질문드리고 싶습니다
선생님 안녕하세요 라우터를 분리시키기 전에는 req.body가 post 로 보낸 데이터를 잘 받아줬습니다 그런데, 라우터를 분리시킨 다음에, post 로 보낸 데이터를 body가 못받아줘서 원인을 잘 모르겠어서 질문드리고 싶습니다 가르쳐주시면 정말 감사하겠습니다 먼저 폴더와 파일 위치입니다 url 에 localhost:3001 입력을 하면 먼저 app.js에서 이렇게 라우팅과 랜더링을 해줘서 signup.html 이 나옵니다 그리고 여기서 회원가입 버튼을 눌러봤습니다 누르면 이렇게 signup의 email nickname passwd가 manager.js 의 req.body.email, req.body.nickname에 전달될 줄 알았습니다 그러나 에러가 생겼습니다 라우터 분리 전에는 이런 일이 없었어서 혹시 원인을 가르쳐주시면 정말 감사하겠습니다 긴 질문을 읽어주셔서 고맙습니다 아래는 소스코드입니다 signup.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>회원가입 정보 입력란</title> </head> <style> .inputSubmit{ color:red; background-color: white; border-radius : 10% } </style> <body bgcolor="#FFFFFF"> <div align=center> <H2>회원가입 정보 입력란</H2> <HR> <form method="post" action="/add" name="form1"> <table width="650" border="0" align="center" cellspacing="0" cellpadding="5"> <tr><td>이메일</td><td><input type="text" name="email" size=30></td></tr> <tr><td>닉네임</td><td><input type="text" name="nickname" size=30></td></tr> <tr><td>비밀번호</td><td><input type="password" name="passwd" size=30></td></tr> <tr><td colspan="2" align="center"> <input type="submit" name="Submit3" value="회원가입" class="inputSubmit" id ='Submit3' onclick="document.querySelector('#Submit3').style.backgroundColor='grey'"></td></tr> </form> </table> </div> </body> </html> manager.js const express = require(`express`); const path = require('path'); const morgan = require('morgan'); const nunjucks = require('nunjucks'); const router = express.Router(); const { sequelize } = require('../models'); const {User} = require('../models'); const { userInfo } = require('os'); const { isNativeError } = require('util/types'); const app = express(); app.set('view engine', 'html'); nunjucks.configure('../views', { express: app, watch: true, }); sequelize.sync({ force: false }) .then( () => { console.log("DB connected"); }) .catch( (err) => { console.error(err); }) router.get('/',(req,res,next)=>{ res.render('signup',{}); }) router.post('/add',(req,res,next)=>{ console.log(req.body.nickname); console.log(req.body.email); try{ if(req.body.email) { User.create({ email: req.body.email, nickname: req.body.nickname, password: req.body.passwd, }); res.redirect('/'); } } catch(error) { console.log(error); next(error); } }) module.exports = router; app.js 입니다 /** * app.js */ const express = require('express'); const path = require('path'); const morgan = require('morgan'); const nunjucks = require('nunjucks'); const { sequelize } = require('./models'); const {User} = require('./models'); const { userInfo } = require('os'); const { isNativeError } = require('util/types'); const managerRouter = require('./routes/manager'); // const indexRouter = require('./routes'); // const usersRouter = require('./routes/users'); const app = express(); app.set('port', process.env.PORT || 3001); app.set('view engine', 'html'); nunjucks.configure('views', { express: app, watch: true, }); sequelize.sync({ force: false }) .then( () => { console.log("DB connected"); }) .catch( (err) => { console.error(err); }) app.use('/', managerRouter); app.use(morgan('dev')); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use((req, res, next) => { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error); }); app.use((err, req, res, next) => { res.locals.message = err.message; res.locals.error = process.env.NODE_ENV !== 'production' ? err : {}; res.status(err.status || 500); res.render('error'); }); app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트에서 대기 중'); });
-
미해결Django REST Framework 핵심사항
GenericView context overriding 관련 질문입니다.
안녕하세요 강사님, 강의 잘 듣고 있습니다. 다름이 아니라 DRF ImageField의 url 출력을 변경하는 과정에서 문의가 있어서 글을 남깁니다. url 출력 방식을 변경하는 방법으로 def get_serializer_context(self): """ Extra context provided to the serializer class. """ return { 'request': None, 'format': self.format_kwarg, 'view': self } 이렇게 context를 가져오는 함수를 overriding하시면서 request를 None으로 만드셨는데 request가 ImageField 출력에 영향을 줄뿐 아니라 다른부분에도 영향을 줄 수 있지 않나요? 이렇게 어디에 영향을 주는지 이렇게 바꿔도 되는지 알 수 있는 방법이 있을까요?
-
미해결배달앱 클론코딩 [with React Native]
빌드 에러가 발생해요
네이버맵 연동 과정에서 빌드 에러가 발생하는데 에러 원인이 무엇일까요? https://github.com/ZeroCho/food-delivery-app/
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
사용 이유
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Resource 매니저를 사용하는게 코드를 관리하는데 용이 하다 하셨는데 관리가 용이해진다라는게 정확히 어떤건지 모르겠습니다. lapping을 함으로써 얻는 이점이 정확히 무엇인가요??
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 풀다가 질문드립니다
안녕하세요 문제 풀다가 질문드립니다. ide에서 실행할 때는 잘 되었는데 채점기 사용 시 왜 exit_code1이 나오는 지를 모르겠네요... 확인해주시면 감사하겠습니다. import sys # sys.stdin = open("input.txt", 'r') number, list_sum = map(int, input().split()) user_list = list(map(int, input().split())) start = 0 end = 1 count = 0 total = user_list[0] while start != number: if total < list_sum: total += user_list[end] end += 1 elif total == list_sum: count += 1 total -= user_list[start] start += 1 else: total -= user_list[start] start += 1 if start == (number-1) and user_list[start] < list_sum: break print(count)
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
경도를 어떻게 얻을 수 있나요?
경도를 어떻게 얻어올 수 있나요?
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
탭(이미지) 슬라이드와 이미지 슬라이드 연결 ?.. 와 load(' header.html', function( ) { })질문이요
질문 1 아래와 같이 load( )메서드로 header, counsel, footer를 load하는데 counsel 과 footer부분은 load되었는데 header 부분이 안되요~ (header부분의 스크립트부분을 모두 작성 한겁니다) 무엇이 잘못된건지요? 질문 2 위 이미지는 위의 코드로 탭슬라이드 되어 있는 상태이구요 ~ 큰 이미지의 버튼(prev, next)을 눌렀을때에도 해당사항의 작은 이미지부분도 사진의 첫번째 작은 이미지 처럼 원형이 되는 걸 구현하고 싶어요~ 여기서 어떤 방법을 하면 좋을까요? ~if( )문 슬라이드를 찾아보았지만 작은 이미지까지 연결을 시켜야 하는 부분에서 막혀버렸습니다. 복잡하지만 방법만이라도 가르쳐주시면 감사하겠습니다 (버튼만 만들어 놓은 상태입니다)
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
로깅된 sql 관련해서 문의드립니다.
안녕하세요 제로초님, 강의를 보고 개인 프로젝트를 진행하다 궁금한 점이 있어서 질문 남깁니다. 현재 다음과 같은 typeorm 코드로 질의를 날리고 있습니다. const post = await this.postsRepository.findOne({ where: { id }, relations: ['author'] }); 그랬더니 다음과 같은 두 개의 쿼리가 나가는 것을 확인 할 수 있었습니다. 제 생각에는 첫 번째 select distinct ~ 쿼리는 필요 없는 쿼리인 듯 한데 혹시 의미가 있는 쿼리인지 궁금합니다!
-
미해결Vue.js 제대로 배워볼래?(Vue.js 프로젝트 투입 일주일 전)
강의자료가 따로 있나요?
강의 보면서 같이 볼 수 있는 자료 있나요?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
LB 설치 관련
좀.. 쓸데없는 질문이긴 한데.. 강의내용을 보면 LB 기능을 하는 별도의 프로그램(?)을 먼저 설치하고 해당 LB 기능을 이용하는데 혹시 쿠버네티스에서 기본으로 제공하는 LB가 있는지요? 그리고 만약 LB 기능을 하는 별도의 프로그램을 설치하지 않은 상태에서 LB 구성을 한다면 어떤 error 메시지가 나오는지도.. 살짝 궁금하긴 합니다. 별도로 가이드가 나오는것이지.. 예를들어 '먼저 LB 기능을 업데이트(또는 설치)후에 구성하세요' 라던지... 하는 문구가 있을까요?
-
미해결쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
Scale 관련 질문 드립니다.
문의 드립니다. scale을 통하여 pod를 늘렸을 때 사용자가 실수로 scale된 pod를 삭제하면 자동으로 설정된 scale 값을 유지하기 위해 다시 생성 되나요? 다른 질문은 scale 을 통하여 복제된 pod는 최초 생성된 pod를 복제하는 부분인가요? 아니면 최초 생성된 pod의 이미지를 가지고 생성되는 것인가요? 예를들어 최초 pod생성 후 해당 pod에 변경사항이 있는 상태에서 scale out 시 변경상태가 적용된 pod가 복제되는 것인지, 아니면 최초 pod를 생성한 이미지로 (변경사항 적용안된..) Scale out이 되는것인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
Job 관련 문의
안녕하세요. JobTimer 와 JobSerialize 보면서 궁금한점이 있어서 문의 드립니다. 구현된 JobTimer 와 JobSerialize 를 보면, Push(), Pop() 부분에만 lock 이 잡혀있고, Execute() 부분에는 lock 이 없습니다. 이런경우 Execute 가 여러 쓰레드에서 실행될수있는 경우는 없을까요? 만약 여러쓰레드에서 execute 가 실행된다면, 결과적으로 내부에서 foreach 등을 사용하는경우 문제가 될것같아서 문의 드립니다. 예를 들면, Timer 에서 처리중인 작업이 오래걸리는경우 다음 Timer Tick 이 돌아왔을때에 아직 이전에 실행중인 Timer 작업이 실행중이고 다음 Timer 작업이 돌아오는경우 문제가 없는지 궁금합니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
10:18초 SYN, SYN+ACK, ACK 색깔 의미가 있나요 ?
3-way handshake를 해서 보장된다고 설명할 때 1.SYN 주황색 2. SYN + ACK 초록색 3. ACK 주황색 이렇게 색칠을 해 주셨는데요 3:51보면 IP패킷은 주황색, TCP세그먼트는 초록색 이렇게 되어 있는데 이것과 관련이 있다는 것을 표현한건가요 ? 맞다면 추가 설명 부탁드립니다. 처음은 IP패킷만 가고 2번째는 TCP세그먼트만가고 마지막 ACK에서ㅏ 다시 IP패킷만 이용한다는건가요??.. 무슨 말인지를 모르겠어서요
-
미해결파이썬 무료 강의 (활용편5) - 데이터 분석 및 시각화
인구 피라미드 프로젝트에서...
안녕하세요 . 좋은 강의 감사 드힙니다. 프로젝트 1번 인구 피라미드 작성에 대해서 문의 드립니다. 만약 2011년 2022년 인구 자료를 같이 나타낼 수 없을가요? 만약 투명도만 달리해서 같은 그림에 나타내면 훨씬 시각적으로 인구 변화를 쉽게 알 수 있을 것 같아서 시도해 보았는데 잘 안되어 문의 드립니다.