inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

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

알고리즘 문제

코딩테스트 [ ALL IN ONE ]

안녕하세요 선생님 🙂 먼저 양질의 강의를 제공해 주셔서 감사합니다! 정말 재밌게 공부하고 있어요! 다름이 아니라 그날 배운 강의 내용과 관련해서 연습식으로 문제를 풀고 싶은데요 알고리즘은 사이트를 아직 제대로 사용해 본 적이 없어서요.. 혹시 어떤 사이트가 괜찮은지, 그리고 카테고리 별로 풀어 보고 싶다면 어떻게 접근을 해야 하는지 팁을 받을 수 있을까요?!

  • python
  • 코딩-테스트
  • 알고리즘
catwalk 댓글 1 좋아요 1 조회수 303

반복 풀기

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

안녕하세요 강의 잘 듣고 있습니다. 저는 자바로 풀이하고 있는데요 풀이를 해보다가 실패하고 답안을 보고 이해하고 성공했습니다. 하지만 아마도 며칠 지나고 봤을 때 풀 수 있을지 의문입니다. 이럴 때는 며칠동안 반복해서 보는게 좋을까요? 항상 어렵네요 알고리즘은 ㅎㅎ..

  • python
  • 코딩-테스트
  • 알고리즘
김대영 댓글 1 좋아요 0 조회수 280

modal창에서 데이터를 저장하고 싶은데요.

파이썬으로 장고(Django) 공략하기: 입문

안녕하세요. 강의를 보고 제가 간단한 erp를 만들고 있는데요. 다른건 어떻게 다 해결했는데요 모달창에서 부모창으로 데이터를 보내는게 안되더라고요. 혹시 방법이 있을까요? 제가 구현하고 싶은건요 출고할 제품을 입력할때 모달창으로 미리저장된 제품을 선택하면 부모창의 text창에 보내지고 출고할 제품을 다 입력했으면 저장을 눌러서 데이터를 저장하고 싶은데요. 모달창에서 부모창의 text나 label 위젯으로 데이터를 보내는 방법이 있을까요?

  • python
  • django
하용우 댓글 0 좋아요 0 조회수 316

[1유형]

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요. 1유형은 부분점수가 있다고 하는데 값을 출력하고 그 때마다 제출 버튼을 눌러야지 채점이 되는건가요? 1유형에도 문제가 3개 있으면 제출 버튼을 3번 누르면 되는 건가요? 2유형은 마지막에 파일 생성하면 끝이 나는 건가요? 3유형도 궁금합니다!!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
tlsdk0284 댓글 0 좋아요 0 조회수 297

안녕하세요! 커리큘럼 문의드려요

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

안녕하세요. 믿고 결제 했습니다!! 이제 막 결제를 한 단계인데요, 인프런에 올리신 강의만 다 들으면 될까요? 아니면 유튜브에 올려두신 영상들도 같이 봐야할까요? 혹시 인프런 강의랑 겹치지는 않지만 도움이 되는 유튜브의 재생목록?? 그런 게 따로 있을까 싶어서 묻습니다. 기존에 무료로 올리신 것도 좋은 영상이 많을텐데 시간이 널널하지 않아서 어떻게 참고할지 고민글 남깁니다!

  • python
  • java
  • c
  • 정보처리기사
신승주 댓글 1 좋아요 0 조회수 379

맥북으로 공부

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 강사님 올해 말 실기 시험 목표로 강의를 수강 중인 학생입니다. 강의 수강 중 문득 걱정이 되는게 있어서 문의 드립니다. 맥북 단축키 같은것도 알려주시고 당장 수강하는데는 별 문제없다고 생각하는데, 시험장에 맥북을 들고 갈 순 없는 노릇이니.. 혹시 맥북으로 공부해 갔을때 발생할 수 있는 문제와 그에 대처방법이 혹시 있을까요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
udinotti 댓글 1 좋아요 0 조회수 374

강의 연장

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 강의 수강생인데요 ㅠ 이번 실기 치르는데 제가 작년부터 강의를 결제해서 듣고 있어서요 혹시 다음주까지 연장할 수 있는 기능이나 방법이 있을까요 ?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
안서은 댓글 1 좋아요 0 조회수 368

핵심 강의를 전체를 실제 실습도 직접 풀어보고 잘 안풀리면 강의를 다시 듣고를 반복해서

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

