Community IntelliJ IDEA

Java 오픈소스 프로젝트에서 IntelliJ IDEA를 사용하는 방법: 실제 사례 – 2부

Read this post in other languages:

이 시리즈의 1부에서는 Java 커뮤니티에서 가장 영향력 있는 오픈소스 프로젝트 중 일부를 소개했습니다. 이번에는 빌드를 가속화하고, 테스트를 강화하며, 현대적 웹 스택의 사용을 간소화할 수 있는 뛰어난 프로젝트를 소개해 드리려 합니다. IntelliJ IDEA는 언제나 그렇듯이 프로젝트 유지 관리자가 품질에 집중하는 동시에 더욱 효율적이고 자신 있게 작업할 수 있도록 도와줍니다.

🌿 jsoup

실제 HTML을 처리하기 위한 Java 라이브러리입니다.

jsoup라는 이름은 초창기 웹 콘텐츠의 혼란스러운 ‘태그 수프’에서 유래했습니다. 2009년, 정규 표현식 기반 HTML 구문 분석은 너무 취약했고, 기존 Java HTML 라이브러리는 다루기 어렵고 기능이 제한적이었기 때문에 jsoup가 탄생했습니다. jQuery의 단순함에서 영감을 받은 jsoup는 Java에서 HTML 구문 분석을 직관적이고 사용하기 쉽게 만드는 데 목표를 두었습니다. 오늘날에는 HTML5, XML, 정리, W3C API 및 기타 기능을 지원하면서 HTML을 구문 분석, 정리 및 처리하기 위한 간단하고 사용하기 쉬운 도구를 제공합니다.

제가 가장 선호하는 IDE는 IntelliJ IDEA입니다. 직관적이고 강력하며, 코드 탐색, 데이터 흐름, 테스트 측면에서 매우 뛰어난 성능을 보여줍니다. 검사 기능을 통해 문제를 조기에 감지할 수 있으며, 내장된 테스트, 분석 및 종속성 관리 도구로 jsoup의 개발 프로세스를 직접적으로 개선할 수 있습니다.

— Jonathan Hedley, jsoup 제작자

jsoup는 이미 상당히 성숙되었지만 개발은 계속되고 있습니다. 최근 추가된 기능으로는 효율적인 연결을 위한 기본 HTTP/2 요청 지원과 빠르고 새로운 하이브리드 DOM+SAX 스타일 StreamParser가 있습니다. 향후 계획에는 사용자 지정 태그 지원, 최적화된 pretty printer, 향상된 HTML 정리 도구 등이 포함됩니다. 기여하고 싶거나 다른 아이디어가 있으시다면 jsoup 웹사이트를 방문해 주세요!

🚀 http4k

Kotlin을 사용하여 HTTP 서비스를 구축하기 위해 설계된 가볍고 실용적인 툴킷입니다.

Twitter의 Your Server as a Function 문서에서 영감을 받아, 40줄짜리 스크립트로 시작한 http4k는 이제 180개의 모듈을 포함하게 되었습니다. 종속성이나 리플렉션 메커니즘이 없는 순수 함수 기반으로 구축되었으며, 고성능과 높은 이식성을 결합했습니다. 메모리에서 실행 가능하며 14개의 서버 백엔드, 6개의 서버리스 플랫폼 또는 GraalVM 바이너리를 지원합니다. http4k는 극도의 단순성과 높은 테스트 용이성을 핵심 원칙으로 설계되었으며, 오늘날 시장에서 가장 테스트하기 쉬운 웹 툴킷이 되는 것을 목표로 합니다.

IntelliJ IDEA를 많이 사용하는 사용자로서, 우리는 JetBrains 제품의 충성스러운 팬입니다. IDE의 강력한 리팩터링 기능을 사용하여 코드를 안정적으로 조작하고 개조할 수 있을 뿐만 아니라, 동일한 키 바인딩을 이용해 여러 언어에 걸친 개발도 쉽게 수행할 수 있습니다.

— David Denton and Ivan Sanchez, http4k 제작자

http4k는 계속 확장되고 있으며, 최근에는 스테이트리스, 서버리스 배포를 위한 모델 컨텍스트 프로토콜(MCP) SDK, Datastar 통합, TracerBullet 모듈(테스트를 실행하여 코드 동작의 시퀀스 다이어그램을 생성), 그리고 곧 출시될 트랜잭션 발신자 모듈 등이 추가되었습니다. 항상 그렇듯이 모든 기능은 구성 가능한 함수를 기반으로 구축되었으며, 테스트 가능성이 항상 핵심 원칙입니다.

🧞 Selenide

안정적이고 읽기 쉽고 효율적인 UI 테스트를 위해 설계된 간결한 테스트 라이브러리입니다.

Selenide의 탄생은 실용적인 필요성에서 비롯되었습니다. 당시에는 성숙한 Java UI 테스트 라이브러리가 없었고, Selenium WebDriver를 사용하려면 상용구 코드를 많이 작성해야 했습니다. 이로 인해 테스트 가독성이 떨어질 뿐만 아니라 개발 프로세스도 느려졌습니다. 이를 위해 Andrei Solntsev는 내부 자동화 도구를 간결하고 직관적인 라이브러리로 압축하여 브라우저 테스트 작성 과정을 단순화하도록 설계했습니다.

