묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법
인스턴스 타겟그룹 등록 언헬시
인스턴스 만들때 라우팅 테이블 어떻게 설정 되어 있나요 nat랑 연결되어있나요?
-
미해결따라하며 배우는 리액트 네이티브 기초
InputForm 생성하기에서 TextInput과 Pressable이 보이지 않아요.
레이아웃 표시를 했을때, 위치는 잡히는 것 같지만 시각적으로 전혀 보이지 않아요. 마치 뒤에 가려진 것 처럼요 // InputForm.js import { KeyboardAvoidingView, Platform, Pressable, StyleSheet, Text, TextInput, View } from 'react-native' import React from 'react' const InputForm = () => { return ( <KeyboardAvoidingView behavior={Platform.OS === 'ios' ? 'padding' : 'height'} style={styles.addFormContainer}> <TextInput style={styles.inputField} placeholder="할 일을 작성해주세요." /> <Pressable style={styles.addButton}> <Text style={styles.addButtonText} >+</Text> </Pressable> </KeyboardAvoidingView> ) } export default InputForm const styles = StyleSheet.create({ addFormContainer: { flexDirection: 'row', marginTop: 'auto', marginBottom: 30, paddingHorizontal: 20, backgroundColor: '#f7f8fa' }, inputField: { flex: 1, height: 42, padding: 5, marginRight: 25, borderRadius: 4, borderColor: 'rgba(0, 0, 0, 0.2)', borderWidth: 1, color: '#000000', fontSize: 15, textAlignVertical: 'center' }, addButton: { justifyContent: 'center', alignItems: 'center', width: 42, height: 42, borderRadius: 4, backgroundColor: 'rgba(0,0,0,0.7)', shadowColor: '#000000', shadowOpacity: 0.14, shadowRadius: 8, shadowOffset: { width: 0, height: 4 } }, addButtonText: { color: 'white', fontSize: 25 }, }) // MainScreen.js import { SafeAreaView, StyleSheet, Text, View, StatusBar, Platform } from 'react-native' import React from 'react' import InputForm from '../components/InputForm' const MainScreen = () => { return ( <View> <SafeAreaView style={styles.container}> <StatusBar barStyle={'default'} /> <Text style={styles.pageTitle}>ToDo App</Text> <View style={styles.listView}> <Text style={styles.listTitle}>할 일</Text> </View> <View style={styles.separator} /> <View style={styles.listView}> <Text style={styles.listTitle}>완료된 일</Text> </View> <InputForm /> </SafeAreaView> </View> ) } export default MainScreen const styles = StyleSheet.create({ container: { flex: 1, paddingTop: Platform.OS = 'android' ? 20 : 0, backgroundColor: '#f7f8fa' }, pageTitle: { marginBottom: 35, paddingHorizontal: 15, fontSize: 54, fontWeight: '600', }, separator: { marginHorizontal: 10, marginTop: 25, marginBottom: 10, borderBottomWidth: 1, borderBottomColor: 'rgba(0,0,0,0.2)' }, listView: { flex: 1, }, listTitle: { marginBottom: 25, paddingHorizontal: 15, fontSize: 41, fontWeight: '500', } }) // App.js import { StyleSheet, Text, View } from 'react-native'; import MainScreen from './screens/MainScreen'; export default function App() { return ( <View style={styles.container}> <MainScreen /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'flex-start', justifyContent: 'center', }, }); // package.json { "name": "awesomeproject", "version": "1.0.0", "main": "node_modules/expo/AppEntry.js", "scripts": { "start": "expo start", "android": "expo start --android", "ios": "expo start --ios", "web": "expo start --web" }, "dependencies": { "expo": "^51.0.27", "expo-status-bar": "~1.12.1", "react": "18.2.0", "react-native": "0.74.5" }, "devDependencies": { "@babel/core": "^7.24.0" }, "private": true }
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
구현 클래스마다 테이블 전략과 @MappedSuperCalss 차이점
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]구현 클래스마다 테이블 전략과 @MappedSuperCalss가 내부적으로 어떠한 차이점이 있는 지 궁금합니다. 둘이 비슷한 것 같은데 전자는 사용하면 안 되고, 후자는 사용해도 되는 이유가 궁금합니다! (전자의 경우 강의에 충분히 나와있지만 후자는 사용하라고 하셨으니 그게 헷갈려서 질문 드립니다)
-
미해결처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
강의 방법 및 효율적인 학습 팁 강의화면 안보이는 이슈
강의 방법 및 효율적인 학습 팁 강의화면 안보이는 이슈 있습니다.빠른 확인 부탁드립니다.
-
미해결윤재성의 Start Google Angular.js 앵귤러 과정
프로그램 버전 확인 요청
안녕하세요.현재 테스트할 경우 프로그램 버전은 강의와 동일하게 진행하나요? 권고하시는 버전이 있으실까요?
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
강의 섹션2 이후부터 강의화면 안보이는 이슈있습니다.
안녕하세요.해당 강의 섹션2 이후부터 강의화면이 검은색으로 보여지며강의화면이 안보이는 이슈가 있습니다. 빠른 확인 부탁드립니다.
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
4:30초경에 질문이있습니다.
setInterval(function () { $('.slide-item').animate({ left: '-1200px' }, function () { $('.slide-item').css({ left: 0 }); $('.slide-item a:first-child').appendTo('.slide-item'); }); }, 3500); 기존에 자바 개발자라서 코드의 흐름을 파악하는데 약간 어려움이 있습니다. 코드 순서로 따져봤을때, left로 -1200픽셀만큼 이동후 다시 left0으로 돌아오는데,, 이게 약간 이해가 안가는데 이런식이면 제자리 걸음이 아닌가 헷갈리네요. -1200픽셀만큼 이동후 다시 left 0..? left 0에대한 설명이 없어서 뭔지 모르겠네요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join 관련 질문드립니다.
to one 관계는 여러개를 사용해도 상관없고 to many 관계는 한개만 사용해야 된다고 하셨는데 질문이 생겨서 글을 써봅니당 테이블 A가 있다고 할때, A테이블이 B,C,D 테이블과는 to one 관계이고 E 테이블과는 to many 관계인 경우에 A 테이블에서 B,C,D,E 테이블을 전부 fetch join해도 문제가 없는건가요? ( B,C,D,E 테이블은 A에만 연관관계가 있고 B,C,D,E 끼리의 관계는 존재하지 않습니다.) 여러개의 테이블을 join하는 경우 to many관계가 한개 , 나머지 테이블은 to one관계이면 모두 fetch join해도 되는건지 알고싶습니다.
-
해결됨[2025 리뉴얼]플러터플로우로 코딩 없이 한달 안에 앱 만들기
댓글창 처럼 갤러리창을 만들고 싶습니다.
안녕하세요. 동영상 강의를 응용해서 댓글을 저장하는것과 같이 어떤 Post에 이미지들을 upload하고 이것들을 subcollection에서 string으로 url로 저장되도록 하였습니다. 버튼에 bottomshow를 이용해서 댓글목록이 아닌 해당 post에 대한 사진 목록을 보여주고 싶어서 시도해보고 있는데요. image에서 archi_picture(subcollection) doc에서 imageUrl이라고 설정한 string은 선택할 수 없는데 어떤방식으로 접근해야할지 모르겠습니다. 프로그래밍을 하나도 모르는 상태에서 시작해서. 많이 어렵네요. 갤러리 창을 만든 다음에는 선택한 사진또는 전체를 선택해서 다운로드 받을 수 있는 기능을 만들고 싶습니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
클라우드 서비스 구축 - AWS 회원가입 및 리눅스 서버 구축 강의화면 안보이는 이슈
안녕하세요. 현재 whale, chrome에서 클라우드 서비스 구축 - AWS 회원가입 및 리눅스 서버 구축 강의화면 안보이는 이슈가 있습니다. 확인 부탁드립니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
도애체 어디에서 오류가 난건지 모르겠습니다.
다음과 같이 코드를 했는데 24강까지 애플리케이션에서 잘 삭제되고, 잘 저장되었는데 25강이후 코드는 실행되는데 '나이'가 입력을 해도 00세로 나오고, 목록에서 삭제하려고하면 '서버내부 오류입니다'라고 뜹니다.아래 질문에서 쉬운거는 편집된게 있다고 하는데배우는단계에 있는 사람으로써는 그렇게 편집되면 많이 당황스럽네요...ㅜㅜㅜㅜㅜ어디서 틀렸나요?ㅜㅜUserResponsepackage com.group.libraryapp.dto.user.response; import com.group.libraryapp.domain.user.User; public class UserResponse { private long id; private String name; private Integer age; public UserResponse(long id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public UserResponse(User user) { this.id = user.getId(); this.name = user.getName(); } public UserResponse(long id, User user) { this.id = id; this.name = user.getName(); this.age = user.getAge(); } public long getId() { return id; } public String getName() { return name; } public Integer getAge() { return age; } }Userpackage com.group.libraryapp.domain.user; import javax.persistence.*; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id = null; @Column(nullable = false, length = 20, name = "name") private String name; private Integer age; protected User() { } public User(String name, Integer age) { if (name == null || name.isBlank()) { throw new IllegalArgumentException(String.format("잘못된 name(%s)이 들어왔습니다.",name)); } this.name = name; this.age = age; } public String getName() { return name; } public Integer getAge() { return age; } //User class public Long getId() { return id; } public void updateName(String name) { this.name = name; } }UserRepositorypackage com.group.libraryapp.domain.user; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); } UserControllerpackage com.group.libraryapp.controller.user; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import com.group.libraryapp.service.user.UserServiceV2; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class UserController { private final UserServiceV2 userServiceV2; public UserController(UserServiceV2 UserServiceV2) { this.userServiceV2 = UserServiceV2; } @PostMapping("/user") public void saveUser(@RequestBody UserCreateRequest request) { userServiceV2.saveUser(request); } @GetMapping("/user") public List<UserResponse> getUsers() { return userServiceV2.getUsers(); } @PutMapping("/user") public void updateUser (@RequestBody UserUpdateRequest request) { userServiceV2.updateUser(request); } @DeleteMapping("/user") public void deldteUser (@RequestParam String name) { userServiceV2.deleteUser(name); } } UserServiceV2package com.group.libraryapp.service.user; import com.group.libraryapp.domain.user.User; import com.group.libraryapp.domain.user.UserRepository; import com.group.libraryapp.dto.user.request.UserCreateRequest; import com.group.libraryapp.dto.user.request.UserUpdateRequest; import com.group.libraryapp.dto.user.response.UserResponse; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service public class UserServiceV2 { private final UserRepository userRepository; public UserServiceV2(UserRepository userRepository) { this.userRepository = userRepository; } public void saveUser(UserCreateRequest request) { User u = userRepository.save(new User(request.getName(), request.getAge())); //System.out.println(u.getId()); } public List<UserResponse> getUsers() { return userRepository.findAll().stream() .map(UserResponse::new) .collect(Collectors.toList()); } public void updateUser(UserUpdateRequest request) { User user = userRepository.findById(request.getId()) .orElseThrow(IllegalArgumentException::new); user.updateName((request.getName())); userRepository.save(user); } public void deleteUser(String name) { User user = userRepository.findByName(name); if (user == null) { throw new IllegalArgumentException(); } userRepository.delete(user); } } UserCreateRequestpackage com.group.libraryapp.dto.user.request; public class UserCreateRequest { private String name; private Integer age; public String getName() { return name; } public Integer getAge() { return age; } }
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
@VersionColumn() 질문
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 질문 ;엔티티의 버전 번호를 업데이트한다는 이해했는데.어떤필드가 업데이트되었는지 로그가 궁금할땐 어떻게 처리해야하나요 ? 변경사항을 로깅할 땐 보통 어떻게 작업하는지 궁금합니다.
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
IP Field와 AccessLog 관련
질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요.질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다.시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다.오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-)인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Q17-01 02 강의에서 ipv4address custom field를 생성하셨는데요8-20 강의 같이 이후에는 그냥 Django GenericIPAddressField를 사용셨습니다.7-01 02강의는 그냥 custom 필드를 보여주기 위한 예시이고 그냥 장고에서 제공해주는 IP 필드를 사용하면 되는건가요? 아니면 차이점이 존재하는 건가요? Q2제가 제작한 사이트의 사용량 집계를 위해 로그를 얻으려고 합니다.class AccessLog(models.Model): request = models.URLField() time = models.DateTimeField(auto_now=True) user = models.ForeignKey(User, on_delete=models.CASCADE, null=True) ip = models.GenericIPAddressField()상기와 같은 모델을 작성하여 request가 client로 날라올 때마다 db에 쌓아나가는게 맞을까요? 아니라면 logger를 이용하는게 맞을까요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
객체의 구조분해할당
Node.js 모듈 시스템 이해하기 파트에서 7:39초에 객체의 구조분해할당을 이야기 하셨는데 전 섹션에서 언제 이야기 하셨는지.. 제가 강의를 듣다가 빠트렸는지 가물가물해서 질문드려요!어느 강의에서 객체의 구조분해할당이 나온건지 알려주신다면 다시 보고 복습해야 할 것 같아요! ㅠㅠ 이해가 잘 안가서요 ㅠ
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
강의의 eslintrc와 eslint.config의 차이가 무엇인가요?
강의 6분 17초에 eslintrc 파일은저에게는 eslint.config.js로 나와서 문의드립니다!안에 내용도 좀 다르고 저는 eslint.config.js. 파일만 있어서요!같다고 봐야할까요?
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
인디게임출시경험이 중요할까요?
국비 교육과정을 마치고 OJT기간이 끝났는데 OJT를 진행한 회사에서 회사와 협업해서 팀을 이루어 인디게임을 출시해보겠냐는 제안을 받았습니다.신입이고 리소스는 회사에서 지원받는데 해보는게 좋을까요? 아님 개인 포트폴리오로 취업을 하는게 좋을까요?
-
미해결홍정모의 따라하며 배우는 C언어
cleanup() 함수 부분에서 문제가 발생하는데 해결법을 모르겠어요
#define CRTSECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#define SLEN 81struct namect{ char* fname; char* lname; int letters;};void getinfo(struct namect*); //allocate memoryvoid makeinfo(struct namect*);void showinfo(const struct namect*);void cleanup(struct namect*); // free memory when doneint main(void){ //구조체의 멤버로 할당 메모리를 사용하기 //할당 메모리를 가리키는 포인터를 구조체의 멤버로 사용 struct namect p = { "Gil DONG","Hong",SLEN }; //char buffer[SLEN] = { 0, }; //int f2 = scanf("%[^\n]%*c", buffer); //p.fname = (char*)malloc(strlen(buffer) + 1); //null character 자리 1개 추가. //if (p.fname != NULL) // strcpy(p.fname, buffer); //printf("%s %s\n", p.fname, p.lname); getinfo(&p); makeinfo(&p); showinfo(&p); cleanup(&p); return 0;}void getinfo(struct namect* adr){ char buffer1[SLEN] = { 0. }; char buffer2[SLEN] = { 0, }; printf("input your first name:\n>>"); int f1 = scanf("%[^\n]%*c", buffer1); if (f1 != 1) printf("Wrong input!\n"); else { adr->fname = (char*)malloc(strlen(buffer1 + 1)); if (adr->fname != NULL) strcpy(adr->fname, buffer1); else printf("Malloc Failed!!\n"); } printf("input your last name:\n>>"); int f2 = scanf("%[^\n]%*c", buffer2); if (f2 != 1) printf("Wrong input!\n"); else { adr->lname = (char*)malloc(strlen(buffer2 + 1)); if (adr->lname != NULL) strcpy(adr->lname, buffer2); else printf("Malloc Failed!!\n"); }}void makeinfo(struct namect* adr){ adr->letters = strlen(adr->fname) + strlen(adr->lname);}void showinfo(const struct namect* adr){ printf("Hi, %s %s. Your name has %d characters.", adr->fname, adr->lname, adr->letters);}void cleanup(struct namect* adr){ free(adr->fname); free(adr->lname);}윗 분이 남겨주신 질의응답으로 해결 가능할 것으로 생각했으나 step over로 찍어봐도 free()에서 자꾸만 문제가 발생합니다...
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
WBP_HpBar의 Parent Class를 설정
강의 내용 중 WBP_HpBar의 Parent Class를 설정하는 부분에서, WBP_HpBar의 Parent Class를 ABGASHPBarUserWidget으로 변경하고 있는데, WBP_HpBar 위젯은 ArenaBattleGAS가 아닌 ArenaBattle 모듈쪽에 있는 것으로 보여서 ArenaBattle쪽 위젯이 GAS쪽 클래스를 부모로 가지는 건 모듈 간 의존성 부분에서 좋지 않은 방법이 아닐까? 라는 생각이 들었어요. 해당 부분은 강의 내용처럼 저렇게 설정해도 문제가 없는 것인지, 혹은 더 좋은 방법이 있을지 궁금합니다!
-
해결됨
운영 테스트 중입니다.
운영 테스트
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
mutable과 var의 차이점
컬렉션 부분을 배우면서 한가지 이상한 점이 생겨서 질문드립니다. 강의 초반 var / val의 차이점을 알려주시면서 읽기, 쓰기 가능 혹은 읽기만 가능 이라고 알려주셨는데 val로 List을 만들면 당연히 각각의 변수의 값을 바꿀 수 없는 거 아닌가 싶어서요또, val로 만든 List가 mutable을 붙이면 값이 변화할수 있다는게 조금 이해가 되지 않습니다 추정을 조금 해보자면 List을 만들면 List자체가 하나의 변수가 되어 val { } 안에 들어있는 값을 읽어오고 그 값을 List에 새롭게 저장하는 방식인가요? 만약에 그런 방식이 아니라면 이해가 되지 않는 부분입니다반대로 생각하면 var로 선언한 변수들로 immutableList를 만들었을때 값이 변화가 안되는건가요?