블로그
전체 14#카테고리
- 알고리즘 · 자료구조
- 컴퓨터 구조
- 게임 프로그래밍
- 오피스
#태그
- 인프런
- 인프런워밍업클럽
- 스터디2기
- 자료구조알고리즘
- 감자
- 워밍업클럽
- cs-미션-발자국
- cs-발자국
- 인프런워밍업클럽2기
- 워밍업
- CS지식
- 자료구조
- 알고리즘
- 타이틀곡
- cs-미션
- cs전공지식
- 워밍업클럽2기
- 발자국
- CS-발자국
- 빠타박스
- cs
- 운영체제
- 스터디모임
- 언리얼엔진
- CS
- 게임개발자
- UnrealEngine
- Game
- GameDevelop
- ppatabox
- 신충식
- unrealbugs
- 학습일기
- 노션
- 코딩
- 메모장
- 네트워크
- 게임개발
- it
- 게임
- 판다코딩
- C++
- 개발
2024. 11. 02.
3
[인프런 워밍업 클럽 2기 - CS] 지난 3주간의 여정 속에서 - 완주 후기
처음 이걸 왜 들었을까?이 과정을 듣기 2일쯤 됬던가. 벤처 게임회사에 면접을 보았다.그 회사의 면접은 그냥 말아먹었다.그 이유는 역시 기초 지식이다. 공부한지 어연 5년이 다된간다. 이쯤되면 게임개발이라는 것을 포기할만도 했다...어떻게 해야할까 하는 찰나에 인프런에 들어와 여느때 처럼 그냥 공부를 하고자 한숨을 내쉬며 들어왔는데바로 보이는... CS 이게 무슨일이지 하면서 한번 볼까? 무료라고?아.. 근데 아니였다... 기본적으로 할인을 해주나 로드맵에 있는 수강내역을 구매해야만 참가가 가능했다.나는 좀 아쉬웠다.. 가뜩이나 백수 5년째 거금을 들이기가 선뜻 겁이 났다... 그렇게 많은 돈은 아닐 수 있었지만... 나에게는 식비와 공과금을 충당해야만 하는 비용이였기 때문이다.하지만 면접에서 탈탈 털린 나로써는 CS지식이 시급했다... 나에겐 여러 장애물이 있었다...자격증 시험이였다... 항상 내 발목을 묶는 장애물이였다.이 과정을 진행하면서 실기일이 얼마 남지 않은 상태였다... 그럼에도 불구하고 CS 지식을 터득하자. 하지만 가볍게 보고 다음에 다시 보도록 하자는 마인드였다.(내가 반복하는 걸 싫어하다 보니까... 이게 참 문제다... )그렇게 그냥 열심히 했다...그냥 할 수 있는 만큼... 공부는 어떻게 해야 하죠? 난 솔직히 아직도 개발 공부란 것을 어떻게 해야할 지 모르겠다...그냥 받아적고 천천히 느리게 한다. 하나 볼때 최대한 이해하려고 다 적는다.하지만 남는게 별로 없다...반복학습이 생명인 것을 알겠다..ADHD를 겪고 있던 나로써 반복학습은 정말 지겨웠다.. 그래도 반드시 해내자 라는 마인드로 임했다...그렇게 공부한 것들을 필기하고 요약하려고 하였지만 쉽지 않았고, 최대한 가볍게 이해하려고 했다. 가장 어려웠던건 알고리즘 부분이였다... javascript로 하다보니 C++로 변환하려니까. 뭔가 비슷은 한데 헷갈리는 부분이 많았다... 안되던 것도 있었고,,,... 쉽지 않았다... 정처기 얼마 남지 않았는데 계속 붙들고 있는 경우도 발생했다그게 1주차 때이다. 그냥 무작정 하라는 대로 하였다. 최대한 깊어보이면서 간결하게다른 사람들이 쓴 것도 보았으면 좋았겠지만. 쓰고 바로 정보처리기사 공부를 해야만 했다. 18일 금요일 모든 과정이 종료 되었고, 이제 수료식만을 남겨둔채 나는 정보처리기사 공부를 집중했다.10월 20일 일요일 정보처리기사 D-Day...,..실기는 매우 어려웠었고 조졌다.... 그렇게 돌아와 낙심에 빠졌다... 그리 며칠 가지 않아서하.. CS 관련해서 심화적으로 봐야만 한다는 것을 어떻게 할까 하다가.최대한 쿠폰을 사용해서.. 보고 싶은데 해서 결국 구매를 강행했다..아직 보진 않았다. 왜냐하면 이전꺼도 다시한번 봐야만한다.다시 반복학습을 해야만 하니까. 이 과정이 끝나고 정말 운수 좋은날인가... 아는 분을 통해 일자리를 얻게 되었다...처음에는 어리둥절했다... 뭔지도 모르고 뭘 시킬지도 모르는데... 게임개발만 3년 정도를 팠다....언리얼엔진....갔더니 대표님이 언리얼엔진에 대한 이전 문제 때문에 나를 궁금해 하셨고 그일을 나에게 맡기셨다..부담스럽기도 하고 기회다 하며 재밌겠다 하며 그 기회를 붙잡았다...11월 4일 부로 출근하게 되었다. 그래서 언리얼엔진 심화 및 기초에 대한 내용을 공부하고 있어서 해당 자료구조를 못보고 있었다. 수료식그렇게 11월 1일(금)원래대로면 오프라인에 참석해야 하나.. 나의 직업군인시절 후유증으로 인해...갑자기 도져서 가지 못한다고 말하게 되었다...시작된 워밍업 클럽 수료식 과정중 코치님 감자 강사님께서 나오셔서 질의 응답 시간을 가졌다.유익한 시간이였고 좋은 정보도 얻었다. 추천 받은 책 : CODE (컴퓨터 구조에 대한 내용 밑바닥?)https://elfmfl.tistory.com/33 (펌 정보) 난 아직도 많은 공부를 해야만한다는 것을 느꼈다. 저곳에 모인 사람들 중에 분명 나보다더 대단한 사람도있고젊고 파릇파릇한 분들도 있을테고 여럿 사람들이 모였었을 것이다.부러웠다.. 저 자리에 위치할 수 있어서...하지만 또 나름 나의 시간을 아끼며 공부를 했다. 그렇게 질의응답시간이 끝나고 수료식의 대망의 수상 발표이다. 응?뭐지.. 적어도 26~30명 정도 CS 과정을 들었던거 같은데.. 우수러너에 뽑히게 되었다....다들 수상을 하고 있을 때 그저 축하해주기 위해서 남아있었는데.내가 수상하게 될 줄 은 꿈에도 몰랐다. 그래서 이 감사를 어떻게 해야 할지 바로 누군가에게 자랑을 했다. ㅎㅎ;;감사한 하루였다. 앞으로 어떤 과정이 또 생길지 모르겠다.하지만 이제 일을 시작했고, 이 일을 완벽히 하기 위해 더더욱 기초가 다져져야 한다.이 과정과 고난의 길 위를 즐기자. 기쁨으로 하루를 살아가자 이 과정을 겪을 수 있어서 감사합니다.인프런을 통해 많은 청년들이 새 꿈을 이룰 수 있게 해줬으면 좋겠다. " 모든 것의 가장 빠른 배움은 부딪히는 것이다. 그게 밑바닥이 되었든.가장 좋은것은 프로젝트를 하고 현업처럼 부딪히는 것 " 이제 다가올 2025년도를 위해인프런 공부를 하며 여러 사건과 여러 정치적인 이슈들이 있었다.우리는 내일을 위해 무언가를 지켜야 하고 싸워야 하는 경우가 생길 것이다.그저 지금 편안하게 우리가 공부할 수 있는 것은 누군가 희생되고 있음을 깨달아야 한다. "모든 일에는 당연한 것이 없다" 누군가의 배품, 누군가의 선함, 누군가의 악행,모든 것에는 이유가 있다. 포괄적차별금지법북한군파병이스라엘과 하마스 및 헤즈볼라윤모의 자금 횡령 및 국가비상금 빼돌림 여러 이슈들이 존재 한다. 우리는 공부하면서 깨어있어야 한다. 우리 미래가 결정되고우리 후대의 미래가 결정된다.해외 부자들 CEO들이 우리나라의 급격한 인구가 줄어드는 것을 바라보고 있다..대책이 없다... 그저 장막 안에서 보호를 받으면서 공부를 하는것도 그렇지만. 나라가 없어지면..공부도 무의미 하다... 깨어있는 공부를 하자. 부디 25년도에는 많은 것들이 청렴해지고 나아지길 바란다. 끝없이 성장하는 개발자가 되고생존하자. 버티며 끝까지 임하자 최선을 다하자. 내일 죽는한이 있더라도 자신의 위치에서 최선을다하자
알고리즘 · 자료구조
・
인프런
・
인프런워밍업클럽
・
스터디2기
・
자료구조알고리즘
・
감자
・
워밍업클럽
2024. 10. 25.
0
[인프런 워밍업클럽 2기] CS전공지식_Special Mission [한번 풀어보기]
결석한 적은 없는 그냥 풀이가 보이길래 한번 풀어보자 생각했다. 하지만 잘 못 건드렸다.. 난 아직도 실력이 더 필요하구나.. 어렵다. 이거 푼다고 map 알아보다가. map은 기본적으로 오름차순 정렬되어버려서. 의미가 없었다...퀵정렬로 풀라고 했으니까. .일단.. 알아보다 도저히 안되서.. 어떻게 해야하지 하다가. 그냥 알아보았다..;; 졸기를 반복하다가... 쩝... 특별미션특별 미션) 실수로 워밍업 클럽 출석을 빼먹었는데 우연히 데이터를 수정할 수 있는 권한이 주어졌습니다. 러너분의 이름(name)과 출석수(count)가 저장된 배열에서 여러분(나)의 데이터를 퀵정렬을 이용해 오름차순 정렬하고 가장 첫 번째 데이터인 여러분의 출석수를 변경하도록 코드를 작성해주세요. (퀵정렬 구현 부분도 변경)문제// 퀵소트 구현 부분...(생략) let user1 = { name: "홍길동", count: 5 }; let user2 = { name: "임꺽정", count: 4 } let user3 = { name: "이순신", count: 3 } let user4 = { name: "나", count: 1 } let user5 = { name: "짱구", count: 5 } let arr = [user1, user2, user3, user4, user5] console.log("===== 정렬 전 ====="); console.log(arr); quickSort(arr, 0, arr.length - 1); console.log("===== 정렬 후 ====="); console.log(arr);[예상 결과] ===== 정렬 전 ===== [ { name: '홍길동', count: 5 }, { name: '임꺽정', count: 4 }, { name: '이순신', count: 3 }, { name: '나', count: 1 }, { name: '짱구', count: 5 } ] ===== 정렬 후 ===== [ { name: '나', count: 5 }, { name: '이순신', count: 3 }, { name: '임꺽정', count: 4 }, { name: '홍길동', count: 5 }, { name: '짱구', count: 5 } ] 처음 풀었던 미친방식... #include #include #include #include using namespace std; /*map은 기본적으로 키를 기준으로 오름차순한다. */ struct Student { char name[20]; int count; map m = { {"홍길동", 5}, {"임꺽정", 4}, {"이순신", 3}, {"나", 1}, {"짱구", 5}}; map::iterator miter; }; // 오름차순 정렬을 위한 static bool cmp(const pair& a, const pair& b) { if (a.second == b.second) return a.first > b.first; return a.second > v(s.m.begin(), s.m.end()); // 구조체 안에 있는 map으로 호출 for (s.miter = s.m.begin(); s.miter != s.m.end(); ++s.miter) { cout first second first second #include #include #include using namespace std; // 사용자 정보를 나타내는 구조체 struct User { string name; int count; }; // 퀵소트 함수 정의 void quickSort(vector& arr, int left, int right) { if (left & arr, int left, int right) { int pivot = arr[right].count; // 피벗을 오른쪽 끝 요소의 count로 설정 int i = left - 1; // i는 피벗보다 작은 요소의 마지막 인덱스 for (int j = left; j arr = { user1, user2, user3, user4, user5 }; cout
알고리즘 · 자료구조
・
자료구조알고리즘
・
cs-미션-발자국
・
인프런워밍업클럽
2024. 10. 18.
1
[인프런 워밍업클럽 2기] CS전공지식_발자국_3주차 (Final)
1. 개요이름: 인프런 워밍업 클럽 2기 - CS 전공지식 빠타박스 [신충식]기간: 2024.10.14 - 2024.10.182. 목표 및 성과설정한 목표: 가벼운 학습 CS 지식 습득 및 중요한 부분에 대한 습득달성한 성과: 마무리 지점에 여러가지 중요한 내용이 운영체제를 통해 습득하게 되었다. 3. 잘된 점 (Keep)성공적인 요소:4. 개선할 점 (Problem)문제점 : 이번 과정이 끝나더라도 한번더 복습해야 한다. (정리하지 못한 부분도 존재한다) 5. 다음 단계 (Try)향후 계획: 정보처리기사 실기 시험이 끝나고 해당 내용을 복습하고자 한다. 무제한 강의 특성상 좋다. 휴.. 인생실기 시험 끝나면 심화도 봐서 코딩테스트 문제를 풀기에 적합할 수 있도록 되어야 겠지..그리고 아직 적지 못한 C++코드를 분석할 예정이다. 6. 기타 의견일주일 동안 학습하며3주차 과정은 조금 힘든 과정이다 지금 이걸 작성하고 내일 모래면 정처기 실기시험이 있다.최선을 다하자... 이 실기가 끝나면 꼭 1트만에 합격해서 끝내고 알고리즘 자료구조를 학습하고 면접 내용을 정리하며,프로젝트를 진행하면서 게임 출시까지도 보고 앞으로 나아가자...3주차 미션에 대해휴.. 3주차 미션은 좀 더 운영체제 같은 것 들을 중요시 했고 간단하면서도 어려웠다.이 이유는 내가 정처기에 빠져있고, 현재로써 제대로된 집중을 하지 못했기 때문이다.즐거웠다. 이 과정을 지나면서 하지만. 스터디 클럽이라기 보다. 자기주도 학습 유도 와 보상심리를 이용한 나아감이였다. 꼭 완주 하고 싶다. 하지만 배워야한다. 라는 느낌? 그래도 이 과정이 있어서 정말 다행이다. 저렴하게 강의 시청을 할 수 있었다는 점과. 이 과정의 커리큘럼대로 시간표대로 진행함에 있어서 어려움을 좀 덜 느꼈던거 같다. 다양한 사람들의 학습 방법에 대해 한번 눈여겨 보기도 한다. 요즘 젊은이들은 어떻게 공부하는가... 흠... 나에게 적용할 부분이 무엇인가. 미션을 좀 이렇게 해볼걸...이번 풀이는 좀 구글링 한 부분도 있었다. 아무래도 제대로된 이해를 하기 힘든 부분이 있었다. 이번 학습에 대해서 아직 제대로 정리도 못한 상황이다. 실기가 끝나면 바로 적용해야지 빠타박스노션 https://gibeonsoftwork.notion.site/2-CS-10e530ec4ad680ff802cf36606049182?pvs=4 소감내 군대시절 우연히~들었던 믿지 못할 한마디~게임 개발 할 수 있다는 매혹적인 얘기내게 꿈을 심어주었어~ 말도 안돼 고갤 저어도~내안에 나 나를보고 속삭여~코테 공부하는 자는 CS 필수라고~용기를 내 넌 할 수 있어!쉼 없이 흘러가는 3주~ (정처기는 6주째)이대로 !!! 유튜브 볼순 없잖아~~!!!인프런과 도전하는거야!!!인프런 감자 손을잡고!정처기 CS 모두의 꿈을 모아서!!!!!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~ 감자의 거센 속도~!!! javascript!~~!!!!빠타 앞길 막아서도 결코 두렵지 않아(chatgpt~~!)끝없이 펼쳐진 수많은 코드들~~~밝은 미래 위한 거야~~~~ 인프런!~
알고리즘 · 자료구조
・
cs-미션-발자국
・
cs-발자국
・
인프런워밍업클럽2기
・
워밍업
・
CS지식
・
자료구조
・
알고리즘
・
감자
・
타이틀곡
2024. 10. 18.
1
[인프런 워밍업클럽 2기] CS전공지식_Mission03
운영체제1. 메모리의 종류는 어떤것들이 있나요? 각 메모리의 특징도 함께 적어주세요.CPU와 메인 메모리 간의 속도차를 해결하기 위해 CPU에는 데이터를 임시로 저장하고 계산처리하는 곳을 만들어두었다. CPU레지스터 : 가장 빠른 저장소로 CPU내에 존재하며, 컴퓨터 전원이 꺼지면 데이터가 사라지는 휘발성을 뛴 메모리이다. 보통 32bit와 64bit 형태로 존재하며 이것은 CPU레지스터의 크기를 알려준다. 레지스터는 CPU가 계산할 때 메인 메모리의 값을 레지스터로 가져와서 계산하고 그 결과를 다시 메인메모리에 저장한다. 캐시 : 데이터를 미리 복사해 놓는 임시 장소 같은 곳 캐시는 메인메모리와 레지스터 간의 데이터를 불러올 것을 예측해서 복사해놓고 임시로 저장해두면 거의 접근시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 메인메모리(RAM) 메인 메모리는 주기억장치라고도 불리며 CPU가 처리중인 데이터나 명령만을 일시적으로 저장하는 휘발성을 가진 장치이다. 내부에는 일종의 주소 공간을 가졌으며, 각 실행파일등이 운영체제에 의해 올라가 처리되는 곳이기도하다. 저장장치에 있는 것등을 불러와 주는 CPU와 중개역할을 해주기도 한다. 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?레지스터에는 (Base, Fence, Boundary) 이렇게 3가지 레지스터가 존재한다. 리눅스에서도 보면 0~999번까지 시스템사용자가 접근하지 못하도록 지정한 리눅스의 중요한 정보를 담고 있는 위치인 것 마냥 접근을 못하게 막는데 운영체제가 돌아가기 위한 영역인 부분에 접근하지 못하도록 하는 것이 경계 레지스터(Boundary register) 라고 불린다. 경계 레지스터 ( Boundary Register ) : 주기억 장치(RAM)내에 존재하는 프로그램은 크게 운영체제와 사용자 영역으로 나뉘는데, 사용자가 영역에 존재하는 OS영역에 침범하지 못하도록 한다. 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변분할방식(동적)프로그램 크기에 따라 주기억 장치의 분할 크기및 개수를 다르게(동적) 분할하는 방식 그래서 필요할 때 마다 분할한다. (편리) 메모리의 연속된 공간에 할당 되어서 낭비되는 공간인 내부 단편화를 보완했다.메모리 공간이 충분하지 않을 경우 외부 단편화가 발생할 수 있다. 고정분할방식(정적)프로세스 크기와 상관없이 메모리를 할당한다. (물리적 메모리를 정해진 개수만큼 영구적인 분할로 나누어 각 분할에 하나의 프로세스를 적재)한 프로세스가 메모리에 분산되어 할당 - 비연속 메모리 할당이라고도 불림 동시에 메모리에 올릴 수 있다는 간단하면서 구현이 간단하고 오버헤드 발생이 적다 작은 프로세스도 큰 영역에 할당되어 공간이 낭비되는 내부 단편화 발생이 크다. 또 맞는 메모리 공간이 없어서 외부 단편화 까지도 발생할 확률이 크다. 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스레싱(Thrashing) 😀 메모리 영역에 접근하게 될 때 메모리에 페이지 부재(page fault)율이 높은 것성능저하초래과도한 페이징 작업을 의미 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요? (이유를 함께 적어주세요.)기본적으로 하드나 플래쉬 메모리 같은 경우 프로그램이나 파일 운영체제의 데이터를 저장하고 중요한 보안적인 처리를 위해서 필요하기도 하다. 우리가 메인보드의 각 시스템을 사용하기 위해서는 일종의 처리방식이 필요하고 중계해주는 역할이 필요하다.그래서 이것들을 저장하고 전원이 켜질때 마다 불러올 곳이 필요한데 그 위치가 저장장치이다. 어찌 되었든 메모리도 CPU도 저장하는 능력을 가졌지만. 가격이 비싸고, 휘발성이기에 데이터를 저장하기에는 별로 효율적이지 못하다. 그래서 이 데이터를 저장하고 장기기억을 위해서 보조기억장치인HDD와 SSD를 사용한다. 우리가 운영체제를 설치할 때 일부 공간을 저장장치에 저장하게 된다. 그 공간을 우리가 접근하여 지울수도 있지만. 보통 일반 사용자가 잘 알수는 없다. 그곳에 운영체제에 대한 보안적인 부분이나. 시스템 처리 등 각종 프로그램들이 들어가 있다. 가격이 저렴하다.장기기억이 가능하다전원이 꺼져도 남아있다. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?파일 시스템을 효율적인 관리를 위해서 빈 공간에 모아둔 free block List라는 것을 가지고 있다. 우리가 특정 파일을 삭제하면 파일 시스템은 파일 테이블의 헤더를 삭제하고 free block list를 추가하게 되는데.이렇게 삭제된 위치는 사용자로 하여금 삭제 된 것처럼 보여진다. ps : 참고로 핸드폰 또한 내부 기억장치에 삭제된 것 처럼 보여도 데이터 복구가 일부가능하다. 완전한 복구는 아니지만.비슷하게 포렌식 복구가 가능하다 (그래서 초기화 공장초기화 여러번 하라는 이유가 그때문일 것이다) 물론 포렌식 복구가 불가능한 경우도 있다. 보안 FBE(파일기반암호화)기술 로 인해서 암호화키가 통째로 날아가 기존 데이터를 사용할 수 없게 만드는 기술 점차 나날히 발전하는 현대의 기술들이 이런 개선을 통해 파일의 보안성을 강조하고 있는 상태이다. 이렇게 복구가 가능하다면. 산업스파이나, 어떤 문제로 인해 발생할 것에 대해 취약해질 수 있기에. 이런 것들을 소프트웨어적으로 개선하게 될 것으로 보인다. 자료구조와 알고리즘1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.| 버블정렬 | 선택정렬 | 삽입정렬 | 병합정렬 | 퀵정렬 | | O(n²) | O(n²) | O(n²) | O(n log n) | O(n log n) | 전체 정리O(1): Operation push and pop on Stack O(log n): Binary TreeO(n): for loopO(n log n): Quick Sort, Merge Sort, Heap SortO(n²): Double for loop, Insert Sort, Bubble Sort, Selection SortO(2n): Fibonacci Sequence | Better | O(1) O(log n) O(n) O(n×log n) O(n2) O(2n) O(n!) => | Worse | 상수 함수 로그 함수 다항 함수 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요. 메모이 제이션저장 : 결과를 특정 자료 구조에 저장확인 : 호출하기 전에 해당 입력에 대한 결과가 이미 저장되었는지 확인활용 : 저장된 결과가 있다면 다시 계산하지 않고 저장된 값을 반환 하향식 설계 함수를 결국 여러번 호출해야 하고 함수 하나를 호출하는 것보다 오버헤드가 더 크다. 타뷸레이션문제를 분할해서 작은 문제부터 차례대로 결과를 테이블에 저장하는 방식저장된 테이블을 기반으로 큰 문제의 해결을 단계적으로 구축상향식 계산 방식 미리 계산해 값도 미리 테이블에 저장한다. 저장 된 것을 불러와 사용한다. 둘다 장단점이 있다. 메모이제이션을 활용해서 계산 결과를 저장하는 방식인 직관적인 상태라면 메모이제이션이 유리직관적이지 않으면 타뷸레이션을 사용해서 메모리도 절약하고 속도도 빠르게 할 수 있다. 위 질문대로라면 재귀로 쉽게 구현할 수 있다고 말하고 있다. 그렇다면 메모이제이션을 사용하는편이 좋을 것 같다.
알고리즘 · 자료구조
・
cs-미션
・
cs-미션-발자국
・
cs전공지식
・
자료구조
・
알고리즘
・
워밍업클럽
2024. 10. 12.
1
[인프런 워밍업클럽 2기] CS전공지식_발자국_2주차
1. 개요이름: 인프런 워밍업 클럽 2기 - CS 전공지식 빠타박스 [신충식]기간: 2024.10.07 - 2024.10.112. 목표 및 성과설정한 목표: 가볍게 학습하며 정보처리기사 실기 대비달성한 성과: 운영체제와 알고리즘에 대한 중요한 부분을 쉽게 이해할 수 있는 계기가 되었다. 3. 잘된 점 (Keep)성공적인 요소: 적은 요소들을 기록했지만. 많은 것을 배울 수 있었다. 4. 개선할 점 (Problem)문제점 : 여전히 정보처리기사 실기와 함께 학습을 하고 있다는 점이다. 그래서 조금 깊게 들여다 보고 싶은데 그러지 못하고 있다. 개선이 필요한 프로세스 : 기록을 최소화 하게 되었지만. 아직도 쉽지 않다. 5. 다음 단계 (Try)향후 계획: 3주차는 마지막 기간이다. 그러나 정보처리기사 실기가 껴있는 관계로 역시 가볍게 볼 예정이다. 그러나 향후 다시 봐야하기 때문에, 조금이라도 정리하면서 기록하고자 한다. 다음 3주차에서 시도할 사항:기록은 가볍게,구현 부분 가볍게 C++과 비교하기 (다른 사람의 코드)수료식? 역할 및 책임:정처기 실기를 1트만에 합격해야 하는 의무가 있다..; 내년 까지 또 기다릴 순 없다..6. 기타 의견일주일 동안 학습하며2주차는 정말 중요한 부분들이 많이 나왔다. 운영체제의 스케줄링과 관련된 내용인, FIFO(이건 원래 FCFS로알고 있다.), SJF, RR, MLF MLQ등 중요한 내용들이였고, 그중 세마포어와 데드락과 관련된 내용이 정말 인상깊고 중요한 내용이였음을 알 수 있다. (게임회사 면접에서도 종종 물어보는 면접내용이기도 해서 와닿았다)자료구조 알고리즘에서는 기본적으로 3주차 마지막의 섹션 범위를 맞추기 위해 1주차에 비해 빠듯하지 않았다. 가볍게 볼 수 있었다. 또 알고리즘의 기본인 정렬에 대해 버블과 선택정렬은 이해하기 쉬웠다.조금 이상한건 섹션 6을 갑자기 뛰어넘어서.. 음..... 종종 뭔가 뛰어넘어간게 있었다.2주차 미션에 대해2주차 미션도 간단했다. 구현 부분에서 순간 착각해서 다시 쓰게되었었지만. 이 미션도 다시한번더 볼 필요가 있다고 생각이든다. 미션을 좀 이렇게 해볼걸...조금 아쉽게 미션을 풀이를 했다. 확실히 배우고 가고 싶지만. 어찌되었든 강사님께서는 가볍게 훑고 다음에 다시 보라는 식으로 말씀하시는 것 같다. 일단 정보처리기사실기가 끝나면 다시한번더 점검해보자.
알고리즘 · 자료구조
・
cs-발자국
・
cs-미션-발자국
・
인프런워밍업클럽2기
・
자료구조
・
알고리즘
2024. 10. 11.
1
[인프런 워밍업클럽 2기] CS전공지식_Mission02
운영체제1. FIFO 스케줄링의 장단점이 뭔가요?장점단순하고 직관적인 이다.단점처음 들어온 작업이 끝나야 다음 프로세스가 된다. ( 즉 늦게 도착하면 실행시간이 길어진다 빨리 도착했던 작업을 먼저 기다려야 하기 때문이다.)I/O 작업 같은 것도 다른 작업이 끝날 때 까지 다른 작업을 못하게 되어 사용률이 떨어진다. 2. SJF를 사용하기 여러운 이유가 뭔가요?FIFO 스케줄링 방식보다는 좋으나. 어떤 프로세스가 먼저 실행 될지 예측하기 힘들어졌다. SJF는 BURST타임이 가장 짧은 것 부터 실행되는 문제점 때문에, 타임이 긴 프로세스가 뒤로 밀려나는 현상이 생겼다. 3. RR 스케줄링에서 타임 슬라이스가 아주 작으면 어떤 문제가 발생할까요?어떤 프로그램 같은 것들이 동시에 실행되는 것 처럼 보일 수 있으나 -> 컨텍스트 스위칭이 자주 일어나서 처리되는 TimeSlice의 양보다 컨텍스트 스위칭 처리가 더 많아져서 오버헤드가 발생할 수 있다. 4. 운영체제가 MLFQ에서 CPU Bound Process와 I/O Bound Process를 어떻게 구분할까요?MLFQ는 손해보는 프로세스가 어떻게 손해보지 않을까 생각해 보는 것 각각에게 맞는 타임슬라이스를 할당하는 방식 프로세스 구분 : 프로세스가 CPU를 자발적으로 반납하면 I/O Bound Process일 확률이 높고, 타임 슬라이스를 초과해 강제로 CPU를 뺏기면 CPU Bound Process일 확률이 높다. 5. 공유자원이란무엇인가요?각 프로세스가 통신을 할 때 공동으로 이용하는 변수나 파일들 6. 교착상태에 빠질 수 있는 조건은 어떤 것들을 충족해야할까요?상호배제, 비선점, 점유와 대기, 원형 대기 (상비점원)상호배제 : 어떤 프로세스가 리소스 점유시 그 리소스는 다른 프로세스 사용하지 못해야 한다. (리소를 점유하는 상황) 비선점 : 프로세스가 점유한 리소스를 다른 프로세스가 빼앗을 수 없다. (사용중인 리소스를 빼앗을 수 없는 상황)점유와 대기 : 프로세스가 이미 리소스를 점유한 상태에서 추가적인 리소스를 요청해야 한다. (다른 리소스를 기다리는 상황)원형 대기 : 점유와 대기 관계가 원형으로 형성되어야 한다. (서로가 기다리는 상황) 자료구조와 알고리즘1. 재귀함수에서 기저조건을 만들지 않거나 잘못 설정했을 때 어떤 문제가 발생할 수 있나요?무한루프가 발생하거나, 스택 오버플로우가 발생할 수 있음그래서 반드시 기저조건(탈출조건)을 작성해야 한다. 재귀는 반드시 작성할 때 그 재귀의 깊이 및 수행시간도 고려해서 하향식 설계하는 것을 중요시 한다. *하향식 설계 : 전체 문제를 작은 하위 문제로 나누어 접근하는 것 (큰 문제를 먼저 정의 후 점진적으로 해결) 2. 0부터 입력 n까지 홀수의 합을 더하는 재귀 함수를 만들어보세요.#include using namespace std; int sumOdd(int n) { // 기저 사례 : n이 1일때 if (n > sum; cout 더 줄이기#include using namespace std; int sumOdd(int n) { if (n > sum; cout
알고리즘 · 자료구조
・
cs-미션
・
알고리즘
・
자료구조
・
인프런워밍업클럽
2024. 10. 04.
1
[인프런 워밍업클럽 2기] CS전공지식_발자국_1주차
1. 개요이름: 인프런 워밍업 클럽 2기 - CS 전공지식 빠타박스 [신충식]기간: 2024.09.30 - 2024.10.04 2. 목표 및 성과설정한 목표: 자료구조와 알고리즘, 운영체제에 대한 이해 직접 말하며 학습 및 노션 기록달성한 성과: 대부분 말로 하지 못하는 몇가지 운영체제 및 알고리즘 자료구조에 대한 이해를 할 수 있었다. 3. 잘된 점 (Keep)성공적인 요소: CS 전공지식에 대한 부분을 조금더 말로써 표현할 수 있는 부분 긍정적인 : CS 전공지식 과정이 10월 18일날 종료되는 시점에서 확실히 면접 부분에서 얻어 갈 수 있는 지식 부분들이 있음.4. 개선할 점 (Problem)문제점 : 현재 정보처리기사 실기 시험이 올해 마지막인데. 이 스터디가 좀 빡세다... ; 구현 부분에서 javascript를 C++로 구현해보고 공부해야 하니까..; 일단 넘어가고 다음에 해야 할련지.. 휴.. 너무 힘들다 하면 그냥 보고 넘어갔다가 다음에 시험 끝나고 하는 방식으로 진행해보는 것도 좋을거 같다..개선이 필요한 프로세스 : 기록을 하려다 보니 시간을 너무 많이 잡는다. 또 구현부분에서 C++로 변환하는 과정에서 4시간 이상을 쏟아 붓는다.. 개선되어야 한다.. 5. 다음 단계 (Try)향후 계획: 2주차 때는 좀 가볍게 보고 이후 기록을 진행하는 편으로 해야 겠다... 정보처리기사 실기가 더 중요하다 현재로써 나의 우선순위는 그것이다... 다음 2주차에서 시도할 사항: 기록은 가볍게, 구현 부분 가볍게 C++과 비교하기 (다른 사람의 코드)머릿속으로 그림그리기말로 직접 풀이 해보면서 강의해보기 역할 및 책임: 2주차 3주차 까지 마지막 하는 부분 최대한 간단히 하는 부분과 말로 직접 하면서 내것으로 만들 필요가 있을것 같다. 현재로써는.. 정처기 실기를 1트만에 합격해야 하는 의무가 있다..; 내년 까지 또 기다릴 순 없다.. 6. 기타 의견일주일 동안 학습하며이번 1주차에는 자료구조와 알고리즘 기본,LinkedList, DoubleLinkedList, Stack, Queue, Deque, Hash, 운영체제, 프로세스, 스레드, PCB, 컨텍스트스위칭, 인터럽트 등 처음부터 게임회사 취업시 필요한 면접 내용에 대해 간단히 배울 수 있었다. -> 연결리스트를 통해 계속해서 이어나가는 점에서 인상깊었다. 아 연결리스트로 스택과 큐, 덱, 해쉬에 응용할 수 있구나 ? 라는 것을 알 수 있었다. 확실히 처음 보는 CS전공지식인데. 감자님의 강의는 정말 간단하고 보기 편하다. 1주차 미션에 대해처음 미션을 보고서 간단한 단답형 또는 서술형을 작성 할 수 있게 되어있었다. 배운 내용에 대한 이해를 위해서 말로써 해본 것들이 떠올랐고, 발표하는 느낌으로 진행했다. 가장 어려웠던 알고리즘 구현부분에서 javascript 작성한 것을 최대한 비슷하게 만들기 위해 노력했었다.미션부분에서 인터럽트에 대해 전에 들어본적은 있었으나. 세부적인 내용에 접근하려고 해보았다. 어떤 알고리즘 자료구조를 사용해봐야할지 고민을 했다. 나는 주력 언어가 C++이라서 C++로 최대한 구현하고자 했는데. STL을 활용하여 , vector 및 구조체 사용을 통해 하거나 STL로 기본적으로 구현할 수 있는 queue가 어떤식으로 사용할 수 있는지 접근해보려고 했다. 하지만. STL로 부족한 부분은 활용만 하고 직접 구현해야 하는 부분도 있었는데. 원리 참고만하고 다른사람의 구현목록을 보고 가져와서 사용하려고 했었던거 같다.그리고 Chatgpt, 뤼튼, Gemini를 사용하여 거짓된 정보를 제거하고 정말 간단한 구현에 초점을 맞췄던거 같다 이후 최적화된 구현방법이 무엇인지 풀이해볼려고 했었다.미션을 좀 이렇게 해볼걸...미션을 하면서 조금 조급한 마음이 들었다. 왜냐하면 지금 정처기 준비에 온 신경이 쏟아져있는데.이 스터디 클럽 때문에,,, 사실... 너무 오랜 시간을 쏟고 있었다...다음 주차 부터는 좀 가볍게 해야겠다. 다시 보는 한이 있더라도 중요한 것 먼저 끝내야 겠다. 하지만 미션 풀이하면서 다시한번더 되새김질 하여서 좋았다. 마음이 조급해지는 것만 조금.. 뭔가 미션에 목숨을 걸게 된다..책임감 때문에,,..?흠... 모르겠다...일단 지금 집중해야 할 것을 집중하자...
알고리즘 · 자료구조
・
알고리즘
・
자료구조
・
워밍업클럽2기
・
발자국
・
CS-발자국
・
cs-발자국
・
감자
2024. 10. 02.
1
[인프런 워밍업클럽 2기] CS전공지식_Mission01
운영체제while(true){ wait(1); // 1초 멈춤 bool isActivated = checkSkillActivated(); // 체크 }위 코드는 1초 마다 플레이어가 스킬을 사용했는지 체크하는 코드입니다. 이 방식은 폴링방식입니다.1초마다 체크하기 때문에 성능에 좋지 않습니다. 이를 해결하기 위한 방식으로 어떤 걸 이용해야 할까요? 이런 풀링 방식의 경우 계속 매초마다 확인을 하니까 효율이 좋지 못하다.이전에 서버에게 클라이언트에서 로그인 인증 됬는지 처리하기 위해 계속 해서 switch 문에 들락날락 처리 되도록 한적이 있는데. 확실히 삑나간적이 있었다.이럴때 필요한게 인터럽트 인데 일종의 대기상태 라고 생각하면 될 것 같다.CPU는 다른 작업을 실행시키거나 하여 잠시 대기시키고 해당 작업이 완료되는 시점에 신호를 받아 완료 시킨다. 언리얼엔진에서도 비슷하게 조건을 주어 매초마다 주는 Tick 발생을 제어하는 것들이 있는데.상태머신에서도 볼 수 있는 현상이다.조건을 주어 다른 것이 실행되게 하고 입력값이 들어오면 그때서야 실행하는 것이다. 인터럽트도 일정 입력이 들어올 때까지 작동하지 않고 들어오면 인터럽트에 의해 다른 업무를 시키고 그 업무로 들어가게 한다. 해결방법인터럽트 핸들러 : 특정이벤트가 발생했을 때 인터럽트가 발생하도록 처리 CPU는 대기상태에서 벗어나서 해당 이벤트를 즉시 실행상태 플러그 : 인터럽트 핸들러에서 상태 플래그를 설정하고 loop에서 이 플래그를 체크하여 작업을 수행하도록 volatile bool skillActivated = false; void interruptHandler() { skillActivated = true; // 인터럽트 발생시 플래그 } while(1) { if (skillActivated) { skillActivated = false; // 플래그 초기화 } // 다른 작업 수행 }우선 순위 관리를 통해 중요한 이벤트 부터 처리타이머 사용 : 주기적인 작업시 타이머 설정해서 일정 시간마다 인터럽트 처리다용도 입출력(GPIO)핀의 변화를 감지해서 인터럽트 발생등등 2. 프로그램과 프로세스가 어떻게 다른가요?프로그램 명령문의 집합체일종의 실행파일같이 .exe 형태로 이루어짐컴퓨터의 관점에서 저장장치만 사용하는 수동적 존재 프로세스실행중인 프로그램저장장치에서 프로그램이 메모리에 올라간 것메모리도 사용하고 운영체제 CPU 스케줄링에 따라 CPU도 사용됨, 능동적인 존재이다. 3. 멀티프로그래밍과 멀티프로세싱이 어떻게 다른가요?멀티 프로그래밍메모리에 여러개의 프로세스가 올라온 것 멀티 프로세싱CPU가 여러개의 프로세스를 처리하는 것 -> 오늘날 멀티프로세싱 프로그래밍이 전부다 쓰인다.메모리에는 여러개의 프로세스가 올라오는 멀티프로그래밍, 시분할 처리로 CPU가 각각의 프로세스를 짧은 시간동안 교대로 실행하는 멀티프로세싱이 있다. (동시에 실행된다는 개념이 아니다) 4. 운영체제는 프로세스를 관리하기 위해서 어떤 것을 사용하나요?운영체제는 프로세스가 만들어지면 해당 프로세스의 정보를 가지고 있는 PCB를 만든다. 이것은 연결리스트 자료구조 마냥 저장되어있는데. 프로세스가 종료되면 해당 리스트에서 프로세스의 PCB를 제거합니다. 그러면서 연결리스트의 구조는 그대로 유지 합니다. PCB의 구조는포인터프로세스 상태프로세스 ID프로그램 카운터레지스터 정보메모리관련정보CPU스케줄링 정보 등 PCB내부에서 여러개의 동작이 실행되어 운영체제에 의해 관리됩니다. 5. 컨텍스트 스위칭이란 뭔가요? 프로세스를 실행하는 중에 다른 프로세스를 실행하기 위해 실행 중인 프로세스를 저장하고 다른 프로세스의 상태값으로 교체는 작업을 - 컨텍스트 스위칭 이라고 한다. 컨텍스트 스위칭은 PCB의 내용이 변경된다.실행중인 프로세스의 작업내용을 PCB에 저장하고 실행될 기존 프로세스의 PCB의 내용대로 CPU가 다시 셋팅 된다. 컨텍스트 스위칭이 발생시 PCB의 변경 값 프로세스 상태프로그램 카운터 : 다음 실행할 명령어 주소레지스터 값 & 메모리관련 정보 : 각종 레지스터의 값 정보 발생 이유 CPU 점유시간이 다 되거나 입출력 요청이 있거나다른 종류의 인터럽트가 있을 때 발생할 때 자료구조와 알고리즘1. 여러분은 교실의 학생 정보를 저장하고 열람할 수 있는 관리 프로그램을 개발하려고 합니다.이 때 여러분이라면 학생의 정보를 저장하기 위한 자료구조를 어떤 걸 선택하실 건가요? 이유를 함께 적어주세요.학생 정보를 저장하기 위해 구조체와 벡터를 결합해 사용할 수 있을 것 같다. 구조체는 학생 정보를 표현하고, 벡터는 여러 학생 정보를 동적으로 저장할 수 있다. C++에서는 이러한 것이 STL에 컨테이너로 되어 사용가능하다.사용이유구조체 사용 : 학생 정보를 하나의 단위로 묶어 관리하기 위해 구조체를 사용학생의 이름나이학생ID등의 속성을 쉽게 다룰 수 있다. 벡터 사용 : 벡터는 동적 배열로, 학생 수가 변동 될 수 있는 상황에 유용하다. 학생을 추가하거나 삭제할 때 유연하게 대처가능 하다. #include #include #include #include using namespace std; struct Student { // 기본적으로 구조체는 기본적으로 public string name; int age; string studentId; // 구조체 변수 초기화 Student(string n, int a, string id) : name(n), age(a), studentId(id) {} }; class StudentManager { public: void AddStudent(const string& name, int age, const string& studentId) { vStudents.emplace_back(name, age, studentId); // 객체내 인자만받아 함수 내에서 객체 생성해 삽입 - emplace_back 생성자 한번만 호출 } /*width() 또는 iomanip/ setw()로 정리*/ void DisplayStudents() const { for (const auto& student : vStudents) { cout vStudents; }; int main() { StudentManager manager; manager.AddStudent("홍길동", 20, "20230001"); manager.AddStudent("인프런", 21, "20230002"); manager.AddStudent("감자 ", 25, "20230003"); cout 2. 여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요.큐(Queue)자료구조를 사용해서 FIFO방식으로 데이터를 처리하므로 주문이 들어온 순서대로 처리할 수 있습니다. STL에 queue를 사용할 수 있습니다.사용이유FIFO : 선입선출 방식, 주문이 들어온 순서대로 처리할 수 있어서 주문관리에 적합합니다. 고객 대기 시간을 최소화할 수 있습니다. (단. 끼어들기 금지)간편한 관리 : C++STL 제공하기에 복잡한 구현없이 간편하게 큐를 관리 확장성 : 새로운 주문 추가또는 기존 주문을 처리하는 과정이 명확해서 확장및 유지보수 용이 /*여러분은 고객의 주문을 받는 프로그램을 개발하려고 합니다. 주문은 들어온 순서대로 처리됩니다. 이 때 여러분이라면 어떤 자료구조를 선택하실 건가요? 이유를 함께 적어주세요. */ #include #include #include using namespace std; typedef struct Order { string customerName; // 고객이름 string item; // 주문한 물건 int quantity; // 주문 수량 int price; // 주문 가격 int Sum; // 주문 총 가격 // 각 변수 초기화 Order(string name, string itm, int qty, int pri, int sum) : customerName(name), item(itm), quantity(qty), price(pri), Sum(sum) {} } Orderinfo; class OrderManager { public: void AddOrder(const string& name, const string& item, int quantity, int price, int Sum) { Sum = (price * quantity); orders.emplace(name, item, quantity, price, Sum); // 새로운 주문 객체를 큐에 추가 } void ProcessOrder() // 주문 처리 { // 큐에 주문이 있는가? if (!orders.empty()) { Order currentOrder = orders.front(); // 현재 처리할 주문을 큐의 앞에서 가져온다. orders.pop(); // 주문을 큐에서 제거 // 처리 중인 주문 정보 출력 cout orders; }; int main() { OrderManager manager; // 주문 추가 manager.AddOrder("김감자", "토마토", 2, 3000, NULL); manager.AddOrder("인프런", "바나나", 1, 2000, NULL); while (manager.bfHasOrders()) { manager.ProcessOrder(); // 주문처리 } return 0; }
cs-미션
・
인프런워밍업클럽2기
・
빠타박스
・
인프런
・
cs
・
자료구조
・
알고리즘
・
운영체제
2024. 09. 29.
2
[(Daily 빠타박스)인프런 워밍업 클럽 2기] - CS 전공지식을 시작하는 글_1일차
인프런 워밍업 클럽 CS얼마전 본 면접에 나는 그냥 딱히 신경 쓰지 않았다. 나의 실력이 이정도구나..이런 질문에 이런 것 밖에 답변을 하지 못하는구나. 너무 준비되지 못했고 기초가 부족하다 느꼈다... 그러다 우연치 않게 보게된 워밍업 클럽 처음엔 무료인줄 알았다..그러나 스터디 그룹에 초대되고 그런 과정이 무료라는 것이지 절대 세상에 무료라는 것은 없다. 그냥 40% 할인권을 주었고그것으로 구매하여 저렴하게 강의를 수강할 수 있었다. 감자라는 강의자 분은 정말 퀄리티 좋은 강의를 올리시고 계신다는 것을 일단 동영상에 노력이 어마어마 하게 들어갔음을 알 수 있었다. 감자강의자님 로드맵 CS일단 강의 자체는 좋아보였고, 리뷰도 정말 좋게 쓰여져 있다. 솔직히 믿을만 한가. 싶기도 했지만. 나는 좀 인강 스타일이 까다롭게 잘 안맞아서... 이 30대에 듣는 인강을 신중히 고르는 편이였다. 리뷰 내용도 일단 보고 고민을 많이했다. 널널한개발자 님의 강의를 볼지 이것을 할 지 그러나 그냥 해보자 싶었다.강의 커리큘럼을 비교해 보면서 들어오게 되었고,11월 1일 까지 마감이라. 딱 마침 내가 다시 학원에 가게 될 시기랑 겹치지 않아서.(갈지 안갈지 지금 쓰는 시점에서 아직 정하지는 않았다만..) 그렇게 초대된 디스코드를 통해서 OT도 진행하였고, 확실히 제대로 진행하는 스터디 클럽인 만큼 신중히 잘 하는 것 같았다.시간표도 주어지고 준비가 되어있는 듯 했다. 약 한달간의 커리큘럼과정이였으나.이것이 어쨋든 자기주도학습의 일환이다. 우리가 들어야 한다. 정보를 제공해주었으니. 그래서 시작해본다.내 스스로의 위치에서 발전할 수 있기를 어디서나 중요한건 복습이다. 복습되지 않으면 쉽지 않을 수 있다.내가 간과하는 것이 그런것이다. 반복학습을 싫어하기에. 힘들어한다.하지만 해야하만 한다... 한번 진행해보자... 9월 30일을 기점으로 1일차가 시작되고 그것을 해내기 위해 글을 써본다.또한 정보처리기사 실기가 잡혀있는데. 병행해서 해야만한다.
컴퓨터 구조
・
인프런워밍업클럽
・
스터디모임
・
감자
・
빠타박스
・
언리얼엔진
・
CS지식
・
CS
・
게임개발자
2024. 03. 09.
1
[Tip] _ 우리가 처음 UE5 을 시작할 때 잘 모를 만한 상황이나 해결법
우리가 Unreal Project 생성시 알아야 하는 부분이 있습니다.프로젝트 생성절대 경로상에 한글, 띄어쓰기, 숫자가 있는 것이 있으면 안됩니다.즉. 01_Unreal Engine X언리얼엔진01 X언리얼ENgine X폴더 명 For Project Unreal X위처럼 작성시 언리얼이 해당 경로를 찾을 수 없습니다. 간단히 생각해보면 쉬운데, 우리가 언리얼 에서 헤더 부분을 잘 보시면 됩니다. 헤더부분에 띄어쓰기가 되어있거나. 한글로 적힌 부분이 없습니다. 애초에 한글이나. 띄어쓰기가 있을 경우나 숫자가 먼저 나오는 폴더경로에 있을경우 언리얼 프로젝트가 해당 파일을 찾을 수 없게 됩니다. 혹시나 build 에러가 뜨시거나 한다면 먼저 경로 설정을 확인해 보세요!Live CodingUnreal Engine 5 부터는 Live Coding이라는게 들어가 있습니다. 이전 4에서는 C++에서 빌드후 돌아왔을때 에디터 창이 크래시 나게 되면 피치 못하게 저장이 안되서 날라가는 경우도 있었고, 크래쉬가 나게되어 문제의 원인을 찾지 못하면 프로젝트를 못열고 문제가 되는 부분을 찾아서 코드 수정 후 빌드해서 다시 열거나 프로젝트를 이전 백업파일을 가져와서 열어야 하던 시절이 있었습니다. 라이브코딩은 해당 문제에 대한 부분을 찾아주고 에디터로 오는 특정 문제 되는 부분을 조금 예방할 수 있다는 게 있습니다.하단에 이렇게 눌러서 하거나.하단 창 우측에 이렇게 라이브 코딩을 바로 실행할 수 있게되어 있습니다. 이전 처럼 작업이 라이브코딩 없이 Visual studio상 빌드로만 하시는게 편하시거나. 디버깅 할 때 라이브코딩 충돌을 일으키므로 이렇게 점 있는 부분에 속성 부분에서 Enable Live Coding을 꺼서 사용도 가능합니다.이외로 많이 겪는 문제는 많습니다.Unreal C++ Blueprint 주소 경로 가져올 때 '_C ' 를 명시하는 것이나. 이것은 해당 템플릿 안에 무엇이 들어가 있는가에 따라 불러오는 것이 위젯인지 pawn 인지 Actor인지 등등 이 후 추가 사항이 있다면 올리겠습니다~
게임 프로그래밍
・
UnrealEngine
・
Game
・
GameDevelop
・
ppatabox
・
신충식
・
unrealbugs