inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

JSEXP 문의드립니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

function ratingDetail(num) { // 여기에 코드를 작성하세요. let result; if (num >=90 && num <=100 ) { result = "A"; if (num >= 96) { result += "+"; } else if (num <= 93) { result += "-"; } else { } } else if (num >= 80 && num < 90) { result = "B"; if (num >= 86) { result += "+"; } else if (num <= 83) { result += "-"; } else { } } else if (num >= 70 && num < 80) { result = "C"; if (num >= 76) { result += "+"; } else if (num < 73) { result += "-"; } else { } } else if (num >= 60 && num < 70) { result = "D"; if (num >= 66) { result += "+"; } else if (num < 63) { result += "-"; } else { } } else if (num > 0 && num < 60) { result = "등급미달"; } else { result = "잘못된 값입니다"; } return result; } ratingDetail(60); output에 맞추다 보니 이렇게 코드가 길고 가독성이 떨어지게 되었습니다. if문을 중첩으로 사용하는 것 외의 다른 방법으로 코드를 최적화할 수 있는 방법이 궁금합니다. 커리큘럼 중 어느 부분을 찾아서 공부하고 응용하면 될까요?

  • react
  • node.js
  • seo
  • graphql
  • next.js
빙봉빙봉 댓글 1 좋아요 0 조회수 311

파이썬 초보

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

print(‘%1.8f’% (3.121232176312))가 왜 출력하면 3.12123217이 아니고 3.12123218로 출력되죠?

  • python
형준 댓글 1 좋아요 0 조회수 309

sasm 오류

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

sasm 수업 아무리 다시 보고 따라 해도 처음부터 오류가 뜨는데 sasm으로 하는 수업 전부다 버리고 c++만 들어도 될까요? 11만 원 주고 강의 구매했는데 .. 그냥 버리기 너무 아까워요 ..

  • c++
  • sasm
김민수 댓글 2 좋아요 0 조회수 829

nanoid 생성 에러

미해결

핸즈온 리액트 네이티브

안녕하세요? nanoid를 생성할 때 에러가 발생합니다. import "react-native-get-random-values"; import { nanoid } from "nanoid"; 를 이용하여 nanoid를 생성할 때 1번째 까지는 정상적으로 생성되나 2번째부터 const id = nanoid(); 위의 생성 부분에서 ERROR TypeError: undefined is not a function, js engine: hermes 에러가 발생합니다. 대신 나노id를 non-secure로 생성하면 계속해서 생성해도 문제 없이 생성됩니다. 버전은 아래와 같습니다만 react-native-get-random-values는 1.9.0 버전으로변경해도 동일한 문제가 발생합니다. 버전 정보 "dependencies": { "@react-navigation/native": "^6.1.6", "@react-navigation/native-stack": "^6.9.12", "expo": "~48.0.15", "expo-status-bar": "~1.4.4", "expo-updates": "~0.16.4", "nanoid": "^4.0.2", "prop-types": "^15.8.1", "react": "18.2.0", "react-native": "0.71.8", "react-native-get-random-values": "~1.8.0", "react-native-safe-area-context": "4.5.0", "react-native-screens": "~3.20.0" }, 이 문제가 반드시 짚고 넘어가야하는 부분인가요? 별로 중요하지 않으면 그냥 비보안 모드나 uuid를 사용하는걸로 넘어가고싶은데 답변 부탁드립니다. 감사합니다.

  • react-native
Dozz 댓글 1 좋아요 0 조회수 657

refreshToken 활용한 로그인 로직에 대한 궁금증

미해결

[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!

안녕하세요. jwt를 발급할 때 refresh와 aceess 토큰에 담긴 페이로드는 동일할까요 ? accessToken의 탈취 당했을 때를 대비해서 accessToken의 만료기한 을 짧게두고 refreshToken의 만료기한을 길게 두는 것으로 알고 있는데, refreshToken이 탈취당했을 때 refreshToken으로도 사이트에 인가된다면 굳이 이 두개를 나누는 의미가 없을 것 같은데,, 현업에서는 어떠한 식으로 이뤄지는지 궁금합니다..

  • flutter
  • 하이브리드-앱
성수 댓글 1 좋아요 0 조회수 593

왜 저는 todoItem.item 하면 값이 안나오는걸까요?

미해결

Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex

TodoList.vue코드 <template> <div> <ul> <!-- <li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem.item" class="shadow"> {{todoItem}} <i class="checkBtn fa-solid fa-check" v-bind:class="{checkBtnCompleted: todoItem.completed}" v-on:click="toggleComplete(todoItem, index)"></i> v-bind:class="{A:a}" A클래스의 a속성이 false면 안나타남, true면 나타남 --> <!-- <span v-bind:class="{textCompleted: todoItem.completed}"> {{ todoItem.item }} </span> <span class="removeBtn" v-on:click="removeTodo(todoItem, index)"> <i class="fa-solid fa-trash-can"></i> </span> </li>> --> <li v-for="(todoItem, index) in todoItems" v-bind:key="todoItem" class="shadow"> <i class="checkBtn fa-solid fa-check" v-bind:class="{ checkBtnCompleted: todoItem.completed }" v-on:click="toggleComplete(todoItem, index)"></i> {{ todoItem.item }} {{ index }} <!-- //v-bind:class="{A:a}" A클래스의 a속성이 false면 안나타남, true면 나타남 --> <span v-bind:class="{ textCompleted: todoItem.completed }"> {{ todoItem}} </span> <span class="removeBtn" v-on:click="removeTodo"> <i class="fa-solid fa-trash-can"></i> </span> </li> </ul> </div> </template> <script> export default { data: function () { return { todoItems: [] } }, methods: { removeTodo: function (todoItem, index) { console.log('remove items'); console.log(todoItem, index); localStorage.removeItem(todoItem); this.todoItems.splice(index, 1); }, toggleComplete: function (todoItem, index) { todoItem.completed = !todoItem.completed; console.log(index); console.log(todoItem.item); //로컬스토리지 갱신 localStorage.removeItem(todoItem.item); localStorage.setItem(todoItem.item, JSON.stringify(todoItem)); } }, created: function () { if (localStorage.length > 0) { for (var i = 0; i < localStorage.length; i++) { if (localStorage.key(i) !== 'loglevel:webpack-dev-server') { console.log(JSON.parse(localStorage.getItem(localStorage.key(i)))); this.todoItems.push(localStorage.key(i)); } } } } } </script> <style scoped> ul { list-style-type: none; padding-left: 0px; margin-top: 0; text-align: left; } li { display: flex; min-height: 50px; height: 50px; line-height: 50px; margin: 0.5rem 0; padding: 0 0.9rem; background: white; border-radius: 5px; } .removeBtn { margin-left: auto; color: #de4343; } .checkBtn { line-height: 45px; color: #62acde; margin-right: 5px; } .checkBtnCompleted { color: #b3adad; } .textCompleted { text-decoration: line-through; color: #b3adad; } </style> TodoInput.vue코드 <template> <div class="inputBox shadow"> <input type= "text" v-model="todoItems" v-on:keyup.enter="addTodo"> <span class="addContainer" v-on:click="addTodo"> <i class="fas fa-plus addBBtn"></i> </span> </div> </template> <script> export default { data: function(){ return{ todoItems: "" } }, methods:{ addTodo: function(){ if(this.todoItems !== ''){ //저장하는 로직 //localStorage.setItem(key, value); //localStorage.setItem(this.newTodoItem, this.newTodoItem); var obj = {completed: false, item: this.todoItems}; //localStorage.setItem(this.newTodoItem,obj); localStorage.setItem(this.todoItems, JSON.stringify(obj)); //obj 객체 > string화 this.clearInput(); } }, clearInput: function(){ this.todoItems = ''; } } } </script> <style scoped> input:focus{ outline: none; } .inputBox { background: white; height: 50px; line-height: 50px; border-radius: 5px; } .inputBox input { border-style: none; font-size: 0.9rem; } .addContainer { float: right; background: linear-gradient(to right, #6478FB, #8763FB); display: block; width: 3rem; border-radius: 0 5px 5px 0; } .addBtn { color: white; vertical-align: middle; } </style>

  • javascript
  • vue.js
  • es6
  • vuex
el 댓글 1 좋아요 1 조회수 335

1.운영체제가 뭐길래 7분 58초 질문이요

미해결

운영체제 공룡책 강의

1.운영체제가 뭐길래 에서 7분58초에 1Mb를 2의 1024승이라고 말씀하셨는데, 찾아보니 1Kb가 2의 1024승 이던데요... 제가 잘못찾은걸까요?

  • 운영체제
  • 동시성
강다솔 댓글 1 좋아요 0 조회수 781

두번째 프로젝트 권한 요청 드립니다.

미해결

Vue.js + TypeScript 완벽 가이드

깃헙 계정 : hjyoo.dev@gmail.com username: hyunjiyoo 입니다.

  • vue.js
  • typescript
detection 댓글 1 좋아요 1 조회수 356

스프링부트 버전 문의

미해결

스프링 부트 - 핵심 원리와 활용

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 영한님! 이번 강의에서 프로젝트 생성하실 때 "스프링 부트 3.x 대 이상으로 하셔야 합니다" 라고 말씀해주셨는데 2.x대 버전이 아닌 3.x 대로 해야하는 특별한 이유가 있을까요~? 3.x 대의 업데이트에 대한 내용은 공식문서와 많은 블로그에 나와있어서 확인을 했는데 혹시 강의에 있어서 특별한 이유가 있는지 궁금합니다~!

  • spring
  • spring-boot
  • prometheus
  • grafana
inflearn 댓글 1 좋아요 0 조회수 483

이미지가 겹쳐 보여요

미해결

애니메이트로 배우는 나만의 움직이는 이모티콘 만들기(feat. 2천만 뷰 크리에이터)

복습하다보니 캐릭터 뒷부분에 연한색으로 캐릭터가 겹치는데 왜 그럴까요?

  • 이모티콘
  • 애니메이션
  • animate
seungdo31 댓글 2 좋아요 0 조회수 385

Xilinx Zynq FSBL 방법에 대해서 궁금합니다.

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

보드로 맛비님 강의도 듣고, 실습 해보던 중에 Zynq FSBL(First Stage Bootloader) 방법이 있더라구요. 이 방법과 강의에서 사용하는 방법이 어떻게 다른지, Zybo Z7-10 보드로도 가능한 것인지 궁금합니다!

  • fpga
  • 임베디드
박현영 댓글 1 좋아요 1 조회수 765

HTTP 메시지 전송 그림 질문

해결됨

모든 개발자를 위한 HTTP 웹 기본 지식

그림에서 웹 브라우저가 HTTP 메시지를 생성한다고 할때 클라이언트가 서버를 치게 될 때를 말씀하시는게 맞을까요?? SOCKET 라이브러리를 통해 전달 부분에서 A : TCP/IP 연결 한다는 말씀을 하셨는데 그것은 패킷 그림과 별도로 서버와 가상의 연결을 한다는 말씀이 맞을까요?? ((추측) 이때도 TCP/IP 패킷을 전달하는데 영상에 그려진 패킷과는 다른 패킷을 전달하는게 맞을까요? 맞다면 이 TCP/IP 패킷은 어떤 정보를 담아서 전달하는건지 간단하게 궁금합니다.) (즉, SOCKET 라이브러리에 요청(서버) IP,PORT 정보가 있기 때문에 패킷 그림과 별도로 해당 IP, PORT에 사전에 3 hand shaking을 하는 것이 맞을까요??) 2.번이 맞다면 사전의 3hand-shaking을 통한 TCP/IP패킷 전달을 통해 먼저 가상의 연결을 한 다음 웹 브라우저 HTTP 메세지 정보 패킷 + OS에서 해당 TCP/IP 패킷을 포함 시켜서 해당 서버로 보낸다는 말씀이 맞을까요??

  • 네트워크
b0i4s 댓글 1 좋아요 0 조회수 542

d 1 레이아웃 연습중에 궁금한것이 있어서 질문 남깁니다.

미해결

[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드

<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>D 타입 연습</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="main-content"> <div class="left"> <header> <div class="header-logo"></div> <div class="navi"></div> <div class="spot-menu"></div> </header> </div> <div class="right"> <div class="slide"> <div class="slide-image"></div> <div class="slide-banner"></div> </div> <div class="items"> <div class="shorcut"></div> <div class="news-galley"></div> </div> </div> </div> <footer> <div class="footer-logo"></div> <div class="cpoyright"></div> <div class="sns"></div> </footer> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script></body></html> ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ @charset "utf-8"; body { background-color:#fff; color:#000; margin:0;} a { text-decoration:none; color:#000;} .container {} .main-content { display:flex;} .left { width:200px; border:1px solid #000;}.right { flex:1; border:1px solid red;} header {} .header-logo { height: 100px; border:1px solid red;} .navi { height:400px; border:1px solid #000;} .spot-menu { height: 50px; border:1px solid red;} .slide { height:400px;} .slide-image { border:1px solid green; height:inherit;} .slide-banner { width:150px; height: 300px; border: 1px solid red; position:absolute; top:0; right:0;} .items {}.shortcut { height:200px; border: 5px solid gold;} .news-gallery { height:250px; border:1px solid blue;} footer { display: flex;} footer > div { border:1px solid #000; height:100px;} .footer-logo { width: 200px;} .copyright { flex:1;} .sns { width:300px;}

  • HTML/CSS
  • jquery
  • 웹-디자인
댓글 1 좋아요 1 조회수 373

전체 예제 소스좀 올려주세요

미해결

만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)

실무 vue nuxt 사용 프론트 개발자입니다.. 다른건 다이해가 가는데 firebase admin 이부분 좀 소스코드예시를 파일로 올려주시면 안될까요? 아니면 깃허브에서 전체 예제 소스를 다운받을 수 있도록 해주시면 감사하겠습니다..

  • next.js
강지영 댓글 1 좋아요 0 조회수 471

next.js의 "_buildmanifest.js" 파일의 경로 유출(?)은 괜찮은 걸까요?

미해결

소스코드에서 _buildmanifest.js에 들어가보면 모든 경로가 표시되던데 이러면 관리자 페이지의 모든 경로도 볼 수 있어서 어느정도 앱 규모(?)를 알 수 있다는 건데 이거 보안적으로 괜찮은걸까요? 관리자 페이지는 따로 만들어야 하는 건지 아니면 slug 경로를 이용해서 안 보이게 해야하는 건지 갑자기 머리가 복잡해지네요😂 다른 분들은 어떻게 하시는지 궁금합니다.

  • next.js
웹나그네 댓글 1 좋아요 0 조회수 433

result 값 이모지 입력할 경우 save 에러

해결됨

배민도 사용한다고? 환경설정 없는 백엔드 노코드 개발!

안녕하세요. 5강 따라하던 중 save 에러 생겨 문의 남깁니다. 테스트 해 보니 이모지를 적을 경우 생기는 에러인 것 같네요. 이모지는 string으로 처리가 안되는건지, 이모지를 처리하려면 어떻게 해야하는 것인지 궁금합니다. An unexpected error has occurred. Please try again later. (500002)

  • no-code
디노 댓글 1 좋아요 1 조회수 546

제가 만든 강의 자료와 코드 - github 업로드에 대해

해결됨

[코드캠프] 강력한 CSS

안녕하세요. notion으로 저만의 강의 노트를 만들어서 정리한 자료가 있습니다. 강의 내용이 구체적으로 포함되어있고 선생님의 강의 자료를 참고했습니다. 이 자료의 링크와 실습 코드를 제 github에 업로드하려고 하는데 출처와 강의 정보를 명시하여 업로드해도 될까요? github에 올린다고 볼 사람도 없는 건 둘째치고 혹시나 남이 본다고 하더라도 홍보 효과도 될 거 같아 좋을 거 같습니다!

임은상 댓글 1 좋아요 0 조회수 447

14-02 프로시저 오류

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요. 프로시저를 만든는 도중 에러가 발생해서 질문드립니다. 똑같이 작성했는데도 에러가 나오네요. 세미콜론도 여러번 확인했는데 혹시 오류가 나는 다른 이유가 있을까요??

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
QQ 댓글 1 좋아요 0 조회수 528

인기 태그

인프런 TOP Writers

주간 인기글