static
팀원분께서 잘 모르시는 부분에 대해 튜터님에게 질문하고 오셔서 배운 정보를 가르쳐 주셨는데 설명하시다가 조금 헷갈리는 부분이 있어서 팀원들 다같이 튜터님에게 방문을 하여 설명을 듣는 시간을 가지게 되었다
문제는 main함수에서 선언된 변수는 다른 함수에서 사용할 수 없었고 main에서는 그 함수를 사용하지 못하였는데
이유는 c#은 main 함수가 staic이라서 다른 함수도 staic을 맞춰줘야 한다는 것이었다
static은 스태틱 영역에 하나만 존재하기 때문 그러나 static을 많이 사용하는 것은 메모리를 너무 잡아먹기 때문에
클래스를 만들어서 사용하는게 더 좋다
또한 static 필드는 프로그램 실행 후 처음으로 사용될 때 한번 초기화 되어 계속 동일한 메모리를 사용한다
추가로 더 궁금해서 찾아보았다
C#에는 C++에는 없는 정적 클래스라는 개념이 존재하는데 왜 만드는지 이해를 할 수 없어서 찾아보았다
1. 유니티에서 배웠던 한 번만 인스턴스화되는 객체를 생성하기 위해 싱글톤 패턴 구현할 때
2. 상수및 설정값 저장을 위해 한 곳에서 관리하고 변경할 때 편리
3. 유틸리티 기능 제공을 할 수 있다 예를들어 문자열 조작, 날짜 변환, 파일 조작과 같은 공통작업을 정적 메서드로 만들면 재사용성을 높일 수 있다
4. 정적 클래스 내의 메서드와 속성은 객체 인스턴스 없이 호출할 수 있어서 굳이 객체 인스턴스가 필요하지 않을 때 유용하다 불필요한 객체 생성을 줄일 수 있기 때문이다
(예를 들면 수학계산을 위한 유틸리티 클래스)
코딩 팁?
이중 for문 가독성
1 | 2 | 3 | 4 | 5 <= i
1 | 1~2 | 1~3 | 1~4 | 1~5 <= j
이런식으로 이중 for문을 생각할 수 있다 그래서 내 코드에도 바로 만들어놓았다
게임 로직 팁
개발을 하기 전 기능이나 게임을 구현할 때 전체적인 구상
ex)
시작 ; 1에서 100까지 숫자를 뽑는다
끝 : 뽑았던 숫자를 맞추면 게임이 끝난다
과정 : 숫자를 맞추지 못했을 때 뽑은 숫자보다 큰지 작은지 알려주고 계속 진행한다
내가 분석한 내용과 비슷하지만 더 간단해 보인다 이런 저런 방법을 사용해보면서 나에게 맞는 방법을 찾아나가면 될거 같다
컴퓨터구조 & 운영체제
오늘 개인 과제를 받기 전에 시간이 조금 남아서 오랜만에 강의를 듣게 되었다
그닥 어려운 내용은 없었는데 이번 강의는 내가 배우고 있는 고급 언어에 대해 배우고 데이터 전송 명령어 중 github를 쓸 때 나왔던 명령어들도 있어서 반가웠다
https://hwon-note.tistory.com/32
[컴퓨터구조 + 운영체제] 3일차 명령어
저급언어 기계어: 0과1로 이루어진 명령어로 구성된 저급 언어 어셈블리어: 0과 1로 이루어진 기계어를 읽기 편한 형태로 번역한 저급언어 고급언어 컴파일 언어; 컴파일 언어로 작성된 소스코드
hwon-note.tistory.com
코드 컨벤션 특강
이번 특강에서는 권장 이름 규칙에 대해서 정해졌다
-PascalCase(단어의 첫 시작은 대문자)
File, Namespaces, Classes, Structs , Methods, Enums, Public (Fields, Properties)
-_+camelCase (단어의 첫 시작은 _ + 소문자 띄어쓰기 대신 대문자)
Non public (Fields, Properties)
- camelCase ( 단어의 첫 시작은 소문자 띄어쓰기 대신 대문자)
Local Variables, Parameters,
코드 리뷰
처음으로 각 잡고 내 코드를 소개해보는 시간이었는다
좋았던 점은 다른 사람들의 코드를 보면서 저런 방법으로 구현이 가능하구나 라는 생각을 하며 배울 수 있었고
아쉬웠던 점은 온전히 내 코드가 아닌 부분도 있었고, 질문을 해주셨을 때 설명을 잘 못해서 확실하게 알려드리지 못했던 점과, 내 코드를 다시 보며 왜 이렇게 되는건지 확실히 이해했다고 생각한 부분이 막상 설명하려 보니까 기억이 안났었다
설명할 수 있게끔 다시 공부해야겠다...
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 개인과제 버그 (0) | 2023.08.22 |
---|---|
[TIL] 내일배움캠프_Unity 개인과제, 문자열 포맷, 정렬, 입력 경고 메세지 (0) | 2023.08.21 |
[TIL] 내일배움캠프_Unity C# 문법 종합반 3주차 과제 복습, 게임 로직 관련, 학습법 특강(feat.ChatGPT) (0) | 2023.08.17 |
[TIL] 내일배움캠프_Unity C# 문법 종합반 3주차, 고민해결 (0) | 2023.08.16 |
[TIL] 내일배움캠프_Unity C# 문법 종합반 2주차 복습, 3주차 완강 (0) | 2023.08.15 |