다 듣게되었는데요. 아직 뭔가 자신감이 없고 문제가 길어지거나 복잡해보이면 주저하게 되는데... 어떻게 더 강화할 수 있을지 고민입니다.. 코딩센세님도 이런 경험이 있을 것 같은데 어떻게 극복하셨나요?

  • python
  • 코딩-테스트
  • 알고리즘
현자타임 댓글 1 좋아요 0 조회수 381

index 목차보다는 색인

핵심만 빠르게, 입문자를 위한 파이썬(Python)과 판다스(Pandas)

index 설명해주실 때 목차가 아니라 '색인'이라고 하는 것이 더 정확할 것 같습니다~ 보통 책의 목차는 정렬이나 검색 용도로 쓰자면 비효율적이라 오히려 더 헷갈릴 수 있을 것 같아요

  • python
  • pandas
nnc 댓글 0 좋아요 0 조회수 326

기획자가 키우는 지식 파이썬

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

안녕하세요! 저는 주니어 기획자인 수강생입니다. 다름아니라 파이썬이 중요하다는 말을 많이 듣고 기본적인 개발 지식이 있을 경우에 좀 더 쉽게 소통할 수 있다는 말을 많이 들었던 터라 개발 관련 지식을 쌓기 위해 파이썬 해당 강의를 들어보려고 하는 상황입니다. 입문으로 경험하기에 괜찮을지 궁금합니다.. 너무 실무적인 접근이기에 강사분의 생각도 궁금합니다..!

  • python
an soojin 댓글 0 좋아요 0 조회수 257

파이썬 수준에 대한 질문입니다.

실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)

삭제된 글입니다

  • python
  • aws
  • Terraform
  • devsecops
형빈 댓글 1 좋아요 1 조회수 673

계속 진도를 빼는 게 맞을까요? 나을까요?

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요 비전공자 직장인입니다. 퇴근후 딴짓 님 강의를 열심히 듣고 있습니다. 현재 작업형2 모의문제 2를 혼자서 풀고 있는데, 단순한 결측치 찾고, 샘플 찾고, 그런 것들은 하겠는데 이거를 모델링 하는 거에서부터 사실 멘붕입니다. 작업형1 모의문제를 풀 때도 똑같이 강의를 듣던것보다 더 어려워서 멘붕이 왔었습니다. 일단은 모르겠는 부분은 인지한 상태로 다시 반복하겠다는 의지로 계속 강의를 듣는 게 맞겠죠? 반복이 답이겠죠??

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
뚜디니 댓글 3 좋아요 1 조회수 349

강의 듣고

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

강의를 한번 쭉 듣고나서는 이 강의 기출을 반복하면되나요??? 합격하신 분들은 이 강의만 반복적으로 돌려서 합격하셨다는건지 아님 얼른 듣고 추가적으로 더 무엇을 했다는것인지 무엇을 해야하는지 궁금합니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
joy10780 댓글 1 좋아요 0 조회수 289

꼭 암기해야하는 코드나 파트...

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

선생님, 강의 열심히 보고 있는데 제가 5월 중순부터 시작하면서 조금 일찍 시작했는데도 불구하고 암기 할 게 너~~~~~~무 많아서 큰일입니다 ㅠㅠ 단권화 시키려고 실기용 교재를 샀는데 정말 정말 이것만큼은 꼭! 외우고 가야하는 코드나 문법같은거를 정리해주실 수 있나요? (강의나...파일로) 사실 고득점 합격은 바라지도 않고 60점 턱걸이로라도 너무 붙고싶습니다!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
moonwrd 댓글 2 좋아요 0 조회수 410

이번 실기일까지 강의를 듣고 싶어요.

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

삭제된 글입니다

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
찰스 댓글 1 좋아요 0 조회수 286

강의 내용 블로그 업로드

Python을 활용한 AWS FinOps 어플리케이션 제작

삭제된 글입니다

  • python
  • aws
  • finops
형빈 댓글 1 좋아요 1 조회수 350

빠르게 코딩하기 위한 단축기 문의 (팁)

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

삭제된 글입니다

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
hello4298 댓글 1 좋아요 0 조회수 444

프로토콜 버퍼 자동 변환기 툴 배포합니다!

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