개인적으로 IntelliJ IDEA는 모든 면에서 가장 좋아하는 IDE이고 Selenide의 디자인에도 영향을 미쳤습니다. 이 라이브러리를 개발할 때 제가 처음 세운 목표는 IntelliJ IDEA가 자동으로 사용 가능한 메서드를 제안하도록 하여 개발자가 복잡한 문서를 참조하지 않고도 기능을 쉽게 찾을 수 있도록 하는 것이었습니다. 간단히 점 하나만 입력하면 IDE가 안내해 줍니다.

Andrei Solntsev, Selenide 제작자

현재 Selenide 팀은 안정적이고 읽기 쉬운 테스트, 빠른 실행 및 원활한 개발자 경험에 계속해서 중점을 두고 있습니다. BiDi 프로토콜을 지원하고, 문서를 최적화하며, 진화하는 Selenium 표준과 더 긴밀하게 통합하기 위해 활발히 작업하고 있습니다.

🧠 Flix

탄탄한 이론적 기반을 갖춘 효과 지향적 프로그래밍 언어입니다.

Aarhus 대학에서 개발한 Flix는 함수형, 명령형, 논리형이라는 세 가지 프로그래밍 패러다임을 통합했습니다. 핵심은 모듈성과 코드 명확성을 개선하기 위한 대수적 효과와 핸들러를 갖춘 강력한 효과 시스템이며, 순수 함수 내에서 부수 효과를 분리하기 위한 로컬 변경을 지원하고, 안전한 자동 병렬화와 지연 평가를 달성하기 위한 순수성 리플렉션 기능을 제공합니다.

Flix는 학문적 연구에서 시작되었지만 성능, 안정성 및 개발자 경험에 확고한 중점을 두고 실용적 응용에 사용되고 있습니다.

Flix 컴파일러는 주로 Scala로 작성되었으며, 저희 개발 팀은 거의 전적으로 IntelliJ IDEA에서 작업합니다. 내장 프로파일러는 효율적인 타입 추론 구현을 개발하는 데 필수적인 지원을 제공하며, 디버그 도구는 소스 코드에서 발견하기 어려운 오류를 식별하는 데 일상적으로 사용됩니다.

— Magnus Madsen, Flix 핵심 개발자

팀은 1.0 릴리스 작업을 진행하면서 효과 시스템과 개발자 경험을 지속적으로 개선하고 오류 발생 시 더 정확하고 실행 가능한 피드백을 제공하려 합니다.

🌐 Kobweb

Kotlin을 기반으로 웹 애플리케이션을 구축하기 위한 최신 프레임워크입니다.

Kobweb은 Compose의 강력한 기능을 Kotlin 웹 개발에 적용한다는 비전에서 탄생했습니다. 당시 대부분의 웹 프레임워크는 JavaScript와 TypeScript 기반이어서 Kotlin 개발자가 선택할 수 있는 도구가 매우 제한적이었습니다. Compose HTML이 유망해 보이기는 하지만, 그 에코시스템은 아직 미성숙 단계였습니다. 이러한 공백을 메우기 위해 등장한 Kobweb을 시발점으로, IntelliJ IDEA와 Compose와 같은 개발자에게 친숙한 도구를 기반으로 Kotlin에서 현대적인 선언형 웹 개발을 시도하는 중요한 발걸음을 내딛었습니다.

Kobweb은 개발자에게 IntelliJ IDEA 사용을 유도합니다. 특히 Kotlin 개발에 이보다 나은 도구는 없죠. 업계 최고의 리팩터링 도구, 코드 분석 및 탐색 기능, 그리고 멀티 커서와 같은 고급 편집 기능 등 강력한 기능이 포함되어 있으며, 모두 익혀두면 도움이 됩니다. IDE를 일상적으로 사용한다면 시간을 내어 도구를 제대로 익혀두세요. 그러면 작업 효율과 성과가 크게 개선됩니다.

— David Herman, Kobweb 제작자

Kobweb은 남아 있는 API 격차를 메우고, UI 위젯을 추가하며, IntelliJ IDEA 플러그인을 강화하고, 커뮤니티를 위한 짧은 동영상 튜토리얼을 제작한다는 로드맵을 가지고 1.0 릴리스를 준비하고 있습니다. 진행 상황은 공개 로드맵에서 확인할 수 있습니다. 기여에 관심이 있고 관련 기술을 보유하고 있다면, 연락해 주세요!


프레임워크, 컴파일러, 라이브러리 등 무엇을 구축하든 이러한 OSS 프로젝트는 개발자에게 적절한 도구가 주어졌을 때 어떤 가능성이 펼쳐지는지 잘 보여줍니다. JetBrains는 커뮤니티의 번영을 돕는 이러한 프로젝트를 기쁜 마음으로 지원합니다.

Lena Morozova

Lena Morozova

image description

Discover more