3주차 강의를 후다닥 듣고 과제를 진행하면서 내가 온전한 이해를 하지 못했다는 사실을 깨달았다. 그냥 그런가보다 하고 넘어가지 못하는 성격이기도 하고, 보다 명확하게 개념을 이해하지 못하면 활용에서도 어려움이 생길 수밖에 없다. 강의가 꽤나 압축적인 내용을 담고 있어서 단순히 듣기만 하는 걸로는 부족한 것 같다. 과제를 진행하면서도 개념을 익힐 수 있지만, 이번에는 궁금한 점이 많아서 제시된 개념들의 주변정보를 추가적으로 공부했다. [인터페이스] 인터페이스란? 클래스가 구현해야 할 멤버들을 정의하는 것. 이 때 어떤 내용을 구현해야 하는지에 대한 정보만 제공할 뿐, 실제 구현을 하지는 않는다. 클래스가 인터페이스를 구현할 경우, 모든 인터페이스의 멤버를 구현해야 한다. 다중 상속이 가능하다. 클래스의 일..
전체 글
Unity / C#
[들어가기] 2주차부터 바보 같이 기본 요구 사항이나 참고할만한 게 있는 줄 모르고 과제를 진행했는데, 진짜 냅다 위 글자들만 보고 진짜 어쩌라는거지......... 라는 생각으로 일단 서치를 시작했다. 게임에 대한 설명도 없이 진행하라 하는 게 말이 안 된다 생각했는데 그냥 제가 바보였다고 합니다. 아주 친절하게 게임에 대한 설명과 요구사항, 그리고 필요한 코드 및 함수에 대한 정보까지도 모두 제공해주고 계셨네요. 일단 나는 그걸 몰랐고... 그래서 아주 마음대로 시작해버렸기 때문에 다른 분들과 코드가 꽤 다를 수 있을 거라고 생각... 중간부터 과제 설명을 참고하긴 했지만, 풀이는 거의 완성한 후 클래스와 접근제한자를 정리할 때 참고하기 위해서만 확인했다. (이 부분이 제일 어려웠다. 클래스를 나누어..
[공부 내용] * 일단 대충 쓰고 주말에 다시 공부하기 [클래스와 객체] 1. 객체지향프로그래밍의 특징 캡슐화 한 코드에서 여러가지 일을 하는 게 아니라 각각의 필요한 기능을 구현한 후 이것을 뭉쳐서 새로운 구현을 함 관련된 데이터와 기능을 하나의 단위로 묶음 이를 통해 정보에 대한 직접적인 접근을 제한할 수 있음 --> 안전성과 유지보수성 상속 클래스의 확장. 계층 구조를 구성하여 코드의 구조화와 유지보수를 용이하게 함 다형성 Ex. 오버로딩 / 동일한 코드에서 다양한 처리가 일어날 수 있도록 하는 것 추상화 객체 2. 클래스의 구성요소 필드: 멤버 변수 메서드: 멤버 함수 생성자: 생성될 때 호출되는 메서드 디폴트 생성자: 클래스와 동일한 이름, 매개변수 없음 디폴드 생성자 없이 다른 생성자를 추가할..

어제 집중을 너무 못해서 오늘로 과제가 미뤄졌다. 이번 과제는 틱택토 게임 만들기인데, 해본 적 없는 과제라 재밌었다. (야구게임, 홀짝문제, 어쩌구저쩌구 등 어떤 언어든지 반복적으로 등장하는 과제들이 있는데, 언어 찍먹 유목민에게는 조금 지루한 과제들이다.) 암튼 코드로 그림 그려보기? 가보자고 [기본 세팅] string[,] board = new string[3, 3]; string inputX; string inputY; int x; int y; int computerX; int computerY; bool isRunning = true; string winStatus = ""; int playCount = 0; 우선 보드를 만들기 위해 다차원 배열을 생성했다. 처음에는 int 배열로 생성했으나, ..
[공부 내용] * 기억해야 할 부분 또는 헷갈리는 내용 위주로 프로그래밍 기본 요소 (1) Escape Sequence 이스케이프 시퀀스 설명 \' 또는 \" 문자열 내에 따옴표 삽입 \\ 문자열 내 역슬래시 삽입: 파일 경로 등의 표기에 필요한 경우 많음 \n 줄바꿈 \r 현재 줄 맨 앞으로 이동 \t 탭 삽입 \b 백스페이스 삽입 다른 프로그래밍 언어들과 거의 비슷한 것 같다. \r, \t, \b는 모두 활성 위치(커서)를 옮겨가도록 한다. 그 후에 덮어쓰기 되는 것 \b 백스페이스 삽입 같은 경우에도 커서를 한 칸 뒤로 옮기기 때문에 백스페이스 역할을 하는 것 (2) 주석 작성하는 습관이 들지 않아 주석을 정말 안 쓰는데 (심지어 코드도 나만 알아볼 수 있는 최악의 상황), 앞으로 협업이 많아질 것..

[들어가기] 캠프 첫 주차부터 프로젝트를 시작했다. 사전캠프 때 배운 내용을 복습하며 협업을 경험해보라는 취지였던 듯하다. 깃허브 외에 추가적인 강의는 없었지만 프로젝트를 통해 배우는 것이 많았고, 흥미와 몰입으로 가득찬 첫 주를 보낼 수 있었다. 기술적으로 배운 내용이나 기록하고 싶었던 내용은 TIL에 (두서는 없지만) 이미 여러 번 작성하기도 했고, 반복적으로 쓰고 익히다 보니 한 번 더 정리할 필요는 없을 것 같아서 (또 앞으로 같은 내용을 정리하는 TIL이 분명히 있을 것이기 때문에) 첫 WIL은 팀 프로젝트를 어떤 방식으로 진행했고, 보완해야 할 부분은 무엇이었는지에 대해 정리해보고 싶다. 캠프에 참여하는 많은 사람이 혼자서 개발을 해본 경험은 있더라도 협업에 대한 경험은 많지 않을 것이라 생각..

오늘 목표 달성도: 발표 마무리! : 팀원들이 보내주신 내용 추가하고 발표자료 수정도 잘 했다. 팀장님이 발표도 너무 깔끔하게 잘 해주셔서 개운하게 프로젝트가 마무리 되었다!! 다른 사람들의 코드 잘 살펴보고 공부하기: TIL 기록으로 대답해드립니다. [팀원들의 코드 파헤치기] * 인상 깊은 것, 중요한 것 위주로 실패 시 2초 감소 public void timepenalty() // 실패시 시간 2초 감소 { Time.timeScale = 0f; if (time >= 2f) { time = time - 2f; } else time = 0f; makeminus2(); Time.timeScale = 1f; } 업데이트 중인 시간을 수정할 때 timeScale을 0으로 멈춰 놓고 작업. (그렇지 않을 경우 ..

오늘 목표 달성 정도 마무리 잘 하기! : 프로젝트의 완성도가 아주 많이 높아졌다! 다들 사소한 오류라도 잡아내서 고치고, 비주얼, 사운드, 조작감 등을 높이기 위해 노력했다. 팀원들과 코드 공유하기: 이건 내일 할 듯 발표 자료 만들기: -ing [프로젝트 진행] (1) 내가 맡은 부분 배경 색상 변경 플레이 중 최고 기록 갱신하면 최고 기록 텍스트 업데이트 해주기 UI 수정 (2) 학습 내용 배경 색상 변경하기 뭔가 크게 배웠다거나 공부할만한 코드는 없었다. 배경 색상을 다르게 지정하면서 생각한 건데, 스테이지별로 나뉘는 기능이 많은데 스테이지 정보를 모아두는 스크립트가 따로 필요할지…? //----Background Color Setting if (currentStage == 0) { cam.Get..