개발 이야기/TIL
-
23.01.17 Kotlin Class와 생성자(init, constructor)개발 이야기/TIL 2023. 1. 17. 13:19
저번 글에서 썼던 부분 중 생성자에 관한 부분이 보강이 필요한 것 같아서 하나씩 나누어서 재작성하는 중이다. 참고 강의: https://www.udemy.com/course/best-android-12-kotlin Class vs instance vs object class는 기본적으로 청사진이라고 생각하면 된다. 이 표현이 어려우면 붕어빵틀이라고 생각하면 된다. 이 붕어빵 틀을 이용해서 우리는 실제 붕어빵, 객체(object)를 만들 수 있다. 또 그 안의 속재료를 변경할 수도 있다. 이 중 우리가 실제로 다루는 것, 사용하는 것들을 인스턴스라고 한다. //class class Boong(ing:String){ } //object, instance shoBoong = Boong("sho") phatBo..
-
23.01.14 Kotlin Class와 field개발 이야기/TIL 2023. 1. 14. 22:00
JAVA랑 Kotlin이랑 비슷하다고 했던거 같은데... 으음 공부하다보니 다른 부분들이 꽤나 많은 것 같다. 오늘은 Kotlin의 Class에 관해서 JAVA와 비교해서 이것저것을 정리해보려고 한다. 아래의 코드를 기반으로 설명을 시작해보자. //JAVA public class Button { private int width; private int height; //constructor public Button(int width, int height){ this.width = width this.height = height } //getter public int getWidth(){ return width; } public int getHeight(){ return height; } public voi..
-
23.01.13 Kotlin not null operator !!.개발 이야기/TIL 2023. 1. 13. 16:14
null과 자료형을 처리할 때 JAVA에서는 if 등의 조건문이나, error handling으로 이를 잡아주었다(자료형이 맞지 않는 경우에도 ) 코틀린에서는 이를 간단하게 null operator를 통해 해결하였다. https://kotlinlang.org/docs/null-safety.html 위의 문서는 kotlin의 null safety에 관한 공식문서이다. 아래와 같은 kotlin코드가 있다고 해보자. 보통 a라는 variable에 readLine으로 값을 사용자가 입력할 수 있는 형태이다. 이때 만약에 readLine에 해당하는 구문에 사용자가 null 값을 준다면? 에러가 발생할 것이다(toInt()로 바꿀수 없기에) fun main(args: Array) { var a = readLine(..
-
23.01.10 python list와 2차원 배열개발 이야기/TIL 2023. 1. 11. 14:08
#Python list python에서 list는 우리가 흔히 쓰는 배열과 다르게 크기가 정해져있지 않다. 수정, 삭제, 추가가 가능하며, []로 작성한다. 인덱스는 동일하게 0부터 시작한다. #List 선언 #단순하게 lst = [] #0으로 채워진 특정 크기의 lst 선언(list comprehension) lst = [0 for i in range(n)] #list comprehension 2중list lst = [[0 for j in range(n)] for i in range(m)] #위의 2중 배열의 경우 n*m size의 list반환 #List slicing과 추출 a = [1,2,3,4,5] a[0] = 1 a[1:3]= 2,3 #이상, 미만, 끝은 포함되지 않음 print(number[1..
-
23.01.06 python 다양한 진수(2진수, 8진수, 16진수) 표현하기개발 이야기/TIL 2023. 1. 6. 23:50
우리는 기본적으로 10진수 형태로 숫자를 표현한다. 하지만 컴퓨터는 2진수, 8진수, 16진수 등 다양한 진수를 사용할 때가 있다. 이때 대표적으로 Hexadecimal(16진수) 표현법은 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F를 사용한다. 이때 A부터 각각의 문자는 10, 11,12,13,14,15를 의미한다 다른 진수 형태로 숫자 표현하기 2진수는 binary, 8진수는 octal(그 화학할때 옥탈이다), 16진수(hecadeciamal)임으로 여기서 따와서 2진수는 0b, 8진수는 0o, 16진수는 0x로 시작한다. 아래의 예시로는 16진수를 변환하는 예시를 위주로 작성할 예정이다 #10진수를 16진수로 변환하기 10진수에서 다른 진수로 변환할 때 아래와 같은 내장함수를 이용한다...
-
23.01.05 bit 단위 연산 ~(틸드)와 음수의 표현법, 아스키코드개발 이야기/TIL 2023. 1. 6. 12:44
비트단위(bitwise) 연산자 ~: tilde, 틸드라고 읽는다 비트단위 연산자는 bit를 0 ->1로 혹은 1->0으로 바꾸어준다. 예를 들어 십진수 1은 2진수로 바꾸면 00000000 00000000 00000000 00000001 이다. 이를 ~1로 비트단위로 연산자로 바꾸어주면 11111111 11111111 11111111 11111110 이 된다. 이는 -2이다. 그 이유는 음의 정수는 "2의 보수 표현법"으로 저장되기 때문이다. #음수의 표현 방법 음수의 표현방법은 크게 3가지이다. 1. 부호비트 사용: 최상위 1비트를 부호를 사용하는데 이용 2. 1의 보수법: 해당양수의 모든 비트를 반전하여 음수로 표현하는 방법 -> ~를 사용한다고 생각하면 편함 즉, 위의 1의 예시에서 ~1이 -2가..
-
23.01.04 python format, map, bit shift 연산개발 이야기/TIL 2023. 1. 4. 22:17
#1 python format과 부동소수점 실수를 다룰 때 소수점 아래자리를 다루는 방법은 여러가지가 있다. -1 round이용 문자 그대로 반올림을 하는 함수, 공식문서를 확인하면 다음과 같다(https://docs.python.org/ko/3/library/functions.html) number 를 소수점 다음에 ndigits 정밀도로 반올림한 값을 돌려줍니다. ndigits 가 생략되거나 None 이면, 입력에 가장 가까운 정수를 돌려줍니다. 일반적인 파이썬 객체 number 의 경우, round 는 number.__round__ 에 위임합니다. 참고: float에 대한 round() 의 동작은 예상과 다를 수 있습니다: 예를 들어, round(2.675, 2) 는 2.68 대신에 2.67 을 제..
-
23.01.03 python for loop개발 이야기/TIL 2023. 1. 4. 20:04
#python에서 for loop다루기 python에서 for문을 다루는 기본 교재들이나 개념서를 보면 보통 for i in range(n): function() 이나 for i in range(a, b+1): function() 식으로 다루는 경우가 많았다. 그렇다면 다른 언어처럼 for문의 i를 1이 아닌 2,3씩 증가시킬 수도 있을까? 답은 range문에 있었다 range(start:end:step)로 구성되어있다 따라서 만일 i를 2씩 늘리고 싶다면 아래와 같이 작성하면 된다. for i in range(a, b+1, 2): function() https://java2blog.com/for-loop-increment-by-2-in-python/ For Loop Increment By 2 in Py..