전체 글 썸네일형 리스트형 Cursor AI 사용기 Cursor AI 사용해보니 솔직히 이렇습니다 - 개발자 증명된 장점과 현실적 한계🚀 코딩의 새로운 혁명, Cursor AI를 아시나요?개발자라면 누구나 고민해봤을 겁니다. "이 반복적인 코딩, 좀 더 효율적으로 할 수 없을까?" 최근 AI 코딩 도구들이 우후죽순 등장하면서 많은 개발자들의 관심을 끌고 있죠. 그중에서도 Cursor AI는 GitHub Copilot과 함께 가장 주목받는 AI 코딩 도구로 자리매김했습니다.하지만 실제로 사용해보면 화려한 소개와 달리 어떤 면이 좋고, 어떤 부분이 아쉬울까요? 6개월 동안 실제 프로젝트에서 Cursor AI를 사용한 제 경험과 다양한 개발자들의 리뷰를 종합해 정리했습니다. 신규 프로젝트 시작부터 대규모 리팩토링까지, Cursor AI가 실전에서 어떻게 작동.. 더보기 오픈AI - 딥리서치, 이용 대상 확대 오픈AI '딥리서치', 이제 월 20달러 구독자도 이용 가능! 📱인공지능 기술이 빠르게 발전하는 가운데, 오픈AI가 강력한 리서치 도구인 '딥리서치'의 이용 대상을 크게 확대했습니다. 지난 3일 일본에서 첫 공개 이후 불과 20여일 만에 플러스(Plus), 팀(Team), 에듀(Edu), 엔터프라이즈(Enterprise) 등 모든 유료 구독자에게 서비스를 확장한 것인데요. 이전까지는 월 200달러의 프로(Pro) 구독자만 접근할 수 있었던 딥리서치가 이제는 월 20달러의 챗GPT 플러스 구독자도 이용할 수 있게 되었습니다. (다만, 나머지 사용자는 월 10회로 제한) 이번 확대 조치로 인해 더 많은 사용자들이 AI 기반의 고급 리서치 기능을 경험할 수 있게 되었는데요, 특히 xAI의 Grok3와 Ant.. 더보기 [Rust] 함수 값 전달(Passing Arguments by Value) 완벽 가이드 Rust의 값 전달(Passing Arguments by Value) 완벽 가이드소개Rust에서 함수에 인자를 전달하는 방식 중 가장 기본이 되는 '값 전달(Pass by Value)'에 대해 자세히 알아보겠습니다. Rust의 독특한 소유권 시스템과 함께 이해하면 더욱 효과적인 코드를 작성할 수 있습니다.기본 개념Rust에서 값을 전달할 때는 기본적으로 소유권이 이전됩니다. 이것이 Rust의 가장 큰 특징 중 하나입니다.fn main() { let name = String::from("Alice"); print_name(name); // println!("{}", name); // 🚫 컴파일 에러! name의 소유권이 이전됨}fn print_name(n: String) { prin.. 더보기 [Rust] 포인터의 종류와 사용방법 Rust에서는 다양한 종류의 포인터를 제공합니다. 이 포인터들은 메모리 안전성, 소유권, 뮤터불리티 등 다양한 측면에서 사용됩니다. 아래에 주요 포인터 타입에 대한 설명을 제공하겠습니다. Rust에서는 여러 종류의 포인터를 제공합니다. 각각의 포인터는 메모리 안전성을 보장하는 데 다양한 방법을 사용합니다. 아래 테이블에서 주요 포인터 타입의 특징을 비교하겠습니다. 먼저 들어가기 전에 뮤터블과 (Mutable)과 이뮤터블(Immutable)의 간략히 짚고 갑니다. 아래는 비교한 표입니다. 뜻 변경 가능한 변경 불가능한 변수 선언 let mut x = 5; let x = 5; 값 변경 가능 (x = 6;) 불가능 배열/벡터 수정 가능 (vec.push(1);) 불가능 메모리 안정성 상대적으로 낮음 높음 데이.. 더보기 [Rust] Option<T> 의 사용방법에 대하여 Option 이 Option타입은 표준라이브러리에 enum으로 정의되어 있습니다. 러스트에는 기본적으로 다른언어에서 많이 사용하는 null 이 없습니다. 때문에 널포인터 참조와 같은 에러는 발생하지 않습니다. null값을 사용할때의 문제점은 값이 null인 데이터를 사용할때 문제가 발생합니다. 하지만, '값이 없음'을 표현하는 방법이 필요할 때가 있습니다. 그럴 때 Option 이라는 enum 타입을 사용할 수 있습니다. 이 Option 은 표준 라이브러리에 아래와 같이 정의되어 있습니다 enum Option { Some(T), None, } 여기서 T 는 제너릭을 나타냅니다. Some 은 값이 있음을 나타내며, None 은 값이 없음을 나타냅니다. 이 두 '상태' 를 가지고 null 체크와 같은 일을 .. 더보기 Rust in Jupyter notebook Jupyter Notebook에서 Rust를 사용하려면, jupyter의 커널설치가 필요합니다. Rust 커널 설치: Jupyter Notebook은 다양한 프로그래밍 언어를 지원하기 위해 별도의 커널을 사용합니다. Rust용 Jupyter 커널은 evcxr_jupyter라고 불리며, 이를 설치하면 Jupyter Notebook에서 직접 Rust 코드를 실행할 수 있습니다. 먼저, Rust가 설치되어 있어야 합니다. Rust 공식 웹사이트에서 Rust를 설치할 수 있습니다. Rust가 설치된 후, 터미널이나 커맨드 프롬프트에서 다음 명령어를 실행하여 evcxr_jupyter를 설치합니다: cargo install evcxr_jupyter evcxr_jupyter --install 설치가 완료되면, Jup.. 더보기 Verilator Tutorial 5.xx Verilator가 5.xx 버젼으로 업데이트가 되었길래 관련 내용을 끄적여본다. 아래는 Verilator를 이용한 Tutorial이다. 이게 버젼 5.xx 부터는 개인 개발자뿐 아니라 여러 회사들까지 지원해서, 업그레이드가 되고 있는 것으로 보인다. 그리고, 이미 RISC-V등에서 Open source에서 사용하는 공식 simulator는 Verilator이기도 하고, 5.xx에서는 UVM지원들을 진행중이니 관심있게 봐도 좋을듯하다. 특징 verilator는 일단 verilog simulator와는 다른 점이 몇개 있다. 그중 하나는 cycle based simulator이다. 이 이야기는 #1 과 같은 delay구문이 동작하지 않고, 단지 clock에 의해서만 구동이 된다. 즉, 미묘한 타이밍 변화는.. 더보기 [UVM] uvm_config_db 관련 uvm에서 처음 접했을대 낯선것중에 하나가 uvm_config_db라는 구문입니다. 이것의 주요특징들은 아래와 같습니다. 돌아다니는 uvm 기본 예제들을 보면, 이것은 주로 interface를 만들어서 이것을 uvm_config_db로 각각의 agent, driver, monitor등에 일괄적으로 설정하는 예제들을 많이 볼수 있습니다. 이번글에서는 이 uvm_config_db를 왜 사용하는지랑 어떻게 해야 이것을 잘 쓸 수 있는지 적어 보려고 합니다. 먼저, 왜 uvm_config_db인지인데요, 이것은 uvm자체가 object기반이기때문에, object내부에서는 각각의 변수들을 관리하기가 그나마 낫지만, object가 부모라든지, 서로 관련 접점이 없다고 하면, access가 쉽지 않습니다. 그래서 이.. 더보기 이전 1 2 3 4 5 다음 목록 더보기