728x90

분류 전체보기 173

Code 와 Blocking And Sync Model 에 관하여

개요 이 문서에서는 Blocking Structure / NonBlocking Structure 에 대해 내가 알고 있는 지식들을 연결하여 설명할 예정이다. 따라서 내용이 좀 길어질 수 있으며, 누군가에겐 루즈한 글일 수도 있다. Code Flow 현재 우리가 대중적으로 사용하는 컴퓨터에서 우리가 작성하는 Code 를 실행시키는 과정은 기본적으로 위에서 아래로 흐르려고 하는 성질이 있다. 나는 이를 "Top-Down" 이라고 표현한다. 가끔 condition 이나 go, switch 같은 회로를 만나면 위로 역전되는 현상이 있기도 하지만, 기본적으로는 위에서 아래로 흐르려는 방향이 있다. 즉, 그래서 대부분 우리는 코드를 동기적으로 짜는데 더 익숙할 수 밖에 없다. 기본적으로 이 문장 실행후 아래 문장이..

CS 2022.06.24

Inclusion / Exclusion Of Elements

Inclusion / Exclusion Of Elements 원소들은 어떤 집합에 포함될 수도, 포함되지 않을 수도 있다. 원소 a 가 집합 A 에 포함됨. $a \in A$ 원소 a 가 집합 A 에 포함되지 않음. $a \notin A$ Equal Sets 집합 A 의 모든 원소가 B 에 포함되고, 집합 B 의 모든 원소도 A 에 포함될때, A, B 는 서로 같은 집합이다. $A = {A, B, C} , B = {A, B, C}$ 일때, A 와 B 는 Equal Set 이다. $A = B [(\forall a \in A) \in B] \wedge [(\forall b \in B) \in A]$ Inclusion / Exclusion Of Sets SubSets 집합 A 의 모든원소가 집합 B 에 포함될..

Math 2022.06.20

Kotlin Coroutines

Kotlin Coroutines 에 대한 공부를 최근에 많이 하고 있는데 하면서 느껴지는 점은 Thread 간의 Context Switching 에 관한 내용을 Heap 으로 관리할께 라는 느낌이 강하게 들었다. 예전에는 어떻게 Context Switching 을 적은비용으로 한다는 거지 싶었는데, 이제는 대략적으로 이해가 간다. 언제 글을 정리할까 했다가 오늘 천천히 정리해보려고 한다. 기존 Context Switching 의 문제 일단 아주 간단하게 설명하겠다. 어차피 지금 글에서 이 내용이 중요한건 아니니까. 각 Thread 는 Local Stack 등 자신만의 데이터를 가지고 있는데, 다른 Thread 와 Switching 해야 할때 자신의 작업정보를 넘겨주어야 한다. 즉, Process Swit..

Kotlin 2022.06.19

Algebraic Properties And Equations

Algebraic Properties 이 아래 법칙은 모든 연산에 적용되는 것은 아니고, 이것이 적용된다고 증명된 연산에서 사용할 수 있는 법칙 같다고 생각함. 아래 법칙을 규정하는데 사용되는 모든 연산자나, 변수는 특정 연산자를 가르키는 것이아니라, abstract 하다고 생각하면 됨. Commutative Property (Law) $a \diamond b = b \diamond x$ 각 LHS, RHS 의 Variables 의 순서를 바꿔도 동등성이 성립함. 예를 들면 아래 처럼 $b \diamond a = x \diamond b$ Associative Property (Law) $(a \circ b) \diamond c = c \diamond (a \circ b)$ Destributive Prop..

Math 2022.06.19

Go 기초 - 1) Go 의 모듈구조 및 변수

Go Lang 폴더 생성 goproject/hello/extra위와 같은 폴더구조를 지니게 됬다면, hello 폴더 아래있는 모든 .go 파일들은 hello package 에 포함됩니다. 그리고 만약 extra package 에 포함되어 있는 .go 파일들은 extra package 에 포함되게 됩니다. 즉, go 에서는 폴더가 달라지면 package 도 달라집니다. Kotlin 과 Java 와는 약간 다른 구조다. create Go module go mod init goproject/hello go module 에는 NPM 진영의 package.json 과 같이 모듈명과 go-version 및 필요한 정보가 담겨있습니다. Go build go build 위 명령어를 입력하면 go file 들이 buil..

Go 2022.06.19

코드스피츠 코틀린 3강 정리

