목록분류 전체보기 (290)
빙응의 공부 블로그
이번에 우아한 테크코스 1~3주차를 하고 오픈미션을 받게 되면서 작성하는 회고록입니다. 우테코를 신청한 계기?저는 지난 8월에 대학교를 졸업했습니다. 학교를 다니는 동안 백엔드 개발자가 되고 싶다는 꿈을 꾸며, 여러 대회에 나가고 팀 프로젝트도 하면서 나름 열심히 달려왔어요.그런데 이상하게도, 항상 마음 한켠엔 ‘내가 잘하고 있는 걸까?’, ‘지금 이 정도면 충분할까?’ 하는 불안함이 있었습니다.코드를 짜고 프로젝트를 만들긴 했지만, 막상 제 실력이 어느 정도인지, 어떤 부분이 부족한지 스스로 판단하기가 참 어려웠어요.그러다 졸업하고 한 달쯤 지났을 때, 우아한테크코스 모집 공고를 보게 됐습니다.“아, 이거다.” 싶었어요.단순히 코드를 잘 짜는 것보다 같이 성장하는 법을 배우고, 제 한계를 정확히 마주..
5. 람다5-1 람다Kotlin의 람다식은 자바보다 더 간결합니다. 파라미터가 하나일 경우 it 키워드로 암시적 참조가 가능하며, 람다가 마지막 인자이면 괄호 밖으로 뺄 수 있습니다.(Trailing Lambda)val list = listOf("a", "b", "c")// 1. 기본list.forEach({ s -> println(s) })// 2. Trailing Lambdalist.forEach { s -> println(s) }// 3. 'it' 사용list.forEach { println(it) } Java는 it과 같은 암시적 파라미터나 Trailing Lambda 문법은 없습니다.List list = List.of("a", "b", "c");// 1. 기본 람다list.forEach(s ->..
저는 평소 자바를 중심으로 개발해왔습니다. 이번에 코틀린을 배우고 활용할 기회가 생겨, 새로운 언어로의 도전을 통해 개발 역량을 넓혀가고자 합니다.1. 변수 1-1 변수 선언Kotlin은 변수 선언 때 val(불변), var(가변) 키워드를 통해 타입 추론을 지원합니다.아래처럼 가변, 불변을 정하고 타입 추론 기능이 기본 탑재되어 있습니다. val name: String = "김병웅" // 읽기만 가능var age: Int = 20 // 읽기/쓰기 가능var address = "충북" // 타입 추론 (String) Java는 final 키워드를 직접 적어 변수의 불변성을 지정해줘야 하며, 타입을 항상 명시해야 합니다.final String name = "김병웅"; //..
📝서론 분산 시스템은 전세계의 구조를 바꿨습니다. 웹 브라우저가 지구 상 어딘가에 있는 웹 서버에 접속하면 클라이언트/서버 분산 시스템이라는 구조에 한 구성원이 되는 것이다. 분산 시스템을 개발할 때 몇 가지 새로운 도전거리가 생겨난다. 우리는 그 중 "실패"에 관해서 알아보자. 핵심 질문 : 구성 요소가 실패하더라도 동작하는 시스템을 어떻게 만들까? 분산 시스템의 핵심 사안은 여러 개가 존재한다.실패와 고장의 극복시스템 성능보안📝통신의 기본최신 네트워킹의 핵심 가정은 통신은 신뢰할 수 없다는 것이다. 이것에는 여러개의 이유가 있다. 패킷 손실네트워크는 패킷 단위로 데이터를 전송하는데, 중간 유실이 가능하다.지연, 재정렬, 중복패킷이 전송 순서와 다르게 도착하거나, 중복되거나, 지연될 수 있다.중간..
📝서론 저번 포스팅에서 우리는 크래시 방지를 위해서 저널링을 하였다.시간이 지나 컴퓨터의 성능이 좋아지며 저널링에서 더 나아가 로그 기반 파일 시스템(LFS)이 등장하였다.해당 파일 시스템 설계 배경은 다음과 같다.메모리 크기 증가대부분의 읽기는 메모리 캐시에서 처리됨 → 디스크는 주로 쓰기 위주 I/O 발생순차 I/O 성능 향상 > 랜덤 I/O디스크는 순차적으로 쓸 때 훨씬 빠름 → 랜덤 I/O는 탐색/회전 지연으로 매우 느림기존 파일 시스템의 비효율성FFS 같은 기존 파일 시스템은 쓰기마다 여러 I/O → 블럭 그룹 최적화로도 한계RAID 환경의 쓰기 병목RAID는 작은 쓰기(small write)에서 읽기-수정-쓰기 반복 필요 → 기존 FS들은 고려하지 않음 이상적인 파일 시스템은 쓰기 성능에 초..
📝서론 이번 장에서는 파일 시스템이 자료 구조를 안전하게 저장하는 방법에 대해 알아보자 파일 시스템이 직면한 가장 큰 어려움 중 하나는 전력 손실이나 시스템 크래시와 같은 장애 상황 이다.이러한 상황에서도 디스크의 데이터가 어떻게 안전하게 갱신되는가는 중요한 문제다. 이 과정을 살펴보면서, 우리는 데이터베이스에서 사용하는 트랜잭션 처리 원리와 유사한 개념을 파일 시스템에서도 체험할 수 있을 것이다. 📝크래시 시나리오데이터 블록만 디스크에 기록됨이 경우 데이터는 디스크에 있지만 아이노드가 없고 할당 여부를 나타내는 비트맵도 없다.파일 시스템에서 접근이 불가능해 크래시 일관성에서 문제가 없다.갱신된 아이노드만 디스크에 기록됨데이터블록이 기록되지 않아서, 의미없는 데이터를 얻게된다.일관성 손상이라는 문..