이야기를 나눠요
129만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
하루만에 배우는 express with AWS
[강의 추가] 건의
삭제된 글입니다
-
다양한 사례로 익히는 SQL 데이터 분석
나래비는 일본어 입니다..
선생님.. 나래비는 일본어 입니다. 어감이 예뻐서 옛 우리말인줄 알고 찾아봤는데 '줄을 세우다'라는 일본어 '나라비'가 어원이라고 하네요
-
워드프레스 쇼핑몰(우커머스) 제작 따라하기
역직구 쇼핑몰 중국 결제 알려주세요
Pg사 연동은 어떻게하나요??
-
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Azure app service의 웹소켓 지원에 대해서 질문
안녕하세요 강사님.<파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트> 강의를 통해서 장고에 처음 입문하고 개인 프로젝트도 5개정도 진행하고 배포까지 해보았습니다.<ChatGPT 영어 상황극 채팅 서비스 만들기 (Feat. 파이썬/장고채널스)> 강의가 새롭게 올라와서 체널스 학습을 위해 강의를 구매하고 싶은데 , 강의를 듣기전 궁금한 점이 있습니다. 1. 체널스를 통한 소켓통신을 하면 Gunicorn이 아닌 Daphne을 사용하는데 도커 파일을 만들때 daphne를 사용하면 Azure app service를 통해 배포할 수 있나요?2. 프로덕션 레벨에서 괜찮은 성능이 나올까요?
-
[2024] 실무에서 사용하는 클라우드 프로그래밍 (AWS, Python, Terraform, 보안)
Terrafrom을 이용한 AWS이용시 과금
안녕하세요 혹시 실습을 끝까지 따라하고 프로젝트를 진행하게 되면 과금이 어느정도 진행될까요? Free tier내에서 모두 해결가능한가요?
-
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
소리가 작습니다
스피커를 최대로 켜도 소리가 너무 작아요 ㅜㅜ소리는 조절가능하니 고급을 위한 영상찍을때는 소리좀 크게해서 찍어주세요 초급은 소리 커서 80퍼로 조절하며 들었어요 중급은 너무 작아요 한밤에 음량 100으로 해도 선풍기 소리때문에 선풍기를 꺼야해요 그리고 번외로 플러터랑 파이어베이스 연동해서 만드는걸 배우고 싶은데 개인적으로 아는 컨텐츠 있으심 알려주세요 감사합니다
-
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReSharper C++를 사용해도 될까요?
intellij를 쓰다가 넘어와서 jetBrain회사의 키맵과 기능에 익숙해져있는데요.ReSharper C++라는 Visual Assist와 유사한 기능을 하는 앱이 있어 설치하고, 기존 vs키맵에 다 덮어씌우기 하고 사용하려는데요.나중에 문제될일이 있을까요? 취직후 실제 직장에선 사용못한다거나, vs기본 단축키를 안쓰고 intellij 단축키를 써서 의사소통에 문제가 생긴다거나..
-
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
구조를 이렇게 짜려면 어떤 것을 중점으로 연습해야 할까요?
서버에 대한 개념이 머리에 잡히는 중이라 모든 것이 새롭게 느껴지는 중입니다. 저는 이전에 dx12 강의를 보고 이어서 시청하는거라 그 때도 그랬지만 코드의 뼈대가 되는 구조적인 부분에 대해서 좀 영감을 얻을 수 있을거라고 기대하고 이번 강의를 수강하게 되었습니다. 아니나다를까 이번 강의에서 보여주신 IocpCore 구조를 열심히 분석하니까 저 나름대로 가닥이 잡히는 느낌이 들었는데 한편으로는 그전에 배운 내용을 바탕으로 내가 이렇게 구조를 짤 수 있을까? 하는 생각이 들었습니다. 이런 구조적인 부분은 나중에 현업을 가서 업무를 하더라도 마냥 시간이 해결해줄 것이라고 생각하지 않는데 따로 연습을 하시거나 구조를 짜기 위한 시간투자를 하시는 건지 궁금합니다. 그리고 연습을 하신다면 어떻게 연습해야 할지 여쭙고 싶습니다.
-
모든 개발자를 위한 HTTP 웹 기본 지식
커리를 따라가다가 고민이 생겨 게시글 남깁니다.
영한님 스프링 커리를 따라가고 있는 비전공자 취준생입니다. 강의를 듣다가 질문을 가끔 남기곤 했는데, 이 질문에 대한 답변들에 대한 개념을 뒤에서 영한님이 설명해 주실 때가 있더라구요. 그래서 문득 이런 생각이 들었습니다. 당장 모르겠거나 이런 고민들을 질문을 남기거나 구글링을 해서 의문을 해결하고 넘겨야하는 건지 아니면 그냥 커리를 따라가다가 보면 나오니까 넘기고 강의를 쭉 듣는게 좋은건지..전자는 생각보다 시간을 너무 잡아먹고 후자를 택하기엔 혹시 안나오면 어쩌지? 내가 못따라가면 어쩌지? 이런 불안감이 있습니다. 어떻게 하는게 좋을까요?
-
퍼블리셔 취업 진짜 실전 가이드(PDF)
질문 드립니다.
안녕하세요 저는 현재 웹퍼블리셔로 이직을 준비하고 있습니다.우연히 강의를 알게 되어 기초부터 수강 예정입니다.혹시 현재 오프라인에서 선생님 강의를 들을 수 있는방법이 있는지 질문 드립니다. 좋은 강의 만들어주셔서 정말 감사드립니다!
-
등산코스 추천 서비스 MVP에 소중한 의견 부탁드리겠습니다!
안녕하세요. 등산코스 추천 서비스 여기있산 팀입니다.몇 주 동안 사이드 프로젝트로 등산코스 추천 서비스를 만들었습니다.MVP 단계라 많이 부족하지만 테스트 해보시고 소중한 의견 주시면 감사하겠습니다!등산 정보 찾으러 다니다 지쳐버린 😩 등산러 여러분여러분의 피로를 날려드리기 위해 '여기있산' ⛰️이 왔습니다~!맞춤형 등산 코스 추천 서비스인 '여기있산'⛰️ 을 이용해보시고 설문조사에 참여해주세요!추첨을 통해 응답해주신 10분께 "시원한 음료쿠폰 🍹"을 전달 드립니다! :) 등산 코스 추천 받고 서비스 ⛰️ 이용하기 👇👇👇https://bit.ly/mountainhere_inflearn5분 투자해서 등산 후 마실 "시원한 음료쿠폰 🍹" 받으러가기 👇👇👇https://forms.gle/21FhfZYspDkmYMoy8
-
[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
-
코딩테스트 [ ALL IN ONE ]
사용하시는 에디터?
사용하고 계시는 에디터가 뭘까요?
-
[사이드프로젝트] 운동 레슨 매칭 서비스 MVP 유저테스트 한번 부탁드리겠습니다!!!
안녕하세요 IT분야에서 PM직무를 공부하고 있는 취준생입니다.현재 팀으로 학습을 하면서 MVP로 소규모 레슨 메이트 매칭 서비스를 만들어봤습니다.한번 사용해보시고 유저테스트 한번 부탁드리겠습니다!! 🧘🏻♀️개인레슨은 너무 비싸서 소규모레슨 듣고싶은데 💸👭PT, 필라테스, 요가, 테니스 레슨 같이 들을 사람은 어디서 찾지?🔍"개인레슨은 비용이 부담되어서 1:2 혹은 1:3 등 소규모 레슨을 듣고는 싶은데, 같이 들을 사람이 없어요""센터에서 소규모 레슨을 함께 들을 사람을 직접 구해오라고 해요" 이런 문제로 듣고 싶은 레슨을 듣지 못한 경험은 없나요? 저희 레슨메이트는 소규모 레슨 메이트를 구하는 어려움을 해결하고자 합니다.레슨메이트에서 메이트를 만나 원하는 레슨을 합리적인 가격으로 받아 보세요! ✔주요 기능- '모집공고 작성’ 또는 ‘참여하기’를 통한 레슨메이트 매칭- 성별, 운동경력, 운동성향을 고려한 매칭 ✔서비스 소개 및 매칭 방법- ‘모집공고 작성’ 또는 ‘참여하기’를 통해 레슨메이트 매칭서비스를 이용할 수 있어요.- 매칭이 완료되면 레슨메이트들을 카카오톡 오픈채팅방으로 초대해드릴거에요. 🎁 런칭기념 이벤트 🎁레슨메이트 유저 테스트 참여하고 커피+디저트 기프티콘 받아가세요💌🔗레슨메이트 웹:https://lessonmate.webflow.io/?utm_source=community&utm_medium=viral&utm_campaign=community_viral🖥️ 유저 테스트:https://walla.my/lessonmate
-
안녕하세요 . 이해가 안되어서 그러는데 해석 좀 부탁드립니다.
삭제된 글입니다
-
비전공자의 전공자 따라잡기 - 네트워크, HTTP
개인 블로그
안녕하세요, 제로초님.덕분에 개발자로서 많은 성장을 이루었습니다.제로초님 강의는 링크 걸어놓고, 자료는 따로 올리지 않고 강의 영상은 중간중간 캡쳐하면서,공부한 내용을 개인블로그에 기재하고 싶은데 괜찮을까요?감사합니다.
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 3 버전 이상 이용시 주의사항
spring 3 버전 이용시에는 java 17 이상 버전을 이용해야합니다. java 11을 이용하실 때에는 오류가 따라오는거 주의 바랍니다.
-
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
힘이 듭니다
4장 보다가 코드리딩이 안되서 멘붕이 왔었습니다.6장에 이제 들어가는데 좀 더 잘되겠죠..? 힘을 주십시요 선생님
-
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
[게임 프로그래머 입문 올인원] 게임 서버개발 공부&취업 관련 질문입니다!
Rookiss님 안녕하세요!몇가지 궁금한 것들 질문으로 남겨봅니다 ㅠ 시간 남으실때 조언해주시면 감사하겠습니다!! 먼저 저는 2년차 모의해킹 보안컨설팅을 하고있고 내일채움공제를 진행중이라24년 6~7월 정도에 퇴사 할 예정입니다!퇴사 후에 프로카데미를 다니려고 하는데, 학원에 가기 전 전체적인 내용을 한번 훑고 가고싶은 마음이 있습니다.올인원 강의를 다 듣고나서 어떤식으로 공부하면 좋을지 간단한 서버개발 로드맵 같은게 있다면추천해주시면 감사하겠습니다 ㅠ클라이언트도 개인적으로 공부하고싶은데 이 부분은 독학으로 Rookiss님 시리즈만 듣고 공부해도현업과 소통 & 개인적인 사이드 프로젝트를 진행하는데 무리가 없을 지 궁금합니다! 지금 하는 일에서도 계속 공부하고있고, cs지식이 어느정도는 잡혀있습니다그리고 리버스 엔지니어링과 시스템해킹쪽도 어느정도 알고있는데학력은 고졸 후 학점은행제를 통해 학사를 진행하고 있어서(올해 취득예정)다른 대학 전공자들과 경쟁했을때 이런부분이 밀리지 않을만한 장점으로 어필이 가능할까요? 개인적으로는 게임업계가 해킹과도 밀접한 연관이 있다보니 어필이 될 수 있지 않을까 기대하고 있는데현업 입장에서는 가산점이 있는지, 딱히 신경쓸 정도는 아니라던지 하는 관점이 궁금합니다! 좋은 강의 재밌게 잘 듣고 있습니다! 감사합니다 ㅎㅎ
-
왕초보도 하는 영상 편집 with. 프리미어 프로
강의요약집과 전자책은 같은건가요??
강의를 완강했는데 강의요약집과 전자책이 같은건지 궁금합니당..!