IT 끄적임 일지

[궁금드] IDE와 프레임워크(Framework) 차이

나람드 2022. 11. 21. 23:48

이클립스로 자바를 익히기 시작한 지 한 두 달이 지나고 스프링 부트라는 프레임워크를 통해 신세계를 본 꼬꼬마 개발자. 그렇게 코드를 짜는 나날을 보내다가 문득, IDE와 프레임워크의 차이도 제대로 구분 짓지 못한 채 키보드 위만을 헤매고 있다는 걸 알아버렸다.

늦었다고 생각했을 때가 어쩌면 가장 빠를 때라는 말을 떠올리며, 바로 정리하기로 마음먹었다.

 

한 줄(씩) 정리

IDE는 편의성을 올리는 도구 모음
Framework는 개발 작업을 올리기 위한 뼈대(구조)

 

IDE가 뭔데?

 

IDE는 통합개발환경(Integrated Development Environment)의 약자로, 코딩과 컴파일, 디버거, 배포 등의 프로그램 개발의 모든 작업 처리를 지원하는 소프트웨어이다. 가장 쉬운 표현으로는 고속 개발 도구 정도로 이해하면 될 것 같다.

나는 꼬꼬마 JAVA 개발자다. JAVA 하면 또 이클립스(Eclipse)가 아니던가. 처음 배울 때는 항상 cmd라는 검은 창을 열어 알파벳을 따라 적게 하는데, 메모장과 cmd창을 벗어나 직관적으로 와닿게 코딩을 할 수 있도록 해 준 고마운 프로그램. 이게 바로 이클립스의 첫인상이었다.

자바 외에도 상용되는  언어들이 많고 그 언어들마다 또 쓰고자 하는 프레임워크(아래서 다룰 거임!)에 따라, 또 개발자 각각의 취향에 따라 적절히 맞는 IDE를 선택하여 사용한다. 그렇다면 어떤 IDE들이 있는지 또 어느 점에 강점이 있는지는 알아볼 필요가 있지 않을까?

 

 

IDE 종류 (대표적인 것 위주로!)

아! 이미지는 내가 직접 사용해본 것만 올렸다 v...

 

1. Visual Studio

마이크로소프트사가 배포한 통합 개발 환경이다. 윈도우의 표준 개발 툴로 데스크톱 애플리케이션과 웹 애플리케이션 모두 개발할 수 있다. 다만 그만큼 용량이 커서 무겁다는 단점이 있다. 주 사용 언어는 C 계열 언어이다. 가격은 무료!

 

Eclipse

 

2. Eclipse

Oracle사에서 개발했다! JAVA를 접해본 사람이라면 이클립스를 모를 수는 없을 것이다. JAVA 개발에 가장 최적화된 통합 개발 환경이며 C언어 등 다른 언어에 대한 지원도 하기 때문에 범용성 있게 사용하기 좋다. 가격은 무료! 다만 깃허브.. 연동이 조금 매끄럽지 않았던 아쉬운 부분이 있다. (제 입장입니다..)

 

3. Xcode

Apple사의 모든 운영체제(MAC / IOS / watchOS 등)의 소프트웨어 개발을 위한 IDE이다. 다른 IDE를 통해 개발한 소프트웨어를 MAC에서 동작하려면 Xcode의 컴파일을 거쳐야만 한다면 이 위상이 전해지겠는가. 맥 전용인 만큼 개발 언어는 swift나 cocoa에 적합하다. 다만 Mac OS 이외의 환경에서 사용하려면 꽤 번거로운 과정을 거쳐야 한다.(가상화 소프트웨어...) 가격은 무료이나 앱스토어에 게시하려면 유료 등록을 해야 한다. 

 

IntelliJ

4. IntelliJ