수업시간에 구글 프로토콜 버퍼를 이용하여 프로토콜 패킷을 생성하는데, 클라이언트와 서버단에서 PacketHandler에는 함수를 직접 정의해서 생성해야합니다. 이 과정이 꽤 번거롭고 이름도 정확하게 맞춰야합니다. 그래서 자동 툴을 이용하여 작성해야 할 코드를 자동으로 정확하게 생성해주는 툴을 제작하여 배포합니다. 이 기능의 배포는 여기에서만 합니다. 이 기능은 UnityEditor Tools를 구현하여 이용하는 방식입니다. [여기를 클릭하여 다운로드] 스크립트를 다운로드합니다. (또는 아래 스크립트를 복사하여 작성) 유니티 에디터 Assets 폴더 안에 넣습니다. 위치는 상관 없습니다. 유니티 에디터 상단 바에서 Tools/Bonnate/Socket/Generate Protocol Code From Enum을 선택합니다. 프로토콜 버퍼 에디터에서 MsgId에 프로토콜 이름을 복사합니다. 주석을 지원합니다. /* 주석은 구분 없이 모든곳에 동일하게 생성됩니다. // 주석은 프로토콜의 주석으로 생성됩니다. 본 글에서는 아래 이미지와 같이 복사하였습니다. 복사한 값 Enum 스니펫을 Tools 윈도우 창에 붙여넣기합니다. 우측의 변환 버튼을 클릭합니다. 생성된 값을 각 스크립트에 붙여넣기합니다. 변환된 프로토콜 코드는 프로토콜버퍼 에디터 구현부에 붙여넣으세요. 서버가 보내는 프로토콜은 클라이언트단(유니티)에서 사용합니다. 클라이언트에서 보내는 프로토콜은 서버단에서 사용합니다. 전체 코드입니다. 위에서 다운로드 받은 파일과 동일합니다. /* * GenerateProtocolCodeFromEnum - Enum을 이용한 프로토콜 코드 생성을 위한 유니티 에디터 창 * 작성자: [Bonnate] https://bonnate.tistory.com/ * 라이선스: 없음 (명시적인 라이선스 없이 제공됨) * * 설명: * 이 스크립트는 Enum 스니펫에서 프로토콜 코드, 클라이언트 핸들러 코드, 서버 핸들러 코드를 생성하기 위한 유니티 에디터 창을 정의합니다. * 입력한 Enum 스니펫을 자동으로 프로토콜 코드로 변환하고, 해당하는 클라이언트와 서버 핸들러 함수를 생성합니다. * 생성된 코드는 클립보드에 복사하여 추가적인 사용이 가능합니다. * * 주의 사항: * 이 스크립트는 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] https://www.inflearn.com/roadmaps/355 * 의 기능을 이용하기 위해 작성된 스크립트입니다. * * 사용 방법: * 1. 이 스크립트를 유니티 프로젝트의 Editor 폴더에 첨부합니다. * 2. GenerateProtocolCodeFromEnum 창을 열기 위해 Tools -> Bonnate -> Socket -> Generate Protocol Code From Enum을 선택합니다. * 3. 입력 텍스트 영역에 Enum 코드 스니펫을 입력합니다. * 4. "변환" 버튼을 클릭하여 프로토콜 코드, 클라이언트 핸들러 코드, 서버 핸들러 코드를 생성합니다. * 5. 생성된 코드는 각각의 텍스트 영역에 표시됩니다. * 6. 해당 영역의 텍스트를 클립보드에 복사하려면 옆에 있는 버튼을 클릭합니다. * 7. 생성된 코드를 복사하여 각 코드에 붙여넣기하여 편리하게 프로토콜을 디자인합니다. * * 참고: 이 스크립트는 현재 상태로 제공되며 일부 제한 사항과 문제가 있을 수 있습니다. * 개인적으로 업데이트 되나, 온라인(깃허브 리포지트리 등)에 배포하지는 않을 예정입니다. */ #if UNITY_EDITOR using UnityEngine; using UnityEditor; using System.Text; using System.Text.RegularExpressions; public class GenerateProtocolCodeFromEnum : EditorWindow { private string mInputText = ""; private string mProtocolText = ""; private string mClientHandlerText = ""; private string mServerHandlerText = ""; private Vector2 mScrollPosition; [MenuItem("Tools/Bonnate/Socket/Generate Protocol Code From Enum")] public static void ShowWindow() { GetWindow<GenerateProtocolCodeFromEnum>("Generate Protocol Code From Enum"); } private void OnGUI() { mScrollPosition = EditorGUILayout.BeginScrollView(mScrollPosition, GUILayout.ExpandHeight(true)); // 입력 텍스트 영역 EditorGUILayout.BeginHorizontal(); GUILayout.Label("Enum 코드 스니펫 입력"); // 변환 버튼 if (GUILayout.Button("변환", GUILayout.Width(80))) { mInputText = RemoveCommonIndentation(mInputText); GenerateProtocol(); EditorGUIUtility.systemCopyBuffer = mProtocolText; // 변환된 텍스트를 클립보드에 복사 } EditorGUILayout.EndHorizontal(); mInputText = EditorGUILayout.TextArea(mInputText, GUILayout.ExpandHeight(true)); GUILayout.Space(30); // 프로토콜 코드 영역 EditorGUILayout.BeginHorizontal(); GUILayout.Label("변환된 프로토콜 코드"); // 복사 버튼 if (GUILayout.Button("복사", GUILayout.Width(80))) { EditorGUIUtility.systemCopyBuffer = mProtocolText; // 프로토콜 코드를 클립보드에 복사 } EditorGUILayout.EndHorizontal(); mProtocolText = EditorGUILayout.TextArea(mProtocolText, GUILayout.ExpandHeight(true)); GUILayout.Space(10); // 서버 핸들러 영역 EditorGUILayout.BeginHorizontal(); GUILayout.Label("서버가 보내는 프로토콜 (클라이언트단에서 구현)"); // 버튼 if (GUILayout.Button("복사", GUILayout.Width(80))) { EditorGUIUtility.systemCopyBuffer = mServerHandlerText; // 서버 핸들러 코드를 클립보드에 복사 } EditorGUILayout.EndHorizontal(); mServerHandlerText = EditorGUILayout.TextArea(mServerHandlerText, GUILayout.ExpandHeight(true)); GUILayout.Space(10); // 클라이언트 핸들러 영역 EditorGUILayout.BeginHorizontal(); GUILayout.Label("클라이언트가 보내는 프로토콜 (서버단에서 구현)"); // 버튼 if (GUILayout.Button("복사", GUILayout.Width(80))) { EditorGUIUtility.systemCopyBuffer = mClientHandlerText; // 클라이언트 핸들러 코드를 클립보드에 복사 } EditorGUILayout.EndHorizontal(); mClientHandlerText = EditorGUILayout.TextArea(mClientHandlerText, GUILayout.ExpandHeight(true)); EditorGUILayout.EndScrollView(); GUILayout.Space(20); GUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Powered by: Bonnate"); if (GUILayout.Button("Github", GetHyperlinkLabelStyle())) { OpenURL("https://github.com/bonnate"); } if (GUILayout.Button("Blog", GetHyperlinkLabelStyle())) { OpenURL("https://bonnate.tistory.com/"); } GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUILayout.LabelField("이 기능은 인프런 강의의 기능을 편리하게 사용하기 위해 구현되었습니다."); if (GUILayout.Button("[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]", GetHyperlinkLabelStyle())) { OpenURL("https://www.inflearn.com/roadmaps/355"); } GUILayout.EndHorizontal(); } private GUIStyle GetHyperlinkLabelStyle() { GUIStyle style = new GUIStyle(GUI.skin.label); style.normal.textColor = new Color(0f, 0.5f, 1f); style.stretchWidth = false; style.wordWrap = false; return style; } private void OpenURL(string url) { EditorUtility.OpenWithDefaultApp(url); } private string RemoveCommonIndentation(string input) { string[] lines = input.Split('\n'); // 찾아낼 공백 패턴 Regex indentRegex = new Regex(@"^\s+"); // 최소 공통 공백 찾기 int maxIndentLength = 0; foreach (string line in lines) { if (!string.IsNullOrWhiteSpace(line)) { Match match = indentRegex.Match(line); if (match.Success) { int indentLength = match.Length; if (indentLength > maxIndentLength) maxIndentLength = indentLength; } } } // 최소 공통 공백 제거 string output = ""; foreach (string line in lines) { if (line.Trim() == "") continue; if (!string.IsNullOrWhiteSpace(line)) { string trimmedLine = line.Substring(maxIndentLength); output += trimmedLine + "\n"; } } return output; } private void GenerateProtocol() { // 입력 텍스트를 줄 단위로 분할 string[] lines = mInputText.Split('\n'); // 생성된 코드 문자열 초기화 string generatedProtocolCode = ""; string generatedClientHandlerCode = ""; string generatedServerHandlerCode = ""; bool isMultiLineComment = false; bool isClientHandlerComment = false; bool isServerHandlerComment = false; for (int i = 0; i < lines.Length; ++i) { string line = lines[i]; // 다중 줄 주석 처리 if (line.Trim().StartsWith("/*")) { isMultiLineComment = true; } if (isMultiLineComment) { generatedProtocolCode += line + "\n"; generatedClientHandlerCode += line + "\n"; generatedServerHandlerCode += line + "\n"; // 다중 줄 주석 종료 if (line.Trim().EndsWith("*/")) { isMultiLineComment = false; } continue; } if (line == "\n") { generatedProtocolCode += "\n"; generatedClientHandlerCode += "\n"; generatedServerHandlerCode += "\n"; continue; } // 주석인 경우 처리하여 유지 if (line.Trim().StartsWith("//")) { StringBuilder funcComment = new StringBuilder(); for (; i < lines.Length; ++i) { line = lines[i]; if (!line.Trim().StartsWith("//")) { funcComment.Remove(funcComment.Length - 2, 2); --i; break; } funcComment.Append($"{line}\n"); } // 클라이언트 핸들러 주석 확인 if (i + 1 < lines.Length && lines[i + 1].Trim().StartsWith("C_")) { isClientHandlerComment = true; isServerHandlerComment = false; } // 서버 핸들러 주석 확인 else if (i + 1 < lines.Length && lines[i + 1].Trim().StartsWith("S_")) { isClientHandlerComment = false; isServerHandlerComment = true; } if (isClientHandlerComment) { generatedClientHandlerCode += funcComment + "\n"; } if (isServerHandlerComment) { generatedServerHandlerCode += funcComment + "\n"; } generatedProtocolCode += funcComment + "\n"; continue; } // 빈 줄이거나 등호 (=)가 없는 줄은 건너뜀 if (string.IsNullOrEmpty(line) || !line.Contains("=")) continue; // 줄에서 변수 이름과 값 추출 string[] parts = line.Split('='); string variableName = parts[0].Trim(); string variableValue = parts[1].Trim(); // 접두사 추출 및 나머지 이름을 카멜 표기법으로 변환 string[] nameParts = variableName.Split('_'); string prefix = nameParts[0]; string camelCaseName = ""; for (int j = 1; j < nameParts.Length; ++j) { camelCaseName += char.ToUpper(nameParts[j][0]) + nameParts[j].Substring(1).ToLower(); } // 새 프로토콜 메시지 생성 string protocolMessage = $"message {prefix}_{camelCaseName} {{\n}}"; // 생성된 프로토콜 메시지를 코드에 추가 generatedProtocolCode += protocolMessage + "\n"; // 클라이언트 핸들러 코드 생성 if (prefix.StartsWith('C')) { string clientHandlerCode = $"public static void {prefix}_{camelCaseName}Handler(PacketSession session, IMessage packet)\n{{\n {prefix}_{camelCaseName} {prefix.ToLower()}_{camelCaseName.ToLower()} = packet as {prefix}_{camelCaseName};\n // TODO\n}}\n"; generatedClientHandlerCode += clientHandlerCode + "\n"; } // 서버 핸들러 코드 생성 if (prefix.StartsWith('S')) { string serverHandlerCode = $"public static void {prefix}_{camelCaseName}Handler(PacketSession session, IMessage packet)\n{{\n {prefix}_{camelCaseName} {prefix.ToLower()}_{camelCaseName.ToLower()} = packet as {prefix}_{camelCaseName};\n // TODO\n}}\n"; generatedServerHandlerCode += serverHandlerCode + "\n"; } } // 생성된 코드를 입력 필드에 할당 mProtocolText = generatedProtocolCode; mClientHandlerText = generatedClientHandlerCode; mServerHandlerText = generatedServerHandlerCode; } } #endif

  • C#
  • unity
  • socket
  • packet
  • protocol
Bonnate 댓글 0 좋아요 1 조회수 850

왜 반복문이라고 하나요?

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

안녕하세요! 조금 뜬금 없는 질문이기는 한데 궁금해서요 왜 for 문을 반복문이라고 하나요? 그러니까 어떤 의미에서의 반복인가요? apple 를 a p p l e 이렇게 5줄로 따로따로 가져오는 게 반복인가요?

  • python
sykb7000 댓글 4 좋아요 1 조회수 516

인기 태그

인프런 TOP Writers

주간 인기글