묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
커리큘럼문의
언어과목에서 다 맞는 목표가 아니면 커리큘럼 중에 섹션 7, 10, 12는 안봐도 될까요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
12_3강 AutoMapper 설명 중에 MapperConfiguration
12_3강 AutoMapper 설명 중에 MapperConfiguration 설정을 사이트에서 복사해오는 부분이 있습니다. var configuration = new MapperConfiguration(cfg => cfg.CreateMap<Order, OrderD to>(), loggerFactory);공식사이트에서 new MapperConfiguration 생성시 loggerFactory 가 추가되도록 되어 있습니다. 강의 내용상 아직 DI를 다루지 않았고, 또한 로그가 그렇게 중요한게 아니라면 var configuration = new MapperConfiguration(cfg => cfg.CreateMap<APP_USER, CreatedUserDTO>(), NullLoggerFactory.Instance); 강의 듣는 분들은 이렇게 처리하시면 될 것 같습니다.
-
미해결[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
여전히 node.js에서 설치 오류
일단 설치가 제대로 안돼 2일째 학습도 해보았는데 설치가 잘 안되면 진도를 제대로 따라갈 수 없네요.어린 아이가 있어 긴시간을 내기 어려워 어디에서부터 수정해야할지 뒤죽박죽 일단 명령어만 학습 익히고 있습니다.
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
검색기능 질문
from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from datetime import datetime from bson.objectid import ObjectId from flask import abort from flask import redirect from flask import url_for import time import math app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.template_filter("formatdatetime") def format_datetime(value): if value is None: return "" now_timestamp = time.time() offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(now_timestamp) value = datetime.fromtimestamp((int(value) / 1000)) + offset return value.strftime('%Y-%m-%d %H:%M:%S') @app.route("/list") def lists(): #페이지 값(값이 없는 경우 기본값은 1) page = request.args.get("page", 1, type=int) #한페이지당 몇개의 게시물을 출력할지 limit = request.args.get("limit", 7, type = int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", type=str) #최종적으로 완성된 쿼리를 만들 변수 query = {} #검색어 상태를 추가할 리스트 변수 search_list = [] if search == 0: search_list.append({"title":{"$regex": keyword}}) elif search ==1: search_list.append({"contents":{"$regex": keyword}}) elif search ==2: search_list.append({"title":{"$regex": keyword}}) search_list.append({"contents":{"$regex": keyword}}) elif search == 3: search_list.append({"name":{"$regex": keyword}}) #검색 대상이 한개라도 존재할 경우 query 변수에 $or 리스트를 쿼리 합니다. if len(search_list) > 0: query = {"$or": search_list} print(query) board = mongo.db.board datas = board.find(query).skip((page - 1)*limit).limit(limit) #게시물의 총 갯수 tot_count = board.find(query).count() #마지막 페이지의 수를 구합니다. last_page_num = math.ceil(tot_count / limit) #페이지 블럭을 5개씩 표기 block_size = 5 #현재 블럭의 위치 block_num=int((page-1)/ block_size) #블럭의 시작 위치 block_start = int((block_size * block_num) +1) #블럭의 끝 위치 block_last = math.ceil(block_start +(block_size - 1)) return render_template( "list.html", datas = datas, limit=limit, page=page, block_start=block_start, block_last=block_last, last_page_num=last_page_num, search=search, keyword=keyword) @app.route("/view/<idx>") def board_view(idx): # idx = request.args.get("idx") if idx is not None: board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data is not None: result = { "id" : data.get("_id"), "name" : data.get("name"), "title" : data.get("title"), "contents" : data.get("contents"), "pubdate" : data.get("pubdate"), "view" : data.get("view"), } return render_template("view.html", result=result) return abort(400) @app.route("/wirte", methods = ["GET", "POST"]) def board_wirte(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, title, contents) current_utc_time = round(datetime.utcnow().timestamp() * 1000) board = mongo.db.board post = { "name" : name, "title" : title, "contents" : contents, "pubdate" : current_utc_time, "view" : 0, } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view", idx=x.inserted_id)) else: return render_template("wirte.html") if __name__ == "__main__": app.run(debug = True) <script> function search() { var v_search = document.getElementById("search").value; var v_keyword = document.getElementById("keyword").value; if(v_search == "" || v_keyword == ""){ return false; } else{ self.location.href="{{url_for('lists')}}?search=" + v_search + "&keyword=" + v_keyword; } } </script> {% if datas.count() > 0%} <table> <thead> <tr> <td>번호</td> <td>제목</td> <td>이름</td> <td>날짜</td> <td>조회수</td> </tr> </thead> <tbody> <!--반복되는 구간--> {%for data in datas%} <tr> <td>{{loop.index + (page - 1) * limit}}</td> <td><a href="{{url_for('board_view', idx=data._id, page=page, search=search, keyword=keyword)}}">{{data.title}}</a></td> <td>{{data.name}}</td> <td>{{data.pubdate | formatdatetime}}</td> <td>{{data.view}}</td> </tr> <!--반복되는 구간 끝--> {%endfor%} </tbody> </table> {%if block_start -1 > 0%} <a href="{{url_for('lists', page=block_start - 1, search=search, keyword=keyword)}}">[이전]</a> {%endif%} {%for i in range(block_start, block_last + 1)%} {% if i > last_page_num%} {%else%} {%if i == page%} <b>{{i}}</b> {%else%} <a href="{{url_for('lists', page=i, search=search, keyword=keyword)}}">{{i}}</a> {%endif%} {%endif%} {%endfor%} {%if block_last < last_page_num%} <a href="{{url_for('lists', page=block_last+ 1, search=search, keyword=keyword)}}">[다음]</a> {%endif%} <select name="search" id="search"> <option value="">검색대상</option> <option value="0">제목</option> <option value="1">내용</option> <option value="2">제목 + 내용</option> <option value="3">작성자</option> </select> <input type="text" name="keyword" id="keyword"> <input type="button" value="검색" onclick="search()"> {% else %} <h3>데이터가 없습니다.</h3> {%endif%} 분명 똑같이 했는데 왜 검색이 안되고 무반응인지 잘 모르겠어요. 뭐가 문제일까요?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
강의 공부에 대해서 관련된 질문!
공부중인데 내용이 너무 좋아서 블로그에 공부한 예제 코드와 정리된 내용을 일부 작성하려 하는데 괜찮을까요?? 스크린샷으로 첨부하거나 그런건 아니고 코드는 제 ide 에서 실행한것과 git repo 에 올리면서 공유하려고 해~ 그리고 공부한 내용들은 직접 작성 하고 정리해서 올리려고 하는데 괜찮은지 궁금해서 질문해!!
-
미해결6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
UNDO LOG와 롤백에 관해 질문드립니다.
1. 현재 학습 진도4-5 수강중 트랜잭션 내 isolation level에 따른 데이터 consistency 보장을 위해, WAL(Write-Ahead Logging)시 내부적으로 사용하는 UNDO LOG와 REDO LOG를 활용한다. 2. 어려움을 겪는 부분그러면 트랜잭션 내에서 rollback을 수행하면, UNDO LOG를 기반으로 디스크 내용을 트랜잭션 수행 이전 상태로 되돌린다고 이해했습니다. 맞게 이해한걸까요?만약 이게 맞다면, WAL로 인해 트랜잭션 내 작업들은 커밋되기 전에 디스크에 반영되지 않으므로, rollback된다면 UNDO LOG를 활용하지 않더라도 디스크 내 데이터가 이전 내용임이 보장되지 않나요?롤백 시 UNDO LOG가 어떤 부분에서 활용되어야 하는지 이해하지 못했습니다.
-
미해결
세일즈포스 마케팅 클라우드 인텔리전스 공인 전문가 (AP-215) 시험 연습 문제
세일즈포스 마케팅 클라우드 인텔리전스 공인 전문가 (AP-215) 시험 준비는 단순히 정의를 암기하는 것 이상을 요구합니다. 명확한 개념 이해, 실습 인식, 그리고 시험 구조를 반영한 실제 exam questions에 대한 노출이 필요합니다. 많은 전문가들이 practice questions, exam dumps, 그리고 선별된 학습 자료에 의존하지만, 핵심은 이를 현명하게 사용하는 방법을 아는 것입니다. 다른 어떤 certification exam과 마찬가지로 올바른 준비 전략은 이론, 안내된 예제, 그리고 꾸준한 복습을 결합하는 것입니다. 이는 뇌가 시험에서 직면하게 될 content와 질문 스타일을 모두 인식하도록 훈련하는 것과 같습니다.세일즈포스 마케팅 클라우드 인텔리전스 공인 전문가 (AP-215 자격 시험 문제에 접근할 때, Salesforce는 지식을 실제 맥락에서 적용하는 능력을 평가한다는 것을 기억하세요. 마케팅 시나리오를 해석하고, 데이터 모델을 정렬하며, 분석에 대한 이해를 보여주어야 합니다. 맥락 없이 Certification Exam Dumps 또는 Exam Practice Dumps를 사용하는 것은 피상적인 학습으로 이어질 수 있습니다. 대신 그것들을 진단 도구로 활용하세요. 실수를 분석하고, 왜 한 옵션이 맞거나 틀린지 반성하며, 논리를 다듬으세요. 이러한 능동적인 exam dumps 복습 방법은 준비를 더욱 효율적으로 만듭니다.다음은 이해도를 점검하기 위한 다섯 가지 예제 연습 문제입니다:Marketing Cloud Intelligence에서 마케터가 여러 소스의 데이터를 조화시키는 데 사용하는 구성 요소는 무엇입니까? A) Data Streams B) Contact Builder C) Journey Builder D) Email StudioSalesforce Marketing Cloud Intelligence에서 harmonization mapping의 역할은 무엇입니까? A) 잘못된 데이터 필드를 정리한다 B) KPI dashboards를 정의한다 C) 이질적인 데이터 차원을 정렬한다 D) 마케팅 여정을 구성한다성과 추세를 시간에 따라 가장 잘 전달하는 시각화 유형은 무엇입니까? A) Heatmap B) Line chart C) Pie chart D) Scatter plot대규모 데이터 변환을 처리할 때 권장되는 모범 사례는 무엇입니까? A) 수동 CSV uploads 사용 B) 데이터 스트림 수준에서 변환 적용 C) 분석 전에 Excel로 내보내기 D) 자동화를 비활성화하고 필요 시 실행한 마케팅 분석가가 반복적인 데이터 새로 고침을 예약하고 싶어 합니다. 어떤 기능을 사용해야 합니까? A) Data Mapping Tool B) Scheduling Automation C) Journey Scheduler D) API TriggerMicrosoft, Linux Foundation, IBM, Amazon, 그리고 HP와 같은 플랫폼의 Certification Exam Dumps를 검토하면 시험이 단순 암기가 아닌 적용된 추론을 평가한다는 패턴을 보여줍니다. 현실적인 exam practice dumps와 체계적인 Salesforce practice questions로 훈련하면 자신감이 꾸준히 향상됩니다. 많은 학습자들이 또한 학습 생태계의 일부로 Prepbolt와 같은 자료를 언급하며, 접근 방식을 비교하고 이해를 검증하기 위해 활용합니다.
-
미해결프로들만의 차별화된 엑셀 데이터 분석과 차트 시각화
데이터형식바꿀떄 함수 vs 텍스트나누기
숫자인데 문자형 데이터를 숫자데이터로 변환시 value함수랑 텍스트 나누기쓰는거랑 차이가있나요? 어느걸더 권장하나요?
-
미해결고객의 친구가 되기 위한 'UX Writing'
강의자료 요청드립니다!
강의자료 요청드립니다!이메일 : jeongh.24m@gmail.com
-
해결됨코딩 없이 AI 자동화 전문가가 되는 법, n8n 완벽 가이드
22강 도커에 레디스 설치 문제
어떤 강의에 대한 질문인지 자세하게 알려주시면 답변을 드리는데 도움이 됩니다. 스크린샷윈도우키 + 쉬프트키 + S(윈도우)을 자세히 첨부하시면 답변 드리는데 많은 도움이 됩니다. 동영상 재생 관련 같은 인프런 서비스 관련 문의는 1:1 문의하기를 이용해 주세요.안녕하세요. 도커에 레디스 설치가 오류나서 여쭤봅니다. 레디스 DOCKER-COMPOSE-YML도 ai한테 짜달라고 해서 짜서 파일 만들었고 이 경로로 terminal들어가서 docker compose up -d를 쳤는데 "error getting credentials - err: exit status 1, out: ''라고 계속 뜹니다.로그인 문제일수도 있다고 해서 도커 로그인 다시했는데도 계속 저렇게 뜨고 있는데 어떻게 해결할 수 있을까요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
member의 password null 체크 로직
안녕하세요! 토비님 좋은 강의 잘 듣고 있습니다 :)별거 아닌것 같긴합니다만..도메인 코드 개선중 문득 궁금한 점이 생겨서 문의남겨봅니다..!Member를 생성하는 정적 펙토리 메소드에서member.passwordHash = requireNonNull(passwordEncoder.encode(createRequest.password()));이렇게 암호화된 값에 대한 null 체크를 하도록 구현하셨습니다.그런데 아래와 같이 다른 파라미터처럼 암호화를 하기전에 password 파라미터 자체를 null 체크하는게 일관성이 있다고 생각되는데 암호화를 한 후 null체크를 하신 토비님의 의도가 궁금합니다!!member.passwordHash = passwordEncoder.encode(requireNonNull(createRequest.password()));
-
미해결얄코의 가장 쉬운 자료구조와 알고리즘
이중연결리스트 노션 페이지
이중연결리스트 노션 페이지 링크가 안보이네요...ㅠ 저만 안보이는건가요..? 다른 강의 노션 링크는 하단에 보이는데..
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
jdk 버전 17
현재 컴퓨터에서 jdk 버전 17을 이용하고 있는데 그대로 진행해도 문제가 없을까요..? jdk 11 버전을 깔고 환경변수 편집했는데 cmd 버전에 여전히 17이라고 나오네요..
-
미해결가장 쉽고 깊게 알려주는 MongoDB 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
섹션8. CAP 퀴즈 질문
CAP 이론 관점에서, 네트워크 분할 상황 시 MongoDB가 기본적으로 무엇을 우선할까요?A. 세 가지 모두B. 가용성과 분할 내성C. 일관성과 분할 내성D. 일관성과 가용성--정답과 설명 부탁드립니다.생각했던 답이 오답이라고 나와서 질문 드립니다.
-
미해결3D 모델링 입문을 위한 라이노(Rhino) '꿀팁' Part.1
립스틱만들기1 (7:34) 원형 만들기
끝에 중간점 잡고 써클을 만들면강의처럼 밑부분에 그려지지 않고,립스틱 정 가운데 써클이 그려지는데밑부분에 그리려면 어떻게 해야하나요~?(밑부분 중앙점에 안잡히고, 중간부분에만 잡혀요)
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
repository에 직접 접근
repository에 직접 접근하는 기준이 어떤건지 궁금합니다.강의에서 예를 들면 @Override public Member updateInfo(Long memberId, MemberInfoUpdateRequest memberInfoUpdateRequest) { Member member = memberFinder.find(memberId); checkDuplicateProfile(member, memberInfoUpdateRequest.profileAddress()); member.updateInfo(memberInfoUpdateRequest); return memberRepository.save(member); } private void checkDuplicateProfile(Member member, String profileAddress) { if(profileAddress.isEmpty()) return; Profile currentProfile = member.getDetail().getProfile(); if(currentProfile != null && currentProfile.address().equals(profileAddress)) return; if(memberRepository.findByProfile(new Profile(profileAddress)).isPresent()){ throw new DuplicateProfileException("이미 존재하는 프로필 주소입니다: " + profileAddress); } }이 부분에서 member를 찾아올 때는 memberFinder를 통해서 가져왔는데 아래 중복 체크에서는 repository를 바로 사용했습니다. 물론 강의에서 profile을 찾는거기에 memberFinder에 넣기에는 책임이 난잡해질 것 같다는 느낌은 듭니다만 여기서 구분한 기준이 있는지 궁금합니다.다른 예를 들면 public LoginResponse login(LoginRequest request) { Member member = memberFinder.findByEmail(request.email()); if(!member.verifyPassword(request.password(), passwordEncoder)){ //일치하지 않으면 에러 } //이 부분은 직접 접근하는게 좋은지 member.updateLastLoginAt(); memberRepository.save(member); //아니면 memberUpdater라는 포트를 통해 접근하는게 좋은지 memberUpdater.updateLastLoginAt(); return new LoginResponse(member.getId(), member.getStatus()); }이런 경우 둘중 어떤 방법이 더 구조적으로 좋은지 궁금합니다.
-
해결됨[4주 과정] <클로드 코드> 완독 챌린지 : 매일 1시간씩 4주 동안 클로드 코드 도서 완독하기!
Ubuntu 상에서 Node.js 설치가 안되네요. [답을 찾아서 댓글에 추가함]
집에서 안되서, 회사 컴퓨터에서 해도 동일하네요. 10) 복사한 내용을 마우스 우클릭으로 붙여넣기를 했는데, 아래와 같은 오류가 나옵니다. 왠지... ".nvm" 요넘 부터 뭔가 실행이 안된 듯 싶어요. 이정도면 다른 분들도 모두 비슷한 오류가 나올 듯 싶어요. 가장 쉬운 단계에서 넘어가질 못하니... 앞으로가 많이 걱정되네요. ㅎㅎㅎ
-
미해결서류탈락은 그만! 챗GPT로 기업별 맞춤 합격 이력서 반자동화하기
AI 모델 선택
안녕하세요! 강의를 수강하고 있는 학생입니다.강의에서는 ChatGPT를 기반으로 실습을 진행하고 있는데, 개인적으로 Claude AI를 주로 사용하고 있어서 궁금한 점이 있습니다.강의에서 다루는 이력서 분석, 작성, 피드백 등의 실습을 Claude로 진행해도 비슷한 결과를 얻을 수 있을까요?혹시 강사님께서 Claude 사용 경험이 있으시거나, Claude로 실습할 때 주의할 점이나 프롬프트 차이점 등이 있다면 조언해주시면 감사하겠습니다.
-
미해결3D 모델링 입문을 위한 라이노(Rhino) '꿀팁' Part.1
안녕하세요! 라이노8의 단축키(앨리어스)파일 요청드립니다~
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - ★ 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 라이노8의 단축키(앨리어스)파일 요청드립니다~ 컴퓨터를 백업하니 다시 만들수가 없네요 ㅠㅠ
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
질문드립니다
안녕하세요 ! APM setup 모니터 프로그램이 작동불가인거같아 XAMPP 프로그램으로 대처해서 ORACLE, MS SQL, MySQL 까지 연동완료해서 게시판 까지 올렸는데 아래 그림처럼 오류가 떠서 문의드립니다 코드를 직접 수정해서 게시글 검색, 작성, 수정 삭제하는 방향으로 수정도 해보았는데 그렇게 되면 싱글쿼터나 특수문자를 입력했을때 에러메시지가 실습처럼 제대로 반환되지 않아서.. 문의드립니다..추가로 혹시 APM setup 은 모니터링 프로그램상으론 사용불가이라 수동으로 직접 재시작을 해보아도 동작이 안되는거같아요 혹시 대체할만한 프로그램이 있을지도 궁금합니다.꼭 해결하고싶은 부분이라,, 답변 부탁 드리겠습니다