본문 바로가기

전체 글270

[ C++ 6, 7, 8, 9일차 ] 자료구조 시작, T 템플릿, 콘솔 엔진 제작 시작 자료구조선형/비선형 자료구조 : 연속적/비연속적 메모리 구조 선형 자료구조배열 : stack에 할당동적배열 : heap에 할당 - 배열- 동적 배열- 연결 리스트- 스택을 구현해 보는 작업을 했다.  구현 후에, template T로 범용성을 넓혀 구현하는 작업도 진행하며 템플릿의 특징을 정리해 보았다.  template T - .h 헤더파일에 모두 구현해야 함. (컴파일 타임에 다 해석되어야 하기 때문)     .cpp에 구현도 가능하지만, 구조가 이상해짐  - 템플릿이 복잡성을 증가할 수 있다.    예) const char*같은 경우, 따로 선언이 필요.     -> 템플릿을 만들기 전에, 사용 범위 다시 생각해 보고 구현하기  - 템플릿 생성자에서, 기본 생성자 초기값 설정을 다음과 같이 설정하면.. 2025. 1. 8.
[ C++ 4일차 ] static, 형변환, RTTI, 파일입출력, 비트 배열 **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다. 복습 내용~friend가 간편하지만 Getter/Setter로 하는 연습하기!~  staticcpp 밖으로 넘기지 않음. 변수는 최대한 범위를 제한하는 것이 좋다. static 변수는 코드 영역에서 메모리가 잡히기 때문에 (code/data/stack/heap 중)따로 초기화 필요. 선언하면 여러 인스턴스가 static 변수를 공유, 재활용한다.    형변환cpp는 4가지 형변환const_cast : const를 추가/제거static_cast : 주로 일반 형변환reinterpret_cast : C스타일 형변환과 동일한 성질, 강제 형변환. static_cast보다 강력하지만 안전하지 않음 dynamic.. 2024. 12. 30.
[ C++ 3일차 ] 상속, 객체와 포인터의 관계, virtual 함수, 연산자 오버로딩 **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다. 복습 내용 ~얕은 복사는 원본과 같은 주소 값을 가리킨다. 깊은 복사는 원본 값을 다른 주소에 복사하여 저장하는 것. 따라서 얕은 복사 시, 원본은 메모리 해제에 주의해야 함. ~ 접근 제한자 protected 확장가능성을 염두에 두고 사용하는 접근 제한자이다. 이 때문에, 많은 프로그램에서 protected를 많이 사용하였지만, 결과적으로 확장하지 않는 경우가 많았다고 한다. 따라서 요즘은 과도하게 확장을 고려하지 않고, 확장해야 할 때가 온다면 수정하는 추세라고 한다.  소스파일(.cpp)과 헤더파일(.h) 이동 단축키같은 이름의 소스파일과 헤더파일은 ctrl + k + o로 이동이 가능하다.  in.. 2024. 12. 27.
[ C++ 2일차 ] class, 동적 메모리, C++의 고유 문법, 지평좌표계.. **개념의 자세한 내용이 아닌 기존 독학 내용을 제외한 강의에서 새롭게 알게 된 내용들을 정리하였다.  C++에 대한 정확한 자료들은 다음 두 페이지를 참고하자. https://learn.microsoft.com/ko-kr/cpp/cpp/?view=msvc-170 C++ 문서 - 시작, 자습서, 참조.Microsoft C++ 및 Visual Studio 사용자를 위한 C++ 프로그래밍 참조.learn.microsoft.comhttps://en.cppreference.com/w/ cppreference.comNull-terminated strings:    byte  −   multibyte  −   wideen.cppreference.com 특히 구글링 시, msdn (+검색 내용)을 하면 더 정확하다고.. 2024. 12. 26.
[ C++/문제 해결 ] class의 깊은 복사와 임시 객체를 통한 생성 오류 수업 중 이슈 확인깊은 복사에서 다음 코드 내용과 같이 Player player2 = Player(player1);으로 임시 객체를 만들어 생성 시,  Player player1 = Player("Alien", 0, 0); Player player2 = Player(player1);다음과 같은 에러가 생긴다.  1) player2에 player1 임시 객체 할당 전2) 할당 후, player1.Print();3) player1.Print();가 끝난 후, 임시 객체를 최적화하여 name 증발 4) 최종 출력 화면   다음과 같이 임시 객체를 생성하지 않고 초기화하면 문제가 생기지 않는다! //Player player2 = Player(player1);로 임시 객체를 만들어 초기화하면 최적화당해 .. 2024. 12. 26.
[G-STAR/G-CON 2024] 지스타 컨퍼런스 2024 Day1 후기 인천에서 첫 지하철을 타고 지스타에 날아왔다..!바로 컨퍼런스를 듣기 위해!!! 우선, 다음 사진에 북마크 한 프로그램에 참여하였다. 이후 시간은 원격근무를 해야 했기 때문에 아쉽게도 참여하지 못하였다.  1. 라이브 게임 서비스하듯이 신규 게임 개발하기2. 창작과 혁신의 새로운 동력, 생성형 AI의 지속 가능한 활용 전략과 대비3. 2024년 이후의 Steam과 PC 게임4. 파이널 판타지 Ⅶ: 시대를 초월한 게임 제작의 도전과 리메이크 프로젝트5. 혼자 만드는 꿈, '안녕서울'의 실패와 재도전의 여정  [라이브 게임 서비스하듯이 신규 게임 개발하기]-BBQ PJ 개발 중단 원인-1. ‘개발진의 역량 파악 부족’          기존 2D 프로젝트에서 첫 3D 프로젝트의 차이 간과.     개인 의견 .. 2024. 11. 14.
[11/12 TODO] 진로 고민_테크니컬 프로그래머/아티스트 지난주, 학과 시절 컴퓨터공학부 교수님과 엔진 개발자 선배님과 함께 값진 시간을 보냈다. 그 뒤로, 내년 계획은 어느 정도 세웠지만, 더 미래의 나의 진로에 아직 고민이 많다..  기간11/12  원티드 커리어 프리뷰 2차 특강11/14~11/15 지스타 컨퍼런스 (원격 근무도 해야 한다! 헤헤😁)11/16~11/17 BTC 참가~11/15 현재 회사 계약 종료~11/30 Unity Play Launch Showcase 마감~매주 일요일 백준 스터디 마감인프런인프런 워밍업 클럽 CS 스터디_ 발자취 작성 : 늦었지만 개인 기록으로!!인프런 워밍업 클럽 CS 스터디_ 남은 강의 듣기인프런 워밍업 클럽 CS 스터디_ 발자취 작성인프런 워밍업 클럽 CS 스터디_오프라인 수료식 후기 작성!개인인턴 회고록 작성.. 2024. 11. 12.
[11/07 TODO] 몸이 딱 하나만 더 있으면 좋겠다! 할 것들이 너무 많은데, 달성하는 것보다 생기는 것들이 더 많은 듯하다..! 힘들면서도 기쁘기도 하고 재밌기도 하다!   기간11/08 컴퓨터공학부 교수님과 엔진 개발자 선배와 점심식사11/08 CET 시간 기준 CrazyWebGameJam 마감11/6~11/10  원티드 커리어 프리뷰 1차 미션11/14~11/15 지스타 컨퍼런스 (원격 근무도 해야 한다! 헤헤😁)11/16~11/17 BTC 참가~11/15 현재 회사 계약 종료~매주 일요일 백준 스터디 마감인프런인프런 워밍업 클럽 CS 스터디_ 발자취 작성 : 늦었지만 개인 기록으로!!인프런 워밍업 클럽 CS 스터디_ 남은 강의 듣기인프런 워밍업 클럽 CS 스터디_ 발자취 작성 인프런 워밍업 클럽 CS 스터디_오프라인 수료식 후기 작성!개인인턴 회고.. 2024. 11. 7.
[Python] Class와 __init__, self -클라이언트 개발자의 StableDiffusion 프로젝트 백엔드 맛보기- __init__은 생성자. 첫번째 매개변수는 self여야 함. class 내부의 함수에서의 self 매개변수는, class의 인스턴스이다. 따라서 self는 자기 자신의 class를 참조하는 매개변수. 객체지향언어와는 다르게 명시해준다고함. 매개변수를 생성자 정의와 동시에 초기화했다면, 생성자 호출 시, 매개변수를 포함하지 않으면 초기화 한 매개변수를 자동으로 사용. 이를 변경하고 싶을 경우, 해당 class를 상속받아 변경하고싶은 매개변수 초기화, super로 부모 class의 임시 객체에 접근함. python은 너무 오랜만이라, 너무 헷갈렸다. 수석님이 바쁘셔서 혼자 코드를 공부해보았다. 처음에 self가 무엇인지, 다음 __.. 2024. 10. 21.
[스터디] 인프런 CS 전공지식 스터디 2기_운영체제(1주차) ~섹션2 유닛7 +강의 정리와 개인적인 지식, 의견 또한 포함되어 있습니다. 강의의 자세한 내용은 포함하지 않고 있습니다.  [섹션1 - 개요]컴퓨터는 운영체제가 있어야 추가 기능을 사용 가능하다.  운영체제의 일프로세스 관리메모리 관리하드웨어 관리_사용자의 제한파일 시스템 관리 운영체제의 구조커널 프로세스, 메모리, 저장장치 관리사용자는 인터페이스를 통해 접근(GUI_그래픽 window, mac, CLI_텍스트 명령)어플리케이션은 시스템 콜을 통해 커널에 접근 컴퓨터 하드웨어와 구조폰 노이만CPU - RAM프로그램 내장방식 - RAM에 올려 CPU에서 처리메인보드 : CPU, 메모리, 하드디스크, 그래픽카드, 출력장치(모니터, 키보드, 마우스, 스피커..) CPU(Central Processing Un.. 2024. 10. 6.
[스터디] 인프런 CS 전공지식 스터디 2기_자료구조와 알고리즘(1주차) 발자국 ~섹션2 유닛 8+강의 정리와 개인적인 지식, 의견 또한 포함되어 있습니다. 강의의 자세한 내용은 포함하지 않고 있습니다.  [섹션1 - 개요] 자료구조를 사용해야 하는 이유?더 나은 유지보수! (개인적인 의견으로 가장 중요한 개발 목표라고 생각) 알고리즘자료구조에 따라 알고리즘 달라짐.자료구조에 많은 영향! 프로젝트 시작 시 적절한 자료구조 선택, 사용 결정 후 그에 맞는 알고리즘으로 가공.  결국 유지보수를 염두에 둔다면 굉장히 중요한 사항들!  더 좋은 알고리즘이란?정답은 없다. 프로젝트의 목적에 따라 보통 속도/메모리 중 우선순위를 선택하게 됨 일반적으로 알고리즘은 속도를 성능의 척도로 사용 (시간 복잡도)→ 코딩테스트 시간 복잡도는 실제 디바이스의 실행 시간이 아닌 코드를 기준으로 실행시간 예측.. 2024. 10. 6.
앞으로의 나의 개발 블로그, 당신은 무엇을 위하여 글을 쓰는가? 광고 제거얼마 전, 블로그 개설 초기에 거부당했던 Google AdSense 신청아 승인되었다. 솔직히 너무 기뻤다. 그만큼 블로그 방문 수도 늘어났고, 성장했다는 도장을 받은 것 같았다.  하지만, 오늘 AdSense와 초기부터 사용하던 kakao AdFit 모두 연동 해제하였다. 광고를 모두 지워야겠다는 마음을 먹고 바로 실행한 것이다.   블로그의 시작처음 개발 블로그는 Unity 개발자 국비지원 학원의 강사님의 지도하에 시작하게 되었다. 이전에도 학부 시절 네이버 블로그에 C 수업이나 과제 정리 올린 내용도 있지만, 본격적으로 시작하게 된 계기였다. 네이버 블로그😊 https://blog.naver.com/s2nhl/222903401781 그렇게 초반에는 수업에서 C#과 Unity를 배우고 기록.. 2024. 9. 19.