안녕하세요 우공이산, 우보만리, 초지일관
낮아보이나 꾸준히 하여 큰 업적을 이루고, 처음 세운 뜻을 끝까지 밀고나가는 빠타박스 입니다.
연기 및 게임개발, 군입대(특수부대), 경영관련하여 여러 경험을 쌓았던 이력이 있습니다.
여러가지를 이제는 게임개발에 몰입하고 있군요.
간절히 바라면 이루어지리~!
<이력>
광운 전자 공업고등학교(현 광운인공지능고등학교) 졸업 2011~2013
前 201특공여단 병과 상병 이전 2015 ~ 2016
前 특수전 사령부 소속 국제평화지원단 특전사 부사관으로 복무 2016~2020
UN소속 레바논 평화유지군 파병 임무 수행 2018~2019
부천대학교 경영학과 졸업 2018~2021 (초대졸)
SGA 서울 게임 아카데미 콘텐츠 프로그래밍 과정 수료 2021.10 ~ 2022.10
SGA 우수 포트폴리오 선정 2022.11
SeSAC & 컴투스 블록체인 게임서버 개발자 과정 수료 2023.10 ~ 2024.02
새싹 팀 협업 Unreal Engine GoogleAuth 및 AWS 구동을 위한 자체서버 구현및 연동 (기획, 클라, PM, Design)
SeSAC & 컴투스 블록체인 게임서버 개발자 과정_ 팀 협업 프로젝트 3등
블로그 : https://ppatabox.tistory.com/
유튜브 : https://www.youtube.com/@devppatabox
노션 : https://gibeonsoftwork.notion.site/PPATABOX-NOTION-164955678a7d409584c02c2d03b914b9?pvs=4
로드맵
전체 2게시글
질문&답변
채점이 안되요...
휴.. . 테스트케이스 그냥 돌려보는 수 밖에 없겠네요.. 동일한 문제를 겪었다가 해결하신분 있으시면.. .도움좀..
- 1
- 1
- 130
질문&답변
dev c++ 이 제대로 실행이 안되요
저도 문제가 좀 있어서 다시 깔았어요. 최신버전으로 깔다가 베타 버전이란것을 알았습니다.. https://sourceforge.net/projects/orwelldevcpp/여기 있는 것으로 까시고 다시 지우고 해보세요
- 1
- 2
- 679
고민있어요
코딩테스트 그림을 그려보라는게 무슨말일까요?
- 0
- 1
- 133
고민있어요
[해시테이블-구현] C++ 구현...
- 1
- 1
- 101
질문&답변
길이문제질문
length(문자열)size, sizeof 는 변수 및 문자열 사용가능size : 해당 배열의 공간의 수를 반환sizeof : 해당 자료형으로 선언된 배열의 갯수의 바이트를 반환length : 문자열 선언만 가능 문자열의 길이를 반환 strLen 도 비슷합니다. C/C++의 차이 일뿐.직접 IDE에 쳐보면 좀 더 확실할 거 같네요... 파이팅!
- 0
- 4
- 140
질문&답변
학원에서 유니티공부하고 포트폴리오까지 제작하였는데 언리얼 공부는 언제쯤 하는게 좋을까요?
아직 취준이긴 하지만. 제가 조금더 누가 잡아줬으면 하는 부분입니다. 저는 1년 학원 6개월 캠프 나왔습니다. 1. 가고싶은 회사를 고르시고, 갈 수 있는 회사를 고르시고, 그곳의 자격요건을 보세요. 내가 그 자격요건에 합당한지 생각해보세요. 알고 있는 부분이라면 3번으로일단 모든 요건에 쓸 수 있는 이력서를 준비해주세요. (노션이든PDF작성) 포트폴리오 코드 및 관련 내용등 잘 정리해서 제출 할 수 있게 해주세요,(코드 및 포폴 자료)일단 집어넣으세요!내가 부족한 부분이 뭔가 고려해보시고, 내가 정말 이 위치에서 이 게임 개발자를 재밌게 수행할 수 있을까? 등등 또 부족한 기술 어떤 부분을 공부해야할까 고민해보세요 여러가지 공부하세요. 많은걸 알면 좋지만. 일단 취업이 우선이면 해당 자격요건에 합당할 수 있게 준비하시는 편도 좋아다양한 기능을 만들어보세요. C/C++, 언리얼 C++ 공부하시면 좋습니다. 회사들어가서 유니티만 하는거 아니고 언리얼만 하는거 아니라고 하시더군요. 이전에 넥토리얼 가서 시니어 개발자 분이 자기는 유니티 개발하러 들어왔는데 어느순간 언리얼 만지고 어느순간 서버 갔더니 책 던져주고 어느순간 엔진개발쪽도 갔다고 하더군요... 뭐 옛날일이지만. 지금도 안그럴일 없다고..
- 0
- 2
- 747
질문&답변
정처기 합격 잘 부탁드립니다.
실기 합격 하셨나요
- 1
- 2
- 229
질문&답변
게임학원에 대해 질문드리고 싶습니다.
오호 직업군인 이셨군요 심지어 컴공 졸업...저도 특수부대에 5년간 있었다가 경영학 2년제 전공인데.게임 개발 해서 하고 싶은게 생겨서 하고 있습니다.SGA 1년 (현재 그 강사님은 아텐츠라는 곳으로 가셨네요)- 나쁘진 않았는데. 요즘... 어떤지 모르곘네요 21~22년 있었는데. 커리가 나쁘진 않으나 학원은 항상 생각해야 할게.. 4년 배울 걸 좀 빨리 진행합니다. 뭐 그외로 쥬신도 있을거 같네요 저에겐 거리가 너무 멀었지만..방송국은.. 그냥 거르라고 하시더군요. 어딜 가도..그외로 ACow트락 같은 경우는 무난하긴 하나... 음.. 이 쪽 출신 분들 캠프에서 많이 만났어 가지고.. 뭐 넵..사람마다 케바케죠.저는 2년반째 인데. 너무 욕심부리다가 이제 서야 정신차리고 , 중소나, 스타트업 알아보고 있습니다.. 나이는 어연30이 됬네요.. 26살에 전역했는데..직업군인 5년학원 1년 캠프 6개월... 파이팅 하세요! 컴공 4년 나오셔서 그래도.. 서류적으로 조금 부럽네여...비효율적인 걸음을 공유하겠습니다.https://ppatabox.tistory.com/https://gibeonsoftwork.notion.site/PPATABOX-NOTION-164955678a7d409584c02c2d03b914b9?pvs=4
- 1
- 2
- 464
질문&답변
c++ 책
C++기초플러스....
- 0
- 2
- 617
질문&답변
알고리즘 공부는 어느정도 하면 될까요?
알고리즘 공부... 정말 어렵더군요. 뭔가 센스가 있어야 하는.. 흠... ; 스승이 잘못 된건지 내 머리가 잘못된건지 모르곘으나. 풀면 재미는 있는데 안풀리면 답답하더군요.. 학습자님은 어떤 단계이신지 모르곘지만..파이팅..
- 0
- 2
- 346
블로그
전체 142024. 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-미션
・
알고리즘
・
자료구조
・
인프런워밍업클럽