묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트 입문 - 기초부터 실전까지
age의 or | type의 속성을 인식해버립니다. ㅠㅠ 제가 잘못하고 있는건가요?
function Union(union: Developer | Person) { // Union Type이 되면, 타입(Developer |or Person)의 공통된 타입만 속성이 된다. union.name; // (property) name: string union.age; // @Error : union.age // Why not Error?.... not or.. (property) Person.age: number !== WHY? union.skill; // Property 'skill' does not exist on type 'Developer | Person'. // Property 'skill' does not exist on type 'Person'. } function askUnion(union: Developer & Person) { // Union Type이 되면, 타입(Developer &and Person)의 정의된 타입 모두 속성이 된다. union.name //(property) name: string union.age //(property) Person.age: number union.skill //(property) Developer.skill: string } var kureha: string | number | boolean // var kureha: string | number | boolean var ryosuke: string & number & boolean; // var ryosuke: never
-
미해결파이썬 플라스크(Flask) 기반 웹 개발 및 업무 자동화 서비스 활용
문제 해설을 보다가 궁금한 점이 있습니다.
질문1. @app.route("/<int:num>") <>안에 문자열 받는 경우엔 method 는 GET만 가능한게 맞나요? 질문2. def inputTest(num=None): num = None 이건 기본값(defalut)를 설정해주는건가요? None이 데이터가 없다는 얘기 같은데 이걸 왜 num에 넣어주는건지 잘 이해가 안됩니다. 질문3. def inputTest(num=None): return render_template("index.html", num=num) @app.route("/calculate", methods=['POST']) def calculate(num=None) : if request.method == 'POST': temp= request.form['num'] else : temp = None return redirect(url_for('inputTest',num=temp)) 위에 두 함수에서 각각 render_template()과 redirect(url_for())이 쓰였는데.. 둘다 url이동하는 것 같은데 다른점이 뭔지 궁금합니다.
-
미해결C 프로그래밍 - 입문부터 게임 개발까지
C언어를 아예 처음 접해보는 사람입니다
이걸 보면서 따라 할 수는 있는데 공부를 하려면 어떻게 공부를 해야 할까요 ? 현재 for 부분까지 봤는데 이게 공부가 되는건가 싶어서요
-
미해결플러터(Flutter) 앱 개발 입문부터 프로젝트 완성까지
함수 1번 연습문제 질문 있습니다.
sub int 값을 d,e,f로 설정한 이유가 궁금합니다. void main에 int 값은 a=7,b=5,c=2로 되있는데, sub도 처음부터 같은 값으로 설정하면 되는게 아닌가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
다른 변수에 같은 값을 집어넣으면 오브젝트의 값은 같아야하자나요 근데 이게 이상해요
이때는 id 값이 같다고 뜨는데 이때는 다르다고 뜨네요 그 이유가 뭘까요? 변수에 좀 더 큰 값을 넣어서도 해봤는데 그때도 다르다고 떳는데 클 수록 id값을 달라지는 느낌이네요
-
미해결WEB2 - Node.js
senitize를 해도 script 태그는 사라지는데 h1은 아무것도 안해도 살아있습니다.
var sanitizeHtml = require('sanitize-html'); //이걸로 설정해주고 fs.readdir('./data', function(error,files){ var filteredPath = path.parse(queryData.id).base; fs.readFile(`data/${filteredPath}`,'utf8',function(err,description) { var title = queryData.id; var sanitizedTitle = sanitizeHtml(title); var sanitizedDescription = sanitizeHtml(description); var list = template.list(files); var html = template.html(sanitizedTitle, list, `<h2>${sanitizedTitle}</h2>${sanitizedDescription}`, `<a href="/create">create</a> <a href="/update?id=${sanitizedTitle}">update</a> <form action="delete_process" method="post"> <input type="hidden" name="id" value="${sanitizedTitle}"> <input type="submit" value="delete"> </form>` ); response.writeHead(200); response.end(html); }); }); //이렇게 했는데 creat든 update든 h1태그가 살아있습니다. 허용도 안했는데... 뭐가 문제일지 알수있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
분기문
분기문 강의 28분쯤에 switch문을 어셈블리어로 확인 하는 부분이 있습니다. switch (input) 00315E8D mov eax,dword ptr [input] ---1번 00315E90 mov dword ptr [ebp-118h],eax ---2번 00315E96 cmp dword ptr [ebp-118h],0 --3번 1번 : 어셈블리어를 확인해보면 input을 eax 레지스터에 복사해 넣고 2번 : eax에 있는 값을(input 값이겠지요) 스택안에 넣는 모습[ebp-118h]을 확인할 수 있습니다. VS에서 switch 안에 있는 input을 눌러보면 switch 밖에 있는 int input = ROCK; 의 input과 동일하다는 의미로 같이 밑줄(? 그 같이 파란색으로 하이라이트)을 그어주는데 어셈블리어를 보면 switch안의 input이 아예 스택 메모리에 따로 잡히는 것 같습니다. 이건 왜 그런건가요? switch문 밖의 input과 switch(input) 안의 input은 서로 다른 input 인건가요? switch(input2)라고 하면 오류가 나던데 그렇다면 같은 input 아닌가요??? 같다면 메모리를 같이 써야 하는것 아닌지 궁금합니다.
-
미해결단 두 장의 문서로 데이터 분석과 시각화 뽀개기
강좌에서 나오는 window가 무슨 뜻인가요?
강좌에서 나오는 window가 무슨 의미로 쓰이는건가요?
-
미해결플러터(Flutter) 앱 개발 입문부터 프로젝트 완성까지
산술 연산 설명이 누락되었습니다.
2:20초 쯤에 계산부호 산술연산 ~/ 설명 중간에 다음 내용으로 넘어갑니다. -x에 대한 설명은 없이 지나갔구요.. 마이크음량이 갑자기 커져서 깜짝놀랐네요
-
해결됨CSS Flex와 Grid 제대로 익히기
안녕하세요 그리드 예제1 관련 질문 드려요!
다음과 같이 코딩했더니 가상요소를 적용하는 데에 문제가 있어서, 열심히 다른 경우를 시도한 끝에, Input,label 들이 들어간 div.grid-item-modal 부분을 없애고 해보니. :checked ~ 가 적용이 되더라구요 ㅜㅜ 왜 그런지 알 수 있을까요?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
연도표시
선생님 위에 그림에서는 연도가 2015/ 2015.5/2016/...이런식인데 그냥 2015/2016/2017 이렇게 표시하려면 어떻게 해야 하나요..?ㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
해시태그 오류 질문입니다.
한 게시글에서 동일한 해시태그를 여러번 사용했을 때 에러가 발생합니다 ex) #리액트 #리액트 #리액트 error -> SequelizeUniqueConstraintError: Validation error at Query.formatError 에러 로그를 보니 아래 부분이 오류라고 합니다. await post.addHashtags(result.map((v) => v[0])); 코드에서 어떤 부분이 잘못된건가요? 그리고 추가적으로 map에서 동일한 해시태그를 입력하기 key값이 중복되어 오류가 납니다. 이러한 경우에는 key를 어떤 방식으로 넣어주는지도 궁금합니다. 아래는 routes/post.js 해시태그 부분 소스입니다. const hashtags = req.body.content.match(/(#[^\s#]+)/g); if (hashtags) { const result = await Promise.all(hashtags.map((v) => Hashtag.findOrCreate({ where: { name: v.slice(1).toLowerCase() }, }))); await post.addHashtags(result.map((v) => v[0])); }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Clone을 통해서 새로운 객체를 만들어낼때
Knight knight2 = knight.Clone(); 을 통해서 새로운객체를 만들어내는것은 이해했습니다. 다만 제가 knight2.hp =0을 안하고 디버깅을 했더니 knight2의 hp, attack 값이 기존 만들어두었던 knight의 값으로 자동으로 설정되더군요 (hp=100, attack=10) Clone 함수에서 knight.hp=hp, knight.attack=attack 이라고 지정하면 Knight클래스 내부의 변수 값을 가져오는걸로 이해했는데 public int hp, public int attack 이라고 선언만했지 초기값을 지정해주지 않았습니다. 초기값을 지정해주지 않았는데도 자동으로 값이 채워지는 이유는 무엇인가요?
-
미해결파이썬 웹서비스API 실전 프로젝트 - 돈 버는 디지털마케팅
질문있습니다!!!
혹시 그럼 제 api를 안지우고 구성된걸 압축해서 남들에게 보여줄려고 했을때 남들에게 똑같이 보여지나요? 아니면 사용자의 API가 아니라서 안보여지나요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
postman send누르면 페이지를 찾을 수 없다고 나오네요.. 똑같이 적은거 같은데;
const express = require("express"); const app = express(); const port = 3000; const mongoose = require("mongoose"); const User = require("./models/User"); mongoose.connect("mongodb+srv://huihyeon:1234@cluster0.beyce.mongodb.net/study?retryWrites=true&w=majority",{ useNewUrlParser:true, useUnifiedTopology: true, useCreateIndex:true, useFindAndModify:false }).then(()=>console.log("MongoDB connected...")) .catch(err=>console.log(err)); app.use(express.urlencoded({extended: true})); app.use(express.json()); app.get("/", (req,res)=> res.send("Hello World!")); app.post("/register",(req,res)=>{ const user = new User(req.body); user.save((err,userInfo)=>{ if(err) return res.json({success: false, err}) return res.status(200).json({ success:true }) }) }) app.listen(port, () => console.log("server ON!") )
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
orphanRemoval과 cascade의 관계
안녕하세요 영한님 강의 정말 잘 듣고 있습니다! 다름이 아니라 orphanRemoval과 cascade의 명확한 차이를 공부하던 도중 이해가 가지 않는 것이 있어서 질문 드립니다! 환경은 Spring Boot 2.4.2 입니다. cascade는 엔티티의 상태변화를 전파하는 것이며, orphanRemoval는 연관관계가 끊어진 Entity는 자동으로 삭제하는 것으로 알고 있습니다. 근데 부모에서 orphanRemoval를 true로 설정 후, 컬렉션에서 자식 Entity를 삭제해도 Delete 쿼리가 아닌 update 쿼리가 발생했습니다. 그래서 여러가지 테스트 해보니 CascadeType.ALL 아니면 CascadeType.PERSIST시 orphanRemoval 이 정상적으로 동작하였습니다. 아래 코드에서 Board Entity에서 cascade 옵션을 지우면 update 쿼리가 발생하여 테스트는 실패하며, cascade 옵션을 ALL 또는 PERSIST을 사용하면 delete 쿼리가 발생하여 테스트가 정상적으로 통과합니다. 책의 p.311을 보면 orphanRemoval만 사용한 예제가 있는데 하이버네이트 버전이 올라가면서 변경된 것일까요? @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class Board { @Id @GeneratedValue private Long id; private String title; private String content; @OneToMany(mappedBy = "board", cascade = CascadeType.PERSIST, orphanRemoval = true) private List<Comment> comments = new ArrayList<>(); @Builder public Board(String title, String content) { this.title = title; this.content = content; } public Board addComment(Comment comment){ this.comments.add(comment); comment.setBoard(this); return this; } public Board removeComment(Comment comment){ this.comments.remove(comment); comment.setBoard(null); return this; } } @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Getter public class Comment { @Id @GeneratedValue private Long id; private String comment; @ManyToOne @Setter private Board board; @Builder public Comment(String comment) { this.comment = comment; } } @DataJpaTest(properties = "classpath:application-test.yml") class BoardTest { @Autowired BoardRepository boardRepository; @Autowired CommentRepository commentRepository; @DisplayName("orphanRemoval 테스트") @Test @Rollback(false) public void orphanRemovalTest(){ Board board = Board.builder().title("1번글").content("1번글 컨텐츠").build(); boardRepository.save(board); Comment comment = Comment.builder().comment("1번글 댓글").build(); board.addComment(comment); commentRepository.save(comment); entityManager.flush(); entityManager.clear(); Board board1 = boardRepository.findById(board.getId()).get(); board1.removeComment(board1.getComments().get(0)); List<Comment> commentAll = commentRepository.findAll(); assertThat(commentAll.size(), is(0)); } }
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
안녕하세요 궁금한거 질문입니다
안녕하세요 궁금한거 질문입니다 혹시 쟤가 작업을 하면서 vs코드에 백엔드를 끄고 킬때마다 로그인한 상태가 계속 유지가 되는데 이게 실제 웹상에 배포를 할때 걱정이 되네여 ㅠㅜ로그아웃을 할경우 토큰하고 토큰 시간이 없이져서 다시 기존 로그인 창이 나오기는 하지만 웹상에서 그 창을 끄거나 저기 지금 작업중에 서버를 끌때에도 아이디가 로그아웃 되게 하는 방법에 대해 참고할 만한 것이 있으면 알려주시면 감사드려요 ㅠㅜ 혹시 쟤가 코드적인 실수를 해서 그런 걸까요??
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
.+tab
a.+tab, c.+tab 했는데 아무것도 안 나오네요,,,ㅠㅠ 어떻게 하는 건지 알려주시면 감사하겠습니다.(해당 수업 07:00)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
event log에 이렇게 나오는데 왜 git 관련 내용이 나오는지 모르겠습니다ㅠㅠ
2.4.2 로 선택하고 빌드했는데 이런 이벤트 로그가 나옵니다. Plugin error: Plugin '.ignore' (version 'null') is not compatible with the current version of the IDE, because it requires build 203 or older but the current build is IC-203.6682.168 검색해봤는데도 잘 모르겠더라구요ㅠㅠ 어떻게 하면 해결할 수 있을까요ㅠㅠ?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안녕하세요
번외 질문이긴 합니다만, 혹시 스프링API를 모바일에서도 똑같이 적용할수있는건가요?!