묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Do it! 프론트엔드 웹 디자인 입문
강의 순서요
아무것도 모르는 입문자라서요 이 강의를 듣고있는데 혹시 이거 다 듣고는 뭐를 들어야할까요?
-
미해결스프링 프레임워크 핵심 기술
인터페이스가 있는 경우 인터페이스 타입으로 주입하는 추가 질문입니다.
AOP가 뭔지 이해하는 과정에서 그렇구나 하고 넘어가다 갑자기 인터페이스가 있는 경우 왜 인터페이스 타입으로 주입해야하는거지 하고 질문 게시판을 봤는데 역시나 같은 궁금증을 가진 분이 있어서 답변을 보았습니다. 먼저 클래스가 final이나 생성자가 private일 때는 이해가 갔는데 유튜브로 보여주신 건 보고 좀 생각을 오랫동안 해봤습니다. 스프링 트랜젝션과 AOP 등등 구글링을 많이 해보면서 이해를 해보았는데요 spring.aop.proxy-target-class를 false로 인터페이스 기반으로 프로퍼티를 설정해준다음 인터페이스에서@Transactional 을 메소드에 붙이면 인터페이스 기반으로 프록시 객체가 만들어지고 메소드가 호출될 때 프록시 객체가 그 메세지를 대신 받아 트랜젝션을 실행시키고 메소드를 실행하는데 @Autowired를 클래스로 주입하면 자기 자신의 메서드를 호출하면서 인터페이스 기반으로 트랜잭션 프록시 객체가 만들어졌기 때문에 프록시 객체를 거치지 않게 되고 그래서 에러가 나는걸로 이해했습니다. 이게 맞게 이해한건가요? 아니면 어느 부분을 더 봐야하는지 알려주시면 감사하겠습니다.
-
미해결[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
with open으로 파일 읽는 경우
안녕하세요 '파이썬으로 Plain Text 포맷 다루기' 강의에 관하여 질문드립니다. plaintext_file_format 파일의 연습문제를 풀면서 00_data/text_data_practice.txt 파일 읽고, 다음과 같이 출력되는지 확인하기 를 확인하기 위해 아래와 같이 코드를 작성했습니다. with open('00_data/text_data_practice.txt', 'r', encoding='utf-8-sig') as text_file : print(text_file.readlines()) print(text_file.read()) 위 코드를 실행하니 print(text_file.readlines())는 잘 출력이 되나, print(text_file.read())는 아무것도 출력되지 않아서 질문드립니다. with 블록 안에서 readlines()와 read()를 하나씩만 각각 실행할 때에는 정상적으로 출력이 됩니다. 그러나 두 함수를 둘 다 실행하는 경우(각각 print()로 출력하거나 print(readlines(), read())로 출력하는 경우)에는 readlines()만 출력되고 read()는 공백만 출력됩니다. with 블록 안에서는 하나의 동작만 가능한가요? 에러가 발생한 것도 아니라서 문제점을 모르겠습니다. 감사합니다.
-
미해결웹 게임을 만들며 배우는 Vue
vue에 sass적용할 때 webpack설정 질문입니다
vue에 scss를 적용하는 법이 궁금해서 질문 올립니다. 공식문서를 보면 npm install -D sass-loader node-sass를 한 후 "devDependencies": { "css-loader": "^4.3.0", "eslint": "^7.16.0", "eslint-plugin-vue": "^7.4.0", "node-sass": "^5.0.0", "sass-loader": "^10.1.0", "vue-loader": "^15.9.6", "vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.6.12", "webpack": "^4.44.2", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.0" } webpack config를 아래와 같이 설정하라고 되어 있던데 안되는 이유가 뭔지 잘 모르겠습니다. 제가 뭘 놓치고 있는 걸까요? module: { rules: [{ test: /\.vue$/, use: 'vue-loader', }, { test: /\.scss$/, use: [ 'vue-style-loader', 'css-loader', 'sass-loader' ] }, { test: /\.css$/, use: [ 'vue-style-loader', { loader: 'css-loader', options: { esModule: false, } }, ] }, ], }, <style scoped lang="scss"> .login { width: 235px; height: 60px; padding: 20px 91px 13px 87px; border-radius: 5px; background-color: #00c854; p{ font-family: SpoqaHanSans; font-size: 22px; font-weight: bold; font-stretch: normal; font-style: normal; line-height: 1.14; letter-spacing: normal; text-align: left; color: #ffffff; } } </style>
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
.format(변수)가 어떤 원리인지 이해가 안갑니다.
print("대기번호 : {0 }".format(waiting_no)) 를 했을 때 대기번호 : 1 대기번호 : 2 대기번호 : 3 대기번호 : 4 이렇게 출력값이 나오는데, 정확히 .format() 이 어떤 원리인지 이해가 가질 않습니다.
-
미해결모던 안드로이드 - 코틀린과 Jetpack 활용
retrofit2에서 코루틴을 이용하는 이유가 무엇인가요?
코루틴과 retrofit2 둘다 이미 비동기로 처리하는걸로 아는데 단순히 자바스러운(?) 긴 코드를 줄일 수 있기 때문에 사용하는건가요? 성능상의 차이는 없나요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 제로초님
이미 리트윗한 게시물을 다시 리트윗 버튼을 눌렀다고 가정했을 시 밑의 코드가 실행되잖아요? router.post('/:postId/retweet', isLoggedIn, async (req, res, next) => { // POST /post/1/retweet try { const post = await Post.findOne({ where: { id: req.params.postId }, include: [{ model: Post, as: 'Retweet', }], }); console.log("post:::::::::::::",JSON.stringify(post),"enddddd"); if (!post) { return res.status(403).send('존재하지 않는 게시글입니다.'); } if (req.user.id === post.UserId || (post.Retweet && post.Retweet.UserId === req.user.id)) { //자기 게시글을 리트윗 하는것 자기 게시글을 남이 리트윗한것을 자기가 리트윗 하는것 return res.status(403).send('자신의 글은 리트윗할 수 없습니다.'); } const retweetTargetId = post.RetweetId || post.id; console.log("retweetTargetId:::::::::",retweetTargetId,"enddddddddddd"); const exPost = await Post.findOne({ where: { UserId: req.user.id, RetweetId: retweetTargetId, }, }); // console.log("exxxxxxPost:::::",JSON.stringify(exPost),"enddddd"); if (exPost) { return res.status(403).send('이미 리트윗했습니다.'); } 제가 리트윗한 게시물을 다시 리트윗해도 post.RetweetId는 null로 들어오는데 const retweetTargetId = post.RetweetId || post.id; 여기서 post.RetweetId는 필요 없지 않나요? 이것을 지워도 잘 동작하긴 하더라구요??
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
[강력/최신 크롤링 기술: Scrapy 이해하기] 강의 관련 질문 남깁니다.
안녕하세요, 일단 질 좋은 강의를 들을 수 있게 해주셔서 감사합니다. 다름이 아니라, 해당 강의 11분 38초 가량에서 맥과 다르게 윈도우에서는 오류가 날 가능성이 있으며, 오류가 발생할 때 시도하라고 알려주신 마지막 방법인 visualstidio에서 다운로드를 하여 해결하려 했습니다. 이 때 visual studio install을 마친 후 보이는 위 그림 페이지에서 추가로 설치해주어야 하는 부분이 있는지 궁금합니다. 추가로, 만약 추가로 설치해주어야 하는 부분이 없다면, visual studio를 설치해주는 것만으로 해결이 되는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Mac grade build 오류 문의입니다~
안녕하세요 해당 폴더로 이동은 하였는데 빌드하니 이런 오류가 발생하네요 ㅠ 왜 이런 에러가 나오는걸까요 ㅠ 이미지 다시 업로드 했습니다!
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
IllegalStateException : Mapped port can only be obtained after the container is started 오류
'TestContainers 기능 살펴보기' 강좌에서 GenericContainer를 만들고 실행하는데 계속 Mapped port can only be obtained after the container is started 오류가 납니다. POSTGRES_PASSWORD 세팅도 해보고, POSTGRES_HOST_AUTH_METHOD =trust 로 수정도 해보고, 버전도 모두 확인했는데 어떤 이슈인지 잘 모르겠습니다 ... 해당 코드: https://github.com/ahnzhx/TIL/blob/master/src/test/java/com/java/tddTheJava/study/StudyServiceTest2.java 에러는 postgreSQLContainer.getMappedPort(5432) 이 부분에서 납니다. static class ContainerPropertyInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext>{ @Override public void initialize(ConfigurableApplicationContext context) { TestPropertyValues.of("container.port="+postgreSQLContainer.getMappedPort(5432)) .applyTo(context.getEnvironment()); }} 어떻게 해결해야할지 알려주시면 다시 해보겠습니다!! 감사합니다.
-
미해결Node.js 웹개발로 알아보는 백엔드 자바스크립트의 이해
npm nodemon 관련 에러
vscode를 사용하고 있는데, $ npm uninstall nodemon npm ERR! code ELOOP npm ERR! syscall open npm ERR! path D:\WorkSpace_OrangeDigit\test1\node_modules\nodemon\npm-shrinkwrap.json npm ERR! errno -4067 npm ERR! ELOOP: too many symbolic links encountered, open 'D:\WorkSpace_OrangeDigit\test1\node_modules\nodemon\npm-shrinkwrap.json' 이런 에러가 나면 어떤 방법을 써야되나요..? ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
오타 제보드립니다.
항상 좋은 강의를 제공해주셔서 감사합니다. 강의 자료중 오타가 있어서 제보드립니다. P.73 스프링 DI 컨테이너 그림 아래 이미 만들어진 객체를 공유해서 효율적으로 재사용 사용할 수 있다. P.84 컴포넌트 스캔과 의존관계 자동 주입 시작하기 3번째줄 몇게 -> 몇개 P.90 코드부터 세번째 줄 basePackageClasses : 지정한 클래스의 패키지를 탐색 시작 위치?로 지정한다. P.104 @Aurowired → @Autowired P.109 조회 빈이 2개 이상 - 문제의 ac.getBean(DiscountPolicy.class) 아래 스프링 빈 조회해서 → 조회에서 P.112 @Primary 사용 @Autowired 시에 여러 빈이? P. 119 코드부터 두번째 줄 DiscountPolicy의 구현 빈들만 따로 모아서 특정 패키지"에?" 모아두자. P. 149 HTTP request 요청 당 각각 할당되는 request 스코프의 위 비슷한다 → 비슷하다. P. 152 마지막줄 이게 이제? 이 빈은 HTTP 요청당 하나씩 생성되고
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
안녕하세요 강의 듣고나서 혼자서 만들어봤는데.. 영 모르겠어서 질문 남깁니다.
이렇게 여기에 질문해도 될지 모르지만... 어제 파이썬 초급 강의를 모두 마치고 어설프게 나마 혼자서 코딩 해봤습니다.. 저는 특정 메뉴 활동을 마친 이후에 자동으로 처음으로 돌아가는게 아니라, 특정 명령어를 입력하면 처음으로 돌아가게끔 하고싶은데, 도저히 어떻게 해야할지 떠오르지 않아서 열심히 구글링하고 찾아보다가 결국 선생님께 도움 요청합니다 ㅠㅠ 직접 코딩 해본거라서 많이 허접할 지도 모르지만.. 제가 원하는 건.. 1번으로 신규 학생을 등록, 2번으로 기록열람, 3번으로 상담기록 추가를 한 후 특정 명령어를 입력하면 맨 처음 메뉴가 출력되었으면 좋겠습니다. while문으로 해두니까 계속 처음으로 돌아가서 특히 상담 기록 열람을 하고 난 이후에 상담 내용이 위로 쭉 올라가 버리더라구요 ㅠㅠ 지도편달 부탁드립니다. #시작 import os import csv def counseling(): while True: print("------학생 상담 일지------") print("1 - 학생 신규 등록") print("2 - 상담 기록 열람") print("3 - 상담 추가 기록") print("4 - 프로그램 종료") menu1 = input("번호를 입력해주세요 :") if menu1 == '1': newname = input("학생의 이름을 입력해주세요 : ") print(newname) with open('./students/{}.csv'.format(newname), 'w', newline="") as n: date = str(input("상담 날짜 : ")) content = str(input("상담 내용 : ")) writer = csv.writer(n) writer.writerow([date, content]) elif menu1 == '2': path = './students' lists = os.listdir(path) for a in lists: print(a) open_name = input('학생의 이름을 입력하세요 : ') with open("./students/{}.csv".format(open_name), 'r') as f: rdr = csv.reader(f) for v in rdr: print(v) elif menu1 == '3': path = './students' lists2 = os.listdir(path) for a in lists2: print(a) add_name = input("학생의 이름을 입력해주세요 : ") with open('./students/{}.csv'.format(add_name), 'a') as b: date = str(input("상담 날짜 : ")) content = str(input("상담 내용 : ")) writer = csv.writer(b) writer.writerow([date, content]) else: if menu1 == '4': break counseling()
-
미해결함수형 프로그래밍과 JavaScript ES6+
Symbol.iterator 에 관해서
현재 저는 자바스크립트에 대해 정확한 문법을 100% 숙지한 사람은 아닙니다. 그래서 순회를 하는 과정에서 let iter = arr[Symbol.iterator] << 여기서 [] 안에 Symbol.iterator가 이해가 잘 안되더라고요 . 그래서 Symbol에 대한 js 지식들을 찾아보았지만 여전히 이해하기가 어려웠습니다. 그래서 현재 생각한 방법이 두 가지가 있습니다. 1. "우선은 [Symbol.iterator] 에 대해서는 iterator를 해주기 위함이다." 앞과 같이 알아만 두고 다음으로 진행을 한다. 2. 지금 강사님께 어디서부터 봐야한다는 것을 확인 후 거기서 부터 공부를 한 후 다음 강의로 넘어간다. 만약 중요한 부분이고, 꼭 필요한 이해라고 하면 2번을 선택할 생각입니다. 때문에 어떤 방향을 선택하는 것이 좋을지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradlew build시 오류가 생깁니다.
윈도우 cmd 에서 gradlew build 하니깐 이런 오류가 생겨요.. gradle.bat 까지는 성공했는데.. gradlew build에 실패해서 lib 폴더 생성이 안된거 맞나요?
-
미해결스프링 핵심 원리 - 기본편
강의자료 오타가 있는듯 해서요...
별로 중요한건 아닌데... 90페이지 basePackageClasses : 지정한 클래스의 패키지를 탐색 시작 위로 지정한다. 이 부분에서 "탐색 시작 위치로"가 아닐까 합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강사님 질문입니다!
이번에 기회가 되서 강사님의 명강의를 듣게 되었습니다! 계속 시청하다가 궁금한 점이 생겼는데 요 부분에서 repository.findByName("spring2");로만 끝내면 안되고 .get();으로 끝맺음 지으시는 이유가 저희가 맨 처음 MemberRepository 인터페이스에서 선언할 시에 Optional<Member> findByName(String name)으로 정의 해서 그런건가요! 자바를 그렇게 깊게 판 게 아니라서 헷갈리는 부분이 좀 많네요 ㅠㅠ Optional이 Null일 때 NullPointerException 예외를 방지하려고 Null일 때도 Null이라는 값을 리턴할 수 있게 해주는 게 맞는지요! 그리고 이 Optionial이란 것을 사용했으면 findByName(String name)을 사용 할 때 .get()을 무조건 붙이는건가요~! 늦은 밤 기초적인 질문 죄송합니다 ㅜㅠ
-
미해결실전! 웹사이트제작! Step by Step! (한국소비자원 소비자시대- 레이아웃제작 기초)
section.smart 질문
안녕하세요. section.smart 부분 하다가 width 30%, 70% 주니까 class row 부분이 내려앉습니다. class row width를 67.1% 이렇게 주니까 올라오기는 하는데, 왼쪽으로 치우치게 됩니다. 어떤 부분에서 문제가 발생했을까요? .smart .inner ul {width: 30%; float: left;} .smart .row {float: right; width: 70%; height: 437px;}
-
미해결비전공자, 취준생을 위한 디지털마케팅 마케터 기초 코스
안녕하세요. 강의 내용 질문드립니다.
안녕하세요. 디지털마케팅 수업 이렇게 유용한 자료와 함께 너무 감사드립니다. 흥미롭게 잘 듣고 있어요! 다름이 아니라, 공유해 주신 수업자료에 포함된 '데이터 수집, 분석, 활용' (p.31~ 40)부분이 수업내용에는 빠져있어 문의 드립니다. 이어지는 '데이터 수집 & 분석 '부분 강의에 CRM, CDP등의 내용이 언급되는데, 이해가 조금 어려워서요! 이점 문의 드립니다~!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
@JoinColumn 의 name, referencedColumnName 에 대해 질문 드립니다.
선생님 2가지 질문이 있습니다. 첫번째는 @JoinColumn 의 name 속성 사용방법에 대한 질문입니다. @JoinColumn 의 name 속성을 사용하는 방법이 여러가지가 있는거 같은데요. 1) 참조 하고자 하는 엔티티 클래스명 + _ + 엔티티 클래스 기본키 필드 이름2) 참조 하고자 하는 엔티티 클래스의 필드명 + _ + 엔티티 클래스기본키 필드 이름3) 현재 엔티티 클래스의 필드명 + _ + 참조하는 테이블의 기본키 컬럼명 수업중에 사용하신 코드에서 구체적예를 가져와봤습니다. 1 번 방법은 Order 엔티티에서 Member 엔티티를 매핑 한 부분에서 사용된 방법입니다. 처음에는 Order 엔티티에서 매핑하는 MEMBER_ID 가 매핑하고자 하는 테이블의 컬럼명(Member 테이블의 MEMBER_ID 필드)이라고 생각했지만, Member 엔티티의 @Column(name = "MEMBER_ID") 부분을 제거하고 코드를 동작해도 데이터 입력처리가 되기 때문에 테이블 컬럼명이 아니라고 생각했습니다. 2번 방법의 경우, Category 엔티티에서 셀프 매핑(parent)을 할 때 사용하는 경우 3번 방법은 기본값(name 을 입력하지 않은 경우) 이렇게 사용할 수 있는 거 같은데, 맞나요.? 두번째는 @JoinColumn의 referencedColumnName 에 사용처에 관한 내용입니다. 위에서 제가 언급한 name 속성을 사용하는 방법 중에서 1번, 2번 같이 엔티티 클래스 필드 이름을 사용하여 매핑하는 방법을 사용하면, 외래키가 참조하는 대상 테이블의 컬럼명이 다르다 하더라도 referecedColumnName 을 사용안하고 매핑할 수 있는 거 같은데 맞을까요.? 제가 생각하는 것이 맞다면, referencedColumnName 을 사용 할 일이 거의 없을 꺼 같은데 추가적인 사용처가 있을지 궁금합니다.