강화학습의 핵심은 일단 시도해 보고, 결과에 점수를 매기는 것인데요. 행동의 결과가 자신에게 유리했다면 보상을 받고, 불리했다면 벌을 받습니다. 이를 계속 반복하면서 더 나은 점수(보상)를 받기 위한 방향으로 학습하는 것이죠. 게임을 예시로 한번 생각해 보겠습니다. 플레이어는 게임에서 보다 높은 점수를 얻기 위해 장애물을 더 잘 피하는 방법이나, 함정의 위치 등을 학습하고 그에 맞는 대응을 할 것입니다. 즉, 판단력이 강화되어 게임을 더 잘하게 됩니다. 강화학습은 이러한 과정을 모방하여 기계를 학습시킵니다.
본문은 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의 장단점에 대해 소개하고자 한다.