본문 바로가기

전체 글263

[Python] Class와 __init__, self -클라이언트 개발자의 StableDiffusion 프로젝트 백엔드 맛보기- __init__은 생성자. 첫번째 매개변수는 self여야 함. class 내부의 함수에서의 self 매개변수는, class의 인스턴스이다. 따라서 self는 자기 자신의 class를 참조하는 매개변수. 객체지향언어와는 다르게 명시해준다고함. 매개변수를 생성자 정의와 동시에 초기화했다면, 생성자 호출 시, 매개변수를 포함하지 않으면 초기화 한 매개변수를 자동으로 사용. 이를 변경하고 싶을 경우, 해당 class를 상속받아 변경하고싶은 매개변수 초기화, super로 부모 class의 임시 객체에 접근함. python은 너무 오랜만이라, 너무 헷갈렸다. 수석님이 바쁘셔서 혼자 코드를 공부해보았다. 처음에 self가 무엇인지, 다음 __.. 2024. 10. 21.
[원티드 포텐업] 데이터·AI & 게임 클라이언트 협업 트랙 1기 모집 중 채용 플랫폼인 원티드에서 데이터·AI 트랙과 게임 클라이언트 트랙 교육을 모집 중이다.  Unity 클라이언트 개발자로 인턴을 시작하고, 실무를 경험하며 Unity C#의 한계를 느끼기 시작했다. 이후 C#보다  low level language를 배우고 싶어, 이전에 배우던 C++을 다시 공부하게 되었다. 그 과정에서, Unity 클라이언트로 계속하며 Plugin을 통하여 C++을 활용할 것인지, 자체엔진 혹은 Unreal 클라이언트로 C++을 주 언어로 사용하는 것을 목표로 잡을 것인지 고민이 많았다.  그 고민 중, 원티드 메일을 통하여 해당 과정을 알게 되었다. 1차 설명회를 들어보니, 지금까지 다양한 교육을 탐색하고, 거쳐온 경험으로 정말 괜찮은 과정이라고 생각한다. 원티드에서 구체적으로 제공한.. 2024. 10. 9.
[스터디] 인프런 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.
[Unity] Installer 버전 생성하기, Inno Setup 사용, folder 오류 해결 일반인이 Unity build 파일을 설치하게 하고 싶어 알아보다 Inno Setup을 사용하는 방법을 사용하게 되었다.  !주의할 점!output folder directory는 어느 pc에나 있는 directory로 지정하거나 해당 directory를 생성해주어야 함. 포스팅 글들 무작정 따라 하지 않고(저처럼) 자신의 에디터 버전과 상황에 맞게 생성해 주기! 그냥 동적 생성 데이터(실행 후 생성되는) 제외하고 모두 추가하면 됩니다.  폴더 추가 시 다운받을 때 폴더를 zip파일 분해처럼 원래 폴더의 내부 데이터만 꺼내기 때문에 추가할 폴더는 같은 이름으로 dummy folder 만들어주기!    번외)여기서 하나 궁금해져서.. 설치 성공한 빌드파일 기반으로 위처럼 같은 이름의 각각의 폴더 말고임의로.. 2024. 9. 12.
[C++] '::' Scpe operator 스코프 범위 지정 연산자 C++을 공부하며 C#과는 다른 점들을 계속 비교하며 공부하게 된다. 이번에 집중하게 된 포인트는 Class의 함수를 외부에서 ::연산자를 통해 구현하고 있다는 점이었다.  처음에는 Class 참조를 .대신 ::로 하나? 생각했지만, 구현만 ::를 통해 하고 실행은 .혹은 동적할당을 통했다면 ->를 통하여 참조하고 있었다. 그래서 C++은 함수 구현을 모두 외부에서 하나?하고 구글링 해 보니,  클래스 내부에서도 함수 구현이 가능하지만, 클래스의 관리를 용이하게 하기 위해 외부에서 종속관계룰 표시하는 '::'인 범위 지정 연산자를 통하여 구현한다고 한다! https://learn.microsoft.com/en-us/cpp/cpp/scope-resolution-operator?view=msvc-170 Sc.. 2024. 9. 3.
[Unity/.Net/문제해결] Socket 통신 Netonsoft Json Array Parsing 프로젝트를 진행하며 서버 DB 데이터 구조에 큰 변동이 있어 Json 데이터를 새롭게 받아오게 되었다.  이전의 데이터는 List 형태로 들어오는 일반적인 단순한 구조의 Json의 형태였다. 그래서 단순하게 JsonConvert.DeserializeObject(download.text);의 형태로 바로 받아볼 수 있었다.  하지만, 이번에 들어오는 데이터를 확인해보니, 처음 보는 형태라 당황스러웠다. 어쨌든 해결해야 하니, 에러를 기반으로 구글링 한 결과, Json의 구조에 대하여 자세히 공부하게 되었다.  받은 데이터는 {"result":1, "data":[{\"idx\":1, ....\"data\"[{\\\"name\\\":\\\"str\\\"...}]"} 이런 형태로 출력되었다.   구글링한 결과,.. 2024. 9. 3.
[Unity/문제해결] Web File size Byte 변환하기 서버에서 올린 영상에 자동으로 측정되는 파일 크기가 json 형식으로 들어오는데, 설정해둔 UI가 뭔가 이상해서 보니 1.0000000E7 이런 형태로 들어오고 있었다. 처음에는 E7?E8이게 무슨 단위인지 몰라서 구글링해봤지만, 원하는 정보가 없었다.  마침 백엔드 수석님이 지나가셔서 질문했더니, E = 10 의 7승 이라고 말해주셨다!!!!!듣고 보니 모두 파악이 되었다.  이를 활용하여 원하던 progress에 활용할 Byte 단위로 변환하였다. 이 방법이 효율적인 방법인지는 모르겠다. 백준 물골드의 알고리즘 실력이다. string size = 1.0000000E7; //예시private void AddSize(Info info){ if(size==null)return; string[] size_s.. 2024. 9. 2.
[ Unity .Net Web Socket/문제 해결 ] 네트워크 데이터 연결 null 값 처리하기 서버의 DB가 아직 안정화되지 않은 상태에서 Unity Client는 계속 test data로 진행을 해야 하는 상황이었다. 어떤 값은 null로 들어와 진행을 할 수 없었는데, 어떻게든 진행하기 위하여 임시로 처리하는 과정을 시도하였다.  지난번 포스팅한 ??연산자를 이용하였다. 2024.08.23 - [Unity/공부] - [Unity] ?. 연산자와 ?? 연산자 [Unity] ?. 연산자와 ?? 연산자인턴으로 맡게 된 기존 VR 프로젝트 오류 수정과 리팩토링을 진행하며 ?.연산자를 정말 많이 보았다. 그러던 중 전의 게시물의 == 연산자와 어떻게 다른 역할을 하는지 같이 공부하게 되었다.  ?narmhye.tistory.com int a 가 null인 경우, 처음에 단순하게 int b = a??1;.. 2024. 9. 2.
[Unity NetCode/ 문제 해결 완료] Build 실행 파일의 StartClient error 문제 상황 :  Unity Editor에서 Play 정상 작동, Build Play Client 접속 문제 Host의 Address를 찾고 connect한 이후  IsListening이 true로 남아있는 경우가 있어 StartClient 실패 1. 연결되지 않은 Client 종료를 하지 않는 경우 발생.  2. NetworkManager의 ShutdownInternal()을 실행하지 않음.  3. IsListening이 true로 다음 IP로 넘어가 StartClient 실행 4. 실제 Host IP에 접근하면 Client의 Instance가 이미 존재하여 StartClient 실패 문제 상황 분석 :  Login의 FindHost()의 반복문은 프레임 차이의 속도를 제어하는 Time.deltaTime.. 2024. 8. 30.
[Unity NetCode/문제 해결 완료] 멀티플레이 Client 연결 Error Unity NetCode 1.0.0(pre 9) 버전에서 발생한 문제이다.  문제 상황:Host가 접속하여 Server가 존재하는 상황이지만,Client의 입장에서 NetworkTransport.ConnectionData.Address에 정확하게 접근하여도 접속을 실패하는 문제이다.    정말 초기 버전의 NetCode 1.0.0의 document가 손상된 부분이 많아 정말 꾸역꾸역 이해해 가며원인이 무엇일까 생각해보았다.  하지만 원본 프로젝트는 실제로 플레이에 문제가 없다고 Client 측에서 전달받았다.  해결 방법 : 결국 해결하게 된 방법은 ...ㅎㅎHost의 방화벽을 모두 해제하는 것이 방법으로 바로 Client의 Server 연결이 성공하였다. 덕분에 NetCode 공부는 많이 했다고 생각한.. 2024. 8. 30.