묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 비기너: 튼튼한 기본 만들기
코딩 시간 풀이입니다.
"use strict"; // 문자열을 넣을 배열 생성 var result = ["<ul>"]; // 숫자를 파라미터로 받아 해당 숫자가 들어간 <li id = id(number)>id(number)</li> 문자열로 리턴한다. function makehtmlline(number){ var line = "<li id=id" + number + ">id" + number + "</li>" return line; }; // 1부터 10까지 makehtmlline() 함수를 사용한 문자열을 만들고 result에 추가한다. for (var k = 1; k < 11; k++){ result.push(makehtmlline(k)); }; // ul 태그를 닫고, 문자열로 변환하여 출력한다. result.push("</ul>") document.body.innerHTML=result.join("");
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
zynq gpio external interrupt관련 질문있습니다.
안녕하세요. 보드를 통해 학습중에 문득 궁금한것이 타사 MCU처럼 External Interrupt 기능처럼 특정 SW를 눌러 GPIO핀에서 입력받아서 인터럽트를 처리하는 기능도 제공이 되나요? (예: STM32F 에서 hal driver제공하여 함수를 가져다 쓰기만 하면 사용 가능하도록) 그렇지 않으면 Interrupt함수를 만들어서 사용해야 하나요? 이런 경우 어떻게 접근해야 하는지.. 궁금합니다. 인터럽트 경우 while문에서 해당인터럽트가 발동하면 ISR에서 처리하도록 되어져 있는데 사용자가 구현이 가능한건가요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
이미지 업로드 중 에러가 발생하여 질문드립니다. 제가 잘못된 정보를 제공했다고 하는 것 같은데 도저히 무엇이 잘못인지를 모르겠습니다...ㅠㅠㅠ 버킷 권한도 잘 설정한 것 같고 .env 파일과 vim으로도 액세스 키 복사하였는데도 그렇습니다.... 코드도 그대로 한 것 같은데 무엇이 문제일까요? AWS.config.update({ accessKeyId: process.env.S3_ACCESS_KEY_ID, secretAccessKey: process.env.S3_SECRET_ACCESS_KEY, region: "ap-northeast-2", }); const upload = multer({ storage: multerS3({ s3: new AWS.S3(), bucket: "react-nodebird-aws-s3", key(req, file, cb) { cb( null, `original/${Date.now()}_${path.basename(file.originalname)}` ); }, }), // 크기 제한을 지정 limits: { fileSize: 20 * 1024 * 1024 }, // 20MB }); router.post( "/images", isLoggedIn, upload.array("image"), async (req, res, next) => { // req.files 는 `image` 라는 파일정보를 배열로 가지고 있음. res.json(req.files.map((v) => v.location)); } ); 에러 검색했을 때 액세스 키에 /나 %가 포함되어 그럴 수 있다하여 그 부분도 확인해보았으나 그대로입니다ㅜㅜㅜ
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
nginx 필요
안녕하세요 ! 배포를 하는 도중 travis에서 test 통과는 다 했는데 elastic beanstalk에서 자꾸 에러가 나서 질문드립니다 ㅠ 현재 노드 서버 + RDS만 사용해서 nginx 설정은 따로 생략했는데 nginx 부분을 생략해서 에러가 나는 걸까요?? 백엔드만 배포하는 경우에도 nginx 설정이 필요한가요?!
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
강의 하단 텍스트 논리곱 연산자 오타
강의 하단 텍스트에 정리된 논리곱 연산자가 &&가 아닌 논리합 연산자 ||로 작성되어 있습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
회원가입시 에러메세지 관리 하는 부분에서 에러가 납니다... 도움 부탁드립니다..
리액트 기본 기능으로 회원가입 폼 만들기 17분 46초 에러메세지 js 코드 파이썬 시리얼라이저
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
질문있습니다~
하이 오더 컴포넌트는 템플릿(html)코드 재사용은 안되는 건가요?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
props로 데이터받을 때 질문입니다
props: { info: { type: Object, default: () => ({}), }, // info: Object // info: {} }, UserProfile에서 props를 이런 식으로도 받을 수 있던데 아래 주석과 다른 차이가 무엇인가요?
-
미해결누구나 할 수 있는 안드로이드 앱 개발 - 1 (Kotlin)
null exception
똑같이 코드 따라치고 실행을 했는데 null exception이 나옵니다. java.lang.NullPointerException at com.my.githubapi.MainActivity$onCreate$1.onResponse(MainActivity.kt:31) for(str in response?.body()?.items!!){ 어떻게 해결해야되나요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
Auth Module의 역할
해당 프로젝트에서 jwt를 이용한 로그인을 구현하기 위해서 Auth Module을 추가하였습니다. 그리고, Auth Module 내부에 jwt에 대한 구현 및 전략 수립 후 Auth Service에서 JwtLogin을 구현하였습니다. 저는 Cats Module에서 Login기능을 구현하고 Cats에 대한 데이터 검증 후 JWT Token 발급을 Auth Service에서 제공하는 것이 Module에 역할에 맞는 기능들을 가지게 되어서 더 좋다고 생각이 들었습니다. Auth Module에 jwt토큰에 대한 발급 및 검증이라는 역할만 부여하는 것이 아니라 Login 기능을 전체(Cats에 대한 데이터 검증을 포함하는)를 구현하는 이유가 무엇인지 궁금합니다!
-
미해결리눅스 커널 해킹. A부터 Z까지
./start.sh파일
start,sh파일이 실행이안되요
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
그리드 숨기기
그리드 숨기기 단축키를 누르면 (컨트롤+g) 누구면 그룹화되고 그리드는 안없어지네요ㅜㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 컨텍스트와 LAZY 로딩 관계
안녕하세요. 영한님강의를 듣고 궁금한점이 있어서 질문드립니다. 영속성 컨텍스트와 Proxy, LAZY 강의를 들었을 때 Member 엔티티안에 Team 엔티티를 필드로 가지고 있고, LAZY로 연관관계를 설정하였을 때 , Member만 조회하였을 때는 Team은 아직까지 Proxy객체에 null로 있고, Team의 데이터를 조회했을 때 Proxy객체가 Team 객체를 참조하는걸로 이해했습니다. 그렇다면 Team의 객체가 null로 초기화 되어있다가 조회한 데이터로 초기화되는걸로 이해했습니다. 아니면 그냥 Select 쿼리만 나오고 Team proxy객체는 계속해서 null이고 Team 데이터를 조회 할 때만 select쿼리만 호출되는걸까요..? List<FMSCompany> contents = companies.getContent(); for (int i = 0; i < contents.size(); i++) { FMSCompany company = contents.get(i); FMSBranch branch = company.getBranches().stream().filter(fmsBranch -> Objects.equals(fmsBranch.getId(), company.getHqBranchId())).findFirst().get(); System.out.println(branch.getLocation() +", "+ branch.getCompany().getId() +", "+ branch.getBusinessRegistrationNumber() ); } } public class FMSCompany extends AbstractCompany { @JsonManagedReference @OneToMany(fetch = FetchType.LAZY, mappedBy = "company", cascade = CascadeType.ALL) private List<FMSBranch> branches = new ArrayList<>(); @JsonManagedReference @OneToMany(fetch = FetchType.LAZY, mappedBy = "company", cascade = CascadeType.ALL) private List<FMSBranchGarage> garages = new ArrayList<>(); @JsonIgnore @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinColumn(name = "hqBranchId", foreignKey = @ForeignKey(name = "fk_fms_company__fms_branch__id")) private FMSBranch hqBranch; @Column(insertable = false, updatable = false, columnDefinition = "BIGINT(20) COMMENT '본사 아이디'") private Long hqBranchId; // ATTRIBUTENAME: owner -> boss, ownerId -> bossId @JsonBackReference @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "ownerId", foreignKey = @ForeignKey(name = "fk_fms_company__fms_user__id")) @ToString.Exclude private FMSUser owner; @Column(columnDefinition = "TINYINT(1) DEFAULT 1 COMMENT '삭제 여부 (0: 삭제 안 함, 1: 삭제)'") private Boolean isDeleted = Boolean.FALSE; @Column(columnDefinition = "DATETIME DEFAULT NULL COMMENT '마지막 삭제 일시'") private LocalDateTime lastDeletedDateTime; // ATTRIBUTENAME: grantedRoles -> roles // @formatter:off @JsonIgnore @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @ToString.Exclude @JoinTable ( name = "fms_company_role", indexes = { @Index(name = "idx_fms_company_id", columnList = "fms_company_id"), @Index(name = "idx_role_id", columnList = "role_id"), }, joinColumns = @JoinColumn(name = "fms_company_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "fk_fms_company_role__fms_company__id")), inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id", foreignKey = @ForeignKey(name = "fk_fms_company_role__role__id")) ) private List<Role> grantedRoles; } public class FMSBranch extends AbstractEntity { @Column(columnDefinition = "VARCHAR(20) COMMENT '지점 이름'", length = 20) private String name; @Column(columnDefinition = "VARCHAR(15) COMMENT '사업자등록번호'") private String businessRegistrationNumber; @Column(columnDefinition = "TEXT COMMENT '주소'") private String address; @Embedded private Location location; @Column(columnDefinition = "VARCHAR(20) COMMENT '연락처'") private String phone; @Column(columnDefinition = "TEXT COMMENT '설명'") private String description; // @Column(columnDefinition = "VARCHAR(20) COMMENT '조직 유형 (HEADQUARTER: 본점, AGENT_OFFICE: 지점)'") // @Enumerated(value = EnumType.STRING) // private Organization organization; // // @Column(columnDefinition = "VARCHAR(20) COMMENT '지점 상태 (NORMAL: 정상, BLOCKED: 정지)'") // @Enumerated(value = EnumType.STRING) // private ServiceStatus status; @Column(columnDefinition = "TINYINT(2) COMMENT '조직 유형 (0 - HEADQUARTER: 본점, 1 - AGENT_OFFICE: 지점)'") @Convert(converter = OrganizationConverter.class) private Organization organization; @Column(columnDefinition = "TINYINT(2) COMMENT '상태 (0 - BLOCKED: 정지, 1 - NORMAL: 정상)'") @Convert(converter = ServiceStatusConverter.class) private ServiceStatus status; @JsonBackReference @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "ownerId", foreignKey = @ForeignKey(name = "fk_fms_branch__fms_user__id")) @ToString.Exclude @EqualsAndHashCode.Exclude private FMSUser owner; @Column(columnDefinition = "BIGINT(20) COMMENT '소유자 아이디'", insertable = false, updatable = false) private Long ownerId; @JsonBackReference @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.DETACH) @JoinColumn(name = "companyId", foreignKey = @ForeignKey(name = "fk_fms_branch__fms_company__id")) @ToString.Exclude @EqualsAndHashCode.Exclude private FMSCompany company; @Column(columnDefinition = "BIGINT(20) COMMENT '업체 아이디'", insertable = false, updatable = false) private Long companyId; @Column(columnDefinition = "TINYINT(1) DEFAULT 1 COMMENT '삭제 여부 (0: 삭제 안 함, 1: 삭제)'") private Boolean isDeleted = Boolean.FALSE; @Column(columnDefinition = "DATETIME DEFAULT NULL COMMENT '마지막 삭제 일시'") private LocalDateTime lastDeletedDateTime; @JsonManagedReference @OneToOne(fetch = FetchType.LAZY, mappedBy = "fmsBranch", cascade = CascadeType.ALL) private FMSBranchPushStatus fmsBranchPushStatus; @JsonProperty(access = JsonProperty.Access.READ_ONLY) @Transient private String companyName; @JsonProperty(access = JsonProperty.Access.READ_ONLY) @Transient private CountInBranchDTO count; @JsonManagedReference @OneToMany(fetch = FetchType.LAZY, mappedBy = "branch", cascade = CascadeType.ALL) private List<FMSBranchGarage> garages = new ArrayList<>(); } FMSBranch의 데이터를 조회를 했음에도 불구하고 FMSBranch Proxy는 계속해서 null로 초기화 되어있습니다..
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
a href 질문입니다.
MemberSaveServlet.java에서 <a href=\"/index.html\">메인</a> 이 코드를 실행하기 전 위치는 http://localhost:8080/servlet/members/save 인데 index.html만 적어도 http://localhost:8080/index.html로 가지는데 원리가 궁금합니다. MemberFormServlet.java에서 <form action=\"/servlet/members/save\" 를 <form action=\"/index.html\" 로 바꾸면 index.html의 화면이 출력될꺼라고 예상했는데 URL은 http://localhost:8080/index.html 지만 Whitelabel Error Page가 나오더라구요 이 부분도 궁금합니다.
-
미해결Django REST Framework 핵심사항
PostSerializerDetail serializer를 이용해 직렬화하고, 해당 ViewSet을 router를 통해 url 매핑을 한 후 api2/post/<int:pk>(get) 엔드포인트에 request를 하면 에러가 발생합니다.
* VueDjAgencyDrf-untilCh7-2의 api2/views.py에서 (프로그래머가 직접 직렬화하는 것이 아니라 VueDjAgencyDrf-untilCh6의) PostSerializerDetail serializer를 이용해 직렬화하고, 해당 ViewSet을 router를 통해 url 매핑을 하면 아래와 같은 에러가 발생합니다... * 제가 추가한 코드는 다음과 같습니다. # api2/urls.py router = routers.DefaultRouter() router.register(r'post', views.PostViewSet) urlpatterns = [ ... path('', include(router.urls)), ... ] # api2/views.py def get_prev_next(instance): try: prev = instance.get_previous_by_update_dt() except instance.DoesNotExist: prev = None try: next_ = instance.get_next_by_update_dt() except instance.DoesNotExist: next_ = None return prev, next_ class PostViewSet(ModelViewSet): queryset = Post.objects.all() serializer_class = PostListSerializer pagination_class = PostPageNumberPagination def get_serializer_context(self): return { 'request': None, 'format': self.format_kwarg, 'view': self } def get_queryset(self): return Post.objects.all().select_related('category').prefetch_related('tags', 'comment_set') def retrieve(self, request, *args, **kwargs): instance = self.get_object() prevInstance, nextInstance = get_prev_next(instance) commentList = instance.comment_set.all() data = { 'post': instance, 'prevPost': prevInstance, 'nextPost': nextInstance, 'commentList': commentList, } serializer = PostSerializerDetail(instance=data) return Response(serializer.data) * 그런데 이 이슈는 아래와 같이 router를 쓰지 않으면 발생하지 않고 정상 동작합니다. path('post/', views.PostViewSet.as_view(actions={ 'get': 'list', }), name='post-list'), path('post/<int:pk>/', views.PostViewSet.as_view(actions={ 'get': 'retrieve', }), name='post-detail'), path('post/<int:pk>/like/', views.PostViewSet.as_view(actions={ 'get': 'like', }), name='post-like'), * 어떻게 하면 PostSerializerDetail를 통해 직렬화하고 해당 ViewSet이 router를 이용하도록 하여도 에러가 나지 않을 수 있을까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
소스코드 변경하면 도커를 껐다가 켜지 않아도 반영되어야 맞나요?
처음엔 껐다가 켜야 된다고 하셨는데 docker-react-app강의 할때 보니 -v 옵션을 주면 소스코드변경후 도커를 껐다 켜지 않아도 자동으로 반영되는 것 처럼 보입니다. 제가 윈도우머신이라서 자동반영이 안되는건가요? 아니면 설정을 어떻게 하면 자동으로 반영되게 할 수 있는 건가요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
%f에 관한 질문
print('%06.2f' %(3.1245678))여기에서 06이 의미하는 것이 전체 자릿수가 6개이고 정수부분에서 남는 부분을 0으로 채운다는 의미로 예시로 주어주신 숫자를 출력하면 003.이런식으로 나오게 된것이라고 이해했는데, 0 과 공백말고 1, 또는 _ 이런식의 다른 방법으로는 정수자리를 출력할 수 없는것인가요? (113. __3. 이런식으로요..!) print('%_6.2f' %(3.1245678)) 이런식으로 하니깐 출력이 안된다고 뜨더라구요!
-
미해결CSS Flex와 Grid 제대로 익히기
padding 0 1rem질문입니다.
안녕하세요 강의듣다가 궁금한점이있어서 질문드립니다. 현재 강사님이 하신대로 코드작성했을때는 반응형으로 600이상에서는 2줄 1200이상에서는 3줄이제대로 나오는데요 이방식은 default.css가 적용되있을때 제대로 나오고 만약 reset을 안해주면 윗부분과 같이 보라색으로 공간이생기면서 제대로 반응형이 안됩니다.. 여기서 제가 flex-item에 flex: auto을 해주면 600의 경우만약 50%씩 길이를해서 반씩 나눠서 합이 100%가되면 강사님처럼 제대로 공간이 채워지지만 9개중 짝이안맞는 1개의경우 flex:auto로 인해서 공간이 100%늘어나 간격이이상해집니다.. 강사님이 주신 reset.css때매 줄간격이맞는거같은데.. 이럴경우 프로젝트할때마다 강사님의 reset파일을 써야할까요? 만약 그게아니라면 현재 상태에서 어떻게 보라색 간격을 없앨수있을까요?? 아래는 제가 혼자할때 만든 실습코드입니다. http://colorscripter.com/s/UAEVG5f
-
미해결마케터를 위한 구글 애널리틱스 실무
계정 생성 시 유니버셜 + GA4 버전으로 만들면 데이터 수집 기간을 만료 없음으로 설정할 수 없나요?
안녕하세요 선생님 수업 너무 잘 듣고 있는 한 대학생입니다 수업을 듣다가 크게 2가지 질문이 있어서 게시물 남겨 드립니다 첫번째는 초기에 계정을 설정할 때 G A 유니버셜 버전과 새로 만들어진 GA4 버전 중에서 유니버셜 버전으로 만드는 식으로 가르쳐주셨지만 호기심에 두 버전을 섞인 버전으로 고급 설정을 하였는데요, 이후 수업을이어서 듣다 보니 데이터 수집 기간에 변경할때 GA4 의 경우 최대 14개월 까지 밖에 없음을 확인 했습니다. 그렇다면 이두 버전이 섞인 경우에는 데이터 수집 기간 역시 2가지 버전 중에서 하나를 선택할 수 있는 것이 아니라 무조건 GA4 버전을 따라서 14개월 까지 밖에 수집 할 수 없는 것일까요?? 또 G A4 의 경우 관련된 앱관련 데이터도 트래킹할 수 있다고 언급 하셨는데 그렇다면 이후에 인스타그램 계정 관련 데이터도 GA4 를 통해서 트래킹할 수 있을까요? 초보자 기준에서 너무 큰 도움 받고 있습니다 감사합니다! - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결파이썬(Python) 기초부터 실무까지 part.1
마지막 숫자 입력하는 문제
선생님이 작성해주신 코드는 y를 입렸했을때는 계속 게임을 다시 진행한다고 하시는데.. y를 누르지 않고 다른버튼을 눌러도 게임을 지속하게 됩니다. 사실 코드상 "y" or "n" 이 아닐경우에는 다시 입력하라는 코드를 작성해야하는데 이때 else 구문을 넣어서 코딩을 해야할 것 같은데 그럴 경우..좀 헷갈리네요 ㅠㅠ 잘못된 문자를 작성했다고 바로 while문 초기로 올라가버려서.. * 선생님코드 # 중첩 if 문이 들어가서 게임의 지속 여부를 확인하는 코드 if code == "n": # 게임 종료 코드 print("게임을 종료합니다.") breakelse: # 게임을 지속하는 코드 print("--------------------") # 게임을 재시작을 하기 위해서 다시 난수발생과 cnt 를 초기화를 해야한다. print("게임을 재시작합니다.") num = randint(1, 100) print("발생한 난수의 값 : ", num) cnt = 0 * 제코드# 중첩 if 문이 들어가서 게임의 지속여부를 확인하는 코드if code == "n": # 게임 종료 코드 print("게임을 종료합니다.") breakelif code == "y": #게임 지속하는 코드 print("---------------------------") print("게임을 재시작합니다.") randnum = randint(1,100) print("발생한 난수의 값 : ", randnum) cnt = 0 else : print("잘못된 문자를 작성하였습니다.")