728x90

2022/05/29 3

Kotlin Coroutines - Basic

Kotlin Coroutines 는 다른 언어에 있는 async / await 과 유사한 부분을 구현할 수 있게 만든 library 라고한다. Kotlin 의 suspend function 은 비동기 함수를 다루는데 Java 의 Future 보다도 안전하고 더 적은 버그가 있다고 한다. 일단 백문이 불여 일타 라고 코드로 먼져 보도록 하자 실습 fun main() = runBlocking { // this: CoroutineScope launch { // launch a new coroutine and continue delay(1000L) // non-blocking delay for 1 second (default time unit is ms) println("World!") // print afte..

Kotlin 2022.05.29

HTTP Trace Method 와 취약점(XST)

Trace Method 란? HTTP Method 중 하나인 Trace Method 는 Client - Server Side 간 Loop back Test 를 진행할 수 있게 도와준다. 아래 실제로 TraceMethod 를 날린 결과값을 보자. 위의 메소드의 결과물을 보면 TLS Handshake 가 잘 맺어졌고, CERT 도 통과하고 등등 서버에서 어떤 일이 일어나는지 확인할 수 있다. HTTP2 를 이용해서 multiplexing 이용하고 있음을 알 수 있다. 이렇듯이 내가보낸 통신이 어느지점에서 에러가 났는지 Trace 하기 위해서 사용하는 메소드이다. 주로 Via 나 X-Forward-For 와 함께 사용하여 추적도 가능하나, 두개의 헤더는 사실상 조작하는 경우도 많아서 완전히 신뢰해서는 안된다...

카테고리 없음 2022.05.29

[EffectiveKotlin-Item02] 변수의 스코프를 최소화 해라

변수의 스코프를 최소화 해라 만약 loop 안에서만 변수가 쓰인다면 loop 안으로 변수를 넣어서 scope 를 최소화 해라. 보통의 언어 에서 변수의 scope 는 보통 curly braces 안으로 생성지만, Kotlin 에서는 외부의 변수에도 접근 가능하다. 음, 내가 생각해도 뭔가 잘 읽기 힘들게 적은거 같아 코드로 적어보려고 한다. val a = 1 fun fizz() { val b = 2 print(a+b) } val buzz = { val c = 3 println(a + c) } 위의 예시를 보면, buzz 와 fizz 의 curly braces 지역 scope 에서 외부 변수인 a 에 접근할 수 있음을 알 수 있다. 반대로 모두 알고 있겠지만 Outer area 에서 inner functi..

Kotlin 2022.05.29
728x90