JetBrains사가 개발한 IDE. 비교적 후발주자인데, JAVA에서도 강점을 보이며 이클립스 사용자 층을 흡수하며 크고 있다고 한다..! 개발 언어로는 PHP / JavaScript / Python 등 다양하게 지원한다. 각 언어에 대한 프로그램이 각각 지원되는 점이 특징이다. 이 때문에 용량이 크다는 단점이 따르지만 단축키를 효율적으로 제공하는 등 사용자의 편의성을 중점으로 고려한 개발 환경으로 인정받고 있다. 유료이지만 일부 기능은 한 달 무료 체험이 가능하다.

 

 

5. VSCode

위의 Visual Studio와 마찬가지로 마이크로소프트 사에서 개발한 텍스트 에디터이다. Elctron 프레임워크를 기반으로 만들어졌으며 MacOS도 지원한다. 태생적으로 텍스트 에디터로 개발되었기 때문에 가볍고 빠른 속도가 장점이나, 주요 모든 개발 언어를 지원하는 등 서비스 수준은 IDE급에 도달했다고 한다. 가격은 무료!

 

 

그러면 프레임워크는?

 

프레임워크(FrameWork)란 목적에 따라 효율적으로 개발할 수 있도록 룰을 제공하는 프로그램을 말하며,. 소프트웨어 개발에 있어 뼈대에 해당한다. 정해진 구조 안에 내용을 넣어줘야 제 작동을 할 수 있기 때문에 프레임워크 자체에 대한 이해가 받쳐주어야 제대로 사용이 가능하다. 그럼에도 쓰는 이유는 제로베이스에서 코드를 쌓기보다 비용을 아낄 수 있으며, 체계적이기 때문에 담당자가 바뀌어도 위험부담이 덜하기 때문이다. 즉, 효율성과 유지보수의 측면에서 그 이유를 찾을 수 있는 것이다.

 

이제 어느 정도 갈피가 잡힌 듯 하니 IDE와 FrameWork를 비교해보면,

 

 

<핵심> IDE와 프레임워크는 어떻게 다른데?

둘 모두 개발에서의 효율성을 극대화시키기 위한 기술적 환경이라는 공통점이 있지만 

IDE는 개발 편의성을 올리는 도구들의 모음이므로 개개인의 취향에 따른 선택에 해당하지만,
프레임워크는 뼈대이기 때문에 개발 목적에 따라 그 틀에 맞춰 사용해주어야만 한다.

애초에 이 둘의 포지션이 다르므로 프로그래밍 작업 시에는
언어나 개발 목적, 협업 환경에 따라 IDE와 프레임워크를 모두 고려해야 할 것이다!



 

 

주요 프레임워크 종류 (간단하게만!)

 

 

1. Spring

JAVA 개발의 대표적인 경량형 프레임워크이다. JDBC, JPA 등 DB 처리를 위한 라이브러리 연동을 지원하고 있으며 전자정부 표준 프레임워크의 기반기술로서 그 활용도가 여전한 대세 프레임워크이다. 

나는  조금 더 친절한 스프링부트를 통해 마주했다. (IDE : 인텔리제이!) 

 

 

 

2. DJango

Python의 오픈소스 웹 프레임워크이다. 강력한 풀스택 웹 프레임워크로, 관리자 페이지와 같이 자주 사용되는 로직들을 기본적으로 제공한다. D는 묵음이라 장고라고 불린다.

 

 

 

3. AngulaJs

JavaScript의 프레임워크로, 웹 브라우저에서 MVC 아키텍처를 도입한 점이 특징이다. 한 웹 페이지에서  view를 동적으로 로드하여 사용하는 Single Pages Application (SPA)  개발 중의 문제를 해결하기 위해 개발되었다고 한다.

 

 

4. Laravel

PHP 언어의 풀스택 웹 프레임워크이다. 오픈소스로 되어있으며 MVC 패턴의 아키텍처를 갖는다. 

 

 

 

결론?

어떤 언어를 쓸지를 정하고 그에 맞는 프레임워크를 택한 후 개발 환경을 택하자


자바라면 스프링(부트)과 인텔리제이인거지~