Week3 Kotlin OOP Constructor Kotlin 에서는 기존 Java 나 다른 언어처럼 아래와 같이 Constructor 를 선언하는 것이 가능하다. class TestUser { private val user: String, private val pw: String, constructor(user: String, pw: String) { // SubConstructor this.user = user this.pw = pw } constructor(user: String) { // SubConstructor Overloading this.user = user this.pw = pw } } 하지만 주 생성자에 한해서는 좀 더 다른 방법으로 선언이 가능하다. 코틀린에서 이렇게 선언되는 Con..

Kotlin 2022.06.18

OSI 7 계층과 TCP / IP

OSI 7 계층은 네트워크 지식을 공부하게 되면 한번쯤은 듣게 되는 용어중 하나이다. 오늘은 OSI 7 Layer 가 무엇이고, 왜 만들어졌는지를 공부해보려고 한다. 과거 과거에는 통신에 대한 규약이 정확하게 존재하지 않았다. 그래서 벤더사마다 통신규약을 다르게 정의했고, 이는 상호간의 통신규약을 통일하는데 무척 힘들게 하는 요인 중 하나였다. 그래서 이를 통일하기 위해 OSI 7 Layer 라는 표준이 등장했다. OSI 7 Layer? 계층 영어 표기 한국어 표기 주요 프로토콜 7계층 Application Layer 애플리케이션 계층 HTTP, FRP, SMTP L7 6계층 Presentation Layer 프리젠테이션 계층 TLS, AFP, SSH L6 5계층 Session Layer 세션 계층 L2..

카테고리 없음 2022.06.14

코드스피츠 코틀린 2강 정리

KClass KClass - 코틀린 클래스를 얻는 방법? 클래스::class 인스턴스::class KClass.members Collection KCallable 모든 호출가능한 요소 KProperty 속성 여기서 의문은 왜 Class Property 는 호출 가능한 요소인가? 라고 하면 Kotlin 에서는 값을 만들면 getter 또는 setter 를 자동으로 만들어준다. 물론 이건 변수가 val / var 냐의 차이도 있지만, kotlin delegate 를 공부해보면 kotlin property 는 호출 가능한 요소임을 좀 더 와닿게 알 수 있다. 예시가 허접하지만 대충 이렇게 된다 class Person { var name: String by PersonNameDelegator() } class ..

Kotlin 2022.06.14

코드스피츠 1강 정리

머릿글 들어가기에 앞서, 좋은 강의 영상을 제공해주신 코드스피츠에 감사합니다. 이 글은 코드스피츠 - 코틀린 강좌 영상을 주관적으로 정리한 글입니다. 그래서 영상의 내용도 많은데, 제가 오버랩되서 떠오른 내용도 많습니다 ㅎㅎ. 틀린 부분이 있다면 피드백 부탁드립니다. 영상 링크 코틀린에 대한 이해 코틀린은 독립된 언어로 여러 플랫폼에서 번역되는 가운데서도 고유의 철학을 유지 다만 JVM 에는 호환성이 높으나, 다른 언어는 Reflection 이나 GC가 없는 언어에서는 호환성이 그다지 높지 않음 안드로이드, IOS 를 코틀린으로 대체하면 사실상 공통로직 한벌짜는데는 좋은데, 플러터 처럼 공통 UI 를 지원하지는 않아서 인력이 증강될 확률이 높음. 언어 시스템의 형 원시형 (Primitive) 대입이나 함..

Kotlin 2022.06.12

HAR File 로 HTTP Request 추적하기

최근에 AWS ELB 쪽 버그를 제보하면서 AWS 에서 버그를 제보하는 방법에 대해서 가이드를 받았었다. 가이드를 받던 도중 .har 파일이라는 것에 대해 알게되었는데, 이게 참 기획자 분이나 QA 분에게 알려드리면 좋을것 같아서 사내 위키에 올리고 팀원에게 공유했다. Har file 이란? HTTP Archive format 의 약자로 Json 형태의 파일로 네트워크 기록을 Debug 하기 위해 사용한다. Viewer 를 통해 파일을 열어보면 아래 사진으로 확인할 수 있듯이 해당 유저가 Network Tab 의 기록동안 어떤 일을 했는지 파악할 수 있다. 하는 방법 1. Chrome Tab 에서 개발자 도구를 연다 2. Network 기록 제거를 실행한다. (반드시 해주어야함!!!) 3. 기록을 다 지..

일일회고 2022.06.10
728x90