컴퓨터공부 362

Kotlin for 문

kotlin은 java와 for 문법이 다르다.(하긴.. 다른 것도 다 다르다..) for(i in 1..10) { sum += i } for(i in 1..10){} // 1 ~ 10까지 for(i in 1 until 10){} // 1 ~ 9 까지 for(i in 1..10 step 2){} // 1부터 2씩 증가 하며 10까지 반복 for(i in 10 downTo 1){} // 10부터 1씩 감소 하여 1까지 반복 for(i in 10 downTo 1 step 2){} // 10부터 2씩 감소 하여 1까지 반복 for(str in list) { sb.append(str) } val list = listOf("Hello", "World", "!") for (i in list.indices) { pr..

Kotlin constructor 정리(코틀린 생성자 정리)

코드를 작성하다보니 아래와 같이 변수 선언에 관한것은 이해가 갔다. var class1 = A()// instance 선언 var class2 : A// 그냥 변수 선언(초기화 안됨) 근데.. 코드를 보다 보면 아래와 같은 코드가 나온다.. 이게 무슨 차일까...?? class A의 input를 받아서 class C로 넘겨 주는것 같은데.. input의 타입도 없고.. 뭐야.. 시부렁.. class C(var input: Int) : A(input) {} class D(var input: Int) : A() {} 여러가지 포스팅과 삽질을 하다가 모든게 코틀린의 복잡한 constructor에서 비롯된다는 것을 알게 되었다. 일단 코틀린은 아래와 같은 규칙(문법)이 존재한다.(근데 잘 안 알려줌-_-) 1...

코틀린 + 코루틴(Coroutines)

코틀린의 코루틴을 인터넷으로 검색해보면, 예제 소스가 대부분이 모두 MainActivity.kt에 있다. 실제 개발자 분들은 MainActivity.kt에서 코루틴을 안 쓸거다.(그렇게 쓰는 걸 봤다고?? 그 회사에서 당장 도망쳐라..) 근데 이론에만 그치는 포스팅에서는 모두 MainActivity.kt에 적고 있다.(이미 그런 포스팅은 넘치니 제발 쓰지 말자..) 아래 acaroom.net/ 의 링크에서는 Adapter에서 코루틴을 사용하고 있다. 그나마 참고 할 만하다. 개념은(여기 말고도 많이 있음..) codechacha.com/ko/android-coroutine/ 코루틴으로 데이터를 가져오는 실제 코드 예제는 acaroom.net/ko/blog/youngdeok/%EC%97%B0%EC%9E%A..

if(variable == null) on Kotlin

Kotlin에서 null 체크는 어떻게 할 지 궁금해졌다. 아마.. if(variable === null) 이 맞는것이겠지..? 그래서 찾아 보니.. if(variable == null) 을 쓰면 자동으로 if(variable === null) 변환해준다고 한다. Note that there's no point in optimizing your code when comparing to null explicitly: a == null will be automatically translated to a === null. 결론, if(variable == null) 과 if(variable === null) 둘 다 null 체크하는 것이다. 출처 : kotlinlang.org/docs/reference/equ..

DB Browser for SQLite 로 sql query 연습하기

sql query를 연습하기 위해서는 DB Browser for SQLite 를 설치 하거나 app.mode.com/ 에 가입 하시면 됩니다. 1. 이전 포스팅에서 나온봐와 같이 https://mode.com/sql-tutorial/sql-select-statement/ 가셔서 설명을 이해하고 제공되는 sql 가상 command를 이용해서 연습 문제를 푸시면 됩니다. 2. 이게 본론인데.. DB Browser for SQLite 깔아서 연습하기 입니다. 설치 하면 아래와 같은 화면인데요. 왼쪽위에 'New Database'를 눌러서 db이름을 지정해 주고, 'Execute SQL' 탭에 가서 쿼리를 해보면 됩니다. 그리고 'Browse Data'탭에 가셔서 정상적으로 데이터가 들어 갔는지 보시면 됩니다...

Android SQLite query 공부 하기

제가 내린 결론은 "Android SQLite query는 결과적으로 sql query를 쓸 수 있어야 한다." 입니다. 아래 출처에 나온 것 공부 하면서 느낀 건 결국 db.execSQL() 과 db.lowquery() 를 써야 하고, sql을 모르면 이게 뭔지 모를 공산이 크다. 몇몇 create table, delete from table, drop table 은 별도로 봐줘야 할 필요가 있지만 그래도 기본은 sql query이다. 왜냐 하면 sql query를 이해하고 이걸 코딩하는 방식으로 변환 하면 끝이기 때문입니다. 아래 코드를 보시면 제가 무슨 말을 하는지 이해가 가실겁니다. // Table create String studentSql= "create table " + TB_STUDENT ..

Stetho로 Sqlite db 들여다 보기

Stetho.initializeWithDefaults(this); Stetho로 안드로이드 내부의 sqlite db를 들여다 볼 수 있다. (SharedPreference값, 네트워크상태 등의 정보고 볼 수 있다.) 1. gradle에 dependencies 에 아래를 추가 implementation 'com.facebook.stetho:stetho:1.5.1' 2. MainActivity의 onCreate()에 초기화 코드 추가 @Override protected void onCreate(Bundle savedInstanceState) { .. Stetho.initializeWithDefaults(this); .. } 3. 크롬의 chrome://inspect 페이지에 가서 확인하기 4. 끝. 더 자세..

JUnit 간단 사용법과 전역변수, @BeforeEach, @BeforeAll

JUnit 사용할 때, 허갈리는 전역변수와 @BeforeEach, @BeforeAll 에 대해서 알아보자. 요약 : 전역변수는 @BeforeEach의 효과 @BeforeEach는 각 테스트 함수가 불리기 전에 매번 호출 됨(JUnit4에서 @Before) @BeforeAll은 테스트 함수가 불리기 전에 딱 한 번 호출 됨(JUnit4에서 @BeforeClass) 출처 : https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations + 이제.. 실제로 그런지 확인해 봅시다. IntelliJ에서 원하는 함수를 선택하고 Generate를 선택하면 Test 메뉴가 보입니다. 그럼 아래 처럼 팝업이 뜨게 될 겁니다. OK 선택하시고. 원하..

2진수 음수를 읽는 방법

-1은 1111 1111 입니다. -2는 1111 1110 이죠. 왜 ?? 1111 1110 가 -2 일까요? 2진수를 보수 취하고(비트 반전), +1 하면 음수 값이기 때문입니다. => 1111 1110 에 보수 적용 => 0000 0001 => 0000 0001 에 1을 더함 => 2 => 보수 취해줬으면 앞에 '-'를 붙입니다. => -2 이를 증명하는 건 아래 출처에 가서 확인 해 보시면 됩니다. 출처: https://namsieon.com/229 [남시언닷컴]

컴퓨터공부 2020.07.12