웹을 지탱하는 기술을 공부하며 정리한 글입니다.틀린 부분은 지적해주시면 감사드리겠습니다 😀URI(Uniform Resource Identifier)URI란, 직역하자면, 유니폼 리소스 식별자이며, 웹 상에 존재하는 리소스를 표현하는 방식으로, 리소스를 통일적으로 식별하는 ID이다. 즉, 리소스를 통일적으로 식별하는 ID를 의미한다.URI의 스펙은 RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax에서 확인할 수 있다.URI의 구문http://blog.example.com/entries/1스키마 (Scheme)프로토콜을 나타낸다.위 주소에서 http를 의미하며, ://를 기준으로 구분된다.호스트명 (Host Name)DNS(Domain Name S..
웹을 지탱하는 기술을 공부하며 정리한 글입니다.틀린 부분은 지적해주시면 감사드리겠습니다 😀아키텍처 스타일아키텍처 스타일이란, 복수의 아키텍처의 공통된 성질, 양식, 규정 혹은 독특한 방식으로, 아키텍처 패턴이라고도 불린다.디자인 패턴은 마이크로 아키텍처 패턴라고 불리기도 하며, 아키텍처 스타일보다 입도가 작은 클래스 등의 설계 양식을 의미한다. 순수한 클라이언트/서버 아키텍처 스타일에 몇 가지 제약을 더해가면, REST 아키텍처 스타일이 된다. 제약은 복수의 컴포넌트가 따로따로 움직여 동작하지 않고, 협력하여 동작하도록 하는 중요한 개념이다. 구현에서 추상도를 한 단계 올린 것이 아키텍처이고, 아키텍처에서 추상도를 한 단계 더 올린 것이 아키텍처 스타일이다. 리소스리소스란, 웹 상에 존재하는 이름을 가..
코틀린 코루틴을 공부하며 정리한 글입니다.혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀핫 데이터 소스핫 데이터 소스는 원소를 바로 생성(Eager)한다. 일반적으로 우리가 흔히 사용하는 List를 생각하면 편할 것이다. 리스트 원소를 지정한 뒤, 여러 중간 연산(메소드 체이닝)을 걸면, 해당 연산이 바로바로 진행된다.fun main() { val list = listOf(1, 2, 3, 4, 5) .onEach { println("onEach $it") } .map { it * 10 } println("=======") println("Call List = $list")}onEach 1onEach 2onEach 3onEach 4on..
코틀린 코루틴을 공부하며 정리한 글입니다.혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀코루틴 빌더코루틴 빌더에 대한 자세한 내용은 이전 포스팅을 참고해주세요!동기 / 비동기우선, 비동기에 대한 정의를 먼저 확인해보자.컴퓨터 프로그래밍에서 async/await 패턴은 비동기, 비차단 기능이 일반 동기 기능과 유사한 방식으로 구조화되도록 하는 많은 프로그래밍 언어의 구문 기능 구현이다. - (위키백과)동기와 비동기의 차이가 무엇인지 코드로 간단하게 한 번 살펴보자.suspend fun main() { val result = measureTimeMillis { doSomething1() doSomething2() } p..
코틀린 코루틴을 공부하며 정리한 글입니다.혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀코루틴 빌더중단 함수를 호출하기 위해서는 첫 게시글에서 본 것과 같이 함수 앞에 suspend를 붙여야 한다. 그 이유를 한 번 확인해보자.fun main() { funA() funB() } suspend fun funA() { println("funA") } fun funB() { println("funB") }위 코드를 작성하면 main 함수의 funA()를 호출한 부분에서 다음과 같은 에러가 발생한다.Suspend function 'funA' should be called only from a coroutine or another susp..
코틀린 코루틴을 공부하며 정리한 글입니다.혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀책에서 자세하게 다루지는 않지만, 이전 포스팅에서 본 Thread.sleep과 중단 함수에서 사용 가능한 delay는 과연 어떤 차이가 있길래 단일 스레드 환경에서 차이가 나는걸까?🛠️ 개발 환경 및 테스트 환경kotlin : 1.9.24Spring Boot : 3.3.1Thread이 개념을 이해하기 위해서는 우선 Thread란 무엇인지 알아야 한다. 간단하게 스레드는 프로세스 안에서 작업을 진행하는 작업자라고 생각하면 된다.1시간에 손님이 100명 방문하는 카페가 있는데, 알바생이 1명이면 어떨까? 음료를 주문하고, 그 음료를 받기까지 시간이 오래 걸릴 것이고, 알바생도 힘들 것이다...