◼ IT Etc.
[Python] 변수 Scope (전역 변수와 지역 변수) 에 대한 이해
예시 1 _list = [1, 2, 3, 4] def sum_all(): sum_val = 0 for elem in _list: sum_val += elem return sum_val total_sum = sum_all() print(total_sum) print(sum_val) 10 NameError: name 'sum_val' is not defined 전역 변수는 굳이 인자로 넘기지 않아도 함수 내에서 잘 작동한다. 즉, 전역 변수는 어디에서나 쓸 수 있다. 지역 변수는 내부 Scope를 벗어나면 증발하여 더 이상 접근할 수 없다. 즉, 지역 변수는 어디에서나 쓸 수 없다. 예시 2 코드 1. _list = [1, 2, 3, 4] def modify(): _list[0] = 10 modify() f..
[Unity] 유니티 (Unity) 소개 및 설치
유니티 소개 및 설치 요즘 국내 인디 게엠 혹은 3D 게임의 80프로 이상이 유니티를 쓴다. 유니티는 게임 외에도 여러 분야에서 활용된다. 유니티를 선택하는 이유 배우고 사용하기 쉬운 편이다. 소스가 차단되어 있고 별 기능이 보이지 않아 처음에 학습하기 쉽다. 가격이 저렴하다. 거의 모든 기능이 풀린 상태로 무료이다. 멀티플랫폼 지원이 제일 강력하다. 단, 결제 기능과 같은 다른 기능을 붙일 때는 플랫폼 별로 차이가 존재한다. 개발 속도가 빠르다. 바로 구현하고 바로 확인 가능하다. 그럼 유니티는 만능일까? 아니다. 잘 사용하지 못하면 효율을 내기 어렵다. 그리고 C#을 쓰기 때문에 느리다. 유니티를 쓰기 전에 기본기를 익혀야 한다. 수학, (물리), ... 즉, 프로그래머로서 기본 소양을 갖추고 유니티..
[Python] 조건문
조건문 개념 특정 조건을 만족할 경우에만 코드를 수행하고 싶을 때 쓰는, 매우 중요한 문법이다. if 조건문 if 조건식을 만족할 경우, if문의 내부 코드를 실행한다. if 조건식: 조건식이 참일 경우 수행되는 코드 영역 python에서 if문의 가장 중요한 점은 들여쓰기다. indent를 항상 정확히 맞춰주어야 한다. a = int(input()) b = int(input()) if a >= 1 and b >= 1: a += 3 b += 5 print(f"a = {a}, b = {b}") ▼ 입력 및 출력 결과 >> 1 >> 2 a = 4, b = 7 (TIP) if 조건문에서 and로 연결된 앞의 조건식이 False이면, 뒤의 조건식은 실행하지 않는다. 즉 뒷 조건식이 오류가 나는 코드여도 앞 조건..
[Python] 사칙연산을 위한 연산자
사칙연산 수학처럼 프로그래밍에서도 사칙연산이 자주 쓰인다. + : 더하기 연산 - : 빼기 연산 * : 곱하기 연산 / : 나누기 연산 / 연산의 계산 결과는 항상 실수값이다. a = 3 / 1 print(a) # 3.0 // : 나누기 - 몫 연산 % : 나누기 - 나머지 연산 ** : 제곱 연산 a, b = 3, 2 print(a**b) # a^b 정수와 실수가 만나면 결과값은 실수가 된다. 사칙연산 계산 시 type은 더 큰 범위를 따라가기 때문이다. a = 1 + 1.0 print(a) # 2.0 사칙연산 간략하게 표현하기 a = a + 5 위와 같이 동일한 값에 변화를 주는 사칙연산은 아래처럼 간략하게 표현할 수 있다. a += 5 사용 예시 a, b = 10, 4 a += 5 # a = a +..
[C++] C++과 객체지향 프로그래밍(OOP)이란?
C 언어의 확장판인 C++ C++은 C언어에 '객체 지향 프로그래밍' 기능이 추가되어 만들어진 언어입니다. 마치 웹 개발에 주로 쓰이는 TypeScript라는 언어가 JavaScript에 '타입' 기능이 추가되어 만들어진 것처럼 말입니다. 따라서 C언어의 문법은 C++에서도 모두 그대로 쓰입니다. C언어는 절차를 중시하는 '절차 지향' 언어임에 반해 C++는 객체라는 데이터가 중심인 '객체 지향' 언어입니다. 하지만 C++에서도 C언어의 문법은 모두 지원되기 때문에 C++로 코드를 절차적 방식으로 작성하더라도 문제가 되진 않습니다. 다만 대부분 규모가 큰 소프트웨어를 만들 때는 객체 지향을 사용하는 것이 편리할 뿐 아니라 유지 보수 및 관리에도 용이합니다. 그럼 이 '객체 지향 프로그래밍'이란 것이 무엇..
[Git] 커밋 시 로컬 저장소 상태와 원격 저장소 상태가 달라 충돌이 발생했다. (git merge --abort)
🚨 문제 상황 로컬 저장소에서 윈격 저장소로 (main -> main) 커밋 중 해당 오류가 발생했다. Git merge is not possible because I have unmerged files GitHib Desktop에선 클릭 몇 번으로 쉽게 해결할 수 있는 문제였지만, 막상 명령어를 통해 해결하려니 막막했다. 💡 문제 해결 및 과정 원인 커밋 전 로컬 저장소와 원격 저장소의 코드가 다른 상태여서 커밋 시 충돌이 발생했다. 이번의 경우 다른 클라이언트에서 커밋한 내용을 pull 하지 않은 채 작업을 했던 것이 문제의 원인이었다. 해결 우선 아래 명령어를 통해 커밋 이전의 상태로 돌아갔다. git merge --abort 그 후 pull 명령을 통해 원격 저장소의 커밋 사항을 받아온 후 다시 ..
[Python] Call by Assignment 이해하기
Python은 함수에 인수를 전달할 때 Call by Assignment 방식으로 전달된다. 이 말은 무슨 의미일까? mutable VS immutable 우선 mutable과 immutable의 개념부터 짚고 넘어가면, python에선 모든 것이 객체이며 총 2가지 종류가 있다. immutable 객체 : 값이 변경 불가능한 객체 int, float, str, tuple 등 mutable 객체 : 값이 변경 가능한 객체 (단, 자신의 id값은 일정하게 유지) list, dictonary, set 등 Python에서의 Call By Value VS Call By Reference immutable 객체가 함수의 인자로 전달되면 마치 값이 복사되어 전달되는 Call By Value처럼 동작한다. (원본값 ..
[Python] 파이썬 입력 함수 input 사용법 정리
기본 입력 방법 python에선 input()함수를 통해 한 줄 단위로 문자열을 입력 받을 수 있다. a = input() print(f"a = {a}") ▼ 입력 및 출력 결과 >> Hello World a = Hello World >> 4 a = 4 (이때 4는 문자열 "4"이다.) 문자열이 아닌 다른 자료형으로 입력 받기 input()함수로 입력받을 때, 입력값의 자료형이 정수나 실수여도 문자열로 인식된다. b = input() print(b + 1) ▼ 입력 및 출력 결과 >> 4 ----> 4 print(b + 1) TypeError: can only concatenate str (not "int") to str 문자열에 숫자를 더할 순 없으므로 에러가 발생하는 것이다. 숫자로만 이루어진 문자열..
[Python] 파이썬 출력 함수 print 사용법 정리
기본 출력 방법 print 함수 통해 한 문장 출력하기 python3에서 문장을 출력하기 위해 print()함수를 사용한다. 이때 괄호 내에 큰 따옴표나 작은 따옴표 둘 중 아무거나 사용해도 된다. python에선 작은 따옴표로 묶어도 문자가 아닌 문자열로 인식한다. (python에선 문자 개념이 없다.) print("Hello World") print('Hello World') ▼ 출력 결과 Hello World Hello World 특수 문자를 포함시켜 출력하기 문자열 내에 있는 특수 문자 앞에 \를 붙여주면, 이를 기호가 아닌 문자로 인식한다. (자주 사용하는 방법이므로 기억하자) print("Let\'s do it") - " , ' 를 포함시킬 때, """ 또는 ''' 로 전체 문장을 감싸는 방법..
주로 방구석을 지켰던.. 지난 2학년 2학기 매우 간략한 회고
2021년이 모두 지났다. 이미 시간이 조금 흘렀지만, 지금이라도 짧게 나마 저번 2학년 2학기를 돌아보며 글을 쓴다. 여전히 계속되는 코로나의 여파로 이번 학기를 나는 전부 비대면으로 수업 들었다. 따라서 나의 21년 하반기는 방구석에서 공부하고 수업듣고 딴짓하고 한 기억이 대부분이다. 학교는 딱 두 번 갔다. 전공 과목의 대면 시험 때문에. 처음엔 비대면 수업이 편했고, 집에서 바로바로 코딩 치면서 수업을 들을 수 있는 것도 참 좋았지만 시간이 지날 수록 점점 답답함이 쌓여가고 다른 동기들과 커넥트도 못하니, 뒤로 갈수록 많이 힘들었던 것 같다. 그래서 올해는 대면수업을 했으면 하는 바람이다. (아니 그래도 통학 지옥보단 비대면이 나을려나..??) 2학년 2학기 간략한 회고 군복학 후 첫 학기라 다시..