#websocket웹 소켓에 대해 알아보자! - 테스트 편이 글은 웹 소켓으로 만든 채팅방을 어떻게 테스트할지 고민하는 독자를 위해 작성되었다. 웹 소켓은 어떻게 테스트하면 좋을까? Babble 팀의 데모데이 날 부스에서 질문을 받았다. “웹 소켓은 테스트를 어떻게 해야 할 지 감이 안 잡히는데 어떻게 구…
#java🔒 Java 로 동기화를 해보자!이 글에서는 상호배제를 통한 동기화를 알아볼 것이다. 동기화는 프로세스(스레드)가 수행되는 시점을 조절하여 서로가 알고 있는 정보가 일치하는 것인데, 쉽게 말해 프로세스 간 데이터가 일치하도록 하는 것이다. 이러한 동기화 메커니즘인 상호배제는 프로세…
#javaJava 8 에서 왜 함수형 프로그래밍이 도입되었을까?우선 당신에게 질문을 던져본다. 객체지향 프로그래밍과 함수형 프로그래밍은 상호 배제 관계에 있다고 생각하는가? 객체지향과 함수형 프로그래밍 Java 혹은 다른 객체지향 프로그래밍 언어로 처음 프로그래밍하던 시절이 생각나는가? 그 당시에는 객체지향 이…
#java🧶 Java 에서 스레드 풀(Thread Pool) 을 사용해 보자프로세스 내에서 스레드의 생성 및 수거가 빈번하게 발생한다면 메모리 할당에 소모되는 비용이 많이 들지 않을까? 이에 대한 해답으로 스레드 풀에 대해 알아보고 Java 에서 어떻게 사용하면 되는지 알아보자. 스레드 풀(Thread Pool) 스레드 제…
#log📊 로그 시각화는 왜 중요할까?로깅을 통해 개발자는 개발 과정 혹은 개발 후에 발생할 수 있는 예상치 못한 애플리케이션의 문제를 진단할 수 있고, 다양한 정보를 수집할 수 있다. 단순히 로그를 확인한다는 것은 추상적인 행위로 보인다. 기록을 남기는 것이 아닌 구체적으로 어떤 정보…
#logLogback 으로 쉽고 편리하게 로그 관리를 해볼까요? ⚙️Spring Boot 를 통해 프로젝트를 개발할 때, 로깅을 적용하려는 초심자분들을 위한 글입니다. 로깅을 하는 이유? 로깅이란 시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미한다. 로깅을 통해 개발자는 개발 …
#optionalOptional 과 null 에 대해 ⌥␀런타임에서 발생하는 NullPointException 방어를 위해 만들어둔 로직체크는 코드의 가독성과 유지 보수성이 떨어진다. 어떻게 null 을 다루면 좋을 지에 대한 해결책을 함수형 언어에서 찾았다. 함수형 언어는 존재하지 않을 수도 있는 값에 …
#streamStreamAPI 나도 한 번 써보자!Java 의 Stream API 사용 방법을 알아보자. 우아한테크코스 프리코스 과정에서 Stream API 를 사용해서 코드를 맛깔나게 구현하는 분들을 보면 괜스레 해야 할 것 같고, 유용해 보여서 흥미가 생긴다. 처음 보는 Stream API 를 …
#javaJava 의 Stack 대신 Deque🤹♀️ 자바에서 자료구조 Stack 을 대신해서 사용하는 Deque 에 대해서 알아보자. 이 글은 기능을 사용하는 방식이 아닌 ‘왜 Stack 대신 Deque 를 사용해야 하는가?‘에 대해서 설명한다. Stack 후입선출(Last In First Out…
#design-pattern상태 패턴(State Pattern)을 사용해보자🥰 😁 😐 😩 🤬 😴 상태(현재 진행중인 행위)를 나타내기 위해 어떤 방식을 사용해 왔는가? Enum 열거형(Enum) 이란 서로 연관된 상수들의 집합이다. 상태를 나타내기에는 정말 편리한 방식이라고 생각한다. 하지만 Enum 은 객체 지향적인 프로…