본문은 CSS 창시자 하콤 비움 리(Håkon Wium Lie)를 인터뷰한 글입니다. 하콤 비움 리는 1994년 CERN에서 팀 버너스 리, 로버트 카이오와 협력하여 CSS(Cascading Style Sheet)를 개발한 공로를 인정받았습니다. 또한 1998년부터 새 소유주가 회사를 인수한 2016년까지 오페라 소프트웨어의 최고 기술 책임자로 재직했습니다. 인터뷰에는 웹 업계의 선구자이자 웹의 표준을 만든 활동가로서의 경험을 토대로 개발자들에게 건네는 조언이 담겨있습니다.
스프링은 장점이 많은 개발 도구이지만 설정이 매우 복잡하다는 단점이 있습니다. 그래서 스프링을 개발팀에서도 이런 단점을 인식하고 단점을 보완하고자 스프링 부트를 출시했습니다. 스프링 부트는 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구입니다. 본문을 통해 스프링 부트 3의 상위 프레임워크인 스프링을 비교하며 스프링 부트 3에 대해 알아보고, 스프링의 콘셉트인 IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)를 알아보겠습니다.
프론트엔드 개발자에게 API 통신 비용은 언제나 고민되는 요소다. 모던 브라우저의 경우 성능이 많이 좋아져서 유저가 불편할 정도의 지연은 자주 발생하지 않지만, API 통신은 네트워크 환경의 영향을 많이 받고, 데이터 크기에 따라 속도 차이가 발생할 수 있다. 그래서 API 통신이 포함된 로직을 설계할 때는 유저에게 보여줄 데이터를 언제 캐싱하고, 언제 서버에서 새로 받아올지 잘 결정해야 한다. 그래서 이러한 API 통신 비용 문제를 해결할 수 있는 대안으로, 페이스북에서 개발한 쿼리 언어 ‘GraphQL(그래프QL)’이 등장했다. 이번 글에서는 GraphQL 도입을 고려하고 있는 입장에서 살펴본 GraphQL의 장단점에 대해 소개하고자 한다.
지도 학습의 경우, 과거의 원인과 결과를 바탕으로 결과를 알 수 없는 원인이 발생했을 때, 어떤 결과를 가져올지 추측하는 것이 목적입니다. 따라서 독립변수(원인)에 따른 종속변수(결과)를 학습해야 하기 때문에, 독립변수와 종속변수를 구분 짓는 것이 중요합니다. 반면 비지도 학습은 미지의 세계를 파악하는 탐험가처럼, 데이터들의 성격을 파악하는데요. 정해진 정답은 없어서, 독립변수와 종속변수를 구분 짓는 것이 중요하지 않습니다. 그보다는 데이터들의 연결 상태와 서로 얼마나 가까운지가 더 중요합니다.
‘멱등(Idempotent)하다’는 생소한 표현이지만 알고 보면 쉽습니다. 컴퓨터 과학에서 멱등하다는 것은 첫 번째 수행을 한 뒤 여러 차례 적용해도 결과를 변경시키지 않는 작업 또는 기능의 속성을 뜻하는데요. 즉, 멱등한 작업의 결과는 한 번 수행하든 여러 번 수행하든 같습니다. 예를 들어, 어떤 숫자에 1을 곱하는 연산은 여러 번 수행해도 처음 1을 곱한 것과 같은 숫자가 되기 때문에 멱등합니다. 마찬가지로 숫자의 절대값을 계산하는 절대값 함수는 같은 값에 대해 여러 번 수행해도 처음과 항상 같은 숫자가 돌아오기 때문에 멱등 함수라고 부릅니다.