분류 전체보기 76

소프트웨어 공학의 3R: 역공학, 재공학, 재사용

소프트웨어 공학에서 3R은 역공학(Reverse Engineering), 재공항(Reengineering), 재사용(Reuse)를 의미한다. 3R은 각 공정에서의 영문자의 첫번째 문자 R이 3개 있다는 의미로 3R이라고 한다. 이는 기존 소프트웨어의 분석, 개선, 활용을 통해 품질을 높이고 개발 비용과 시간을 절감하기 위한 핵심 원칙들이다. 이 글에서는 각 개념을 상세히 설명하고, 이를 활용한 사례와 함께 소프트웨어 개발에 미치는 영향을 알아보겠다. 역공학 (Reverse Engineering) 역공학은 이미 만들어진 소프트웨어를 분석하여 그 구조와 동작을 이해하는 과정이다. 소스 코드나 설계 문서가 없는 상태에서도 소프트웨어를 분석해 문서화를 하거나 설계를 추출하는 데 사용된다. 이는 특히 오래된 시스..

빌드(Build)란 - 컴파일에서 실행까지

이전 포스팅에서는 컴파일과 링크에 대해 설명했다. 컴파일이 무엇인지 링크가 무엇인지 그리고 그것들이 무슨 차이가 있는지도 간단하게 살펴봤다. 컴파일은 목적 파일를 만들고 그 목적 파일을 링크는 실행 파일을 만든다고 했다. 설명을 듣다보면, 컴파일과 링크가 일련의 과정임을 쉽게 유추할 수 있다. 그리고 오늘 설명하려는 빌드가 바로 이 두 개의 과정을 모두 포함하는 포괄적인 개념이라고 생각하면 된다.빌드(Build) 소프트웨어 개발에서 빌드라는 말은 굉장히 많이 들어봤을 것이다. 특히 Visual Studio를 사용해보신 분들이라면 이 빌드라는 것에 익숙할 것이다. 그리고 빌드가 뭔지 잘 모르더라도 아마 빌드의 과정은 개발을 접해보신 분들이라면 알게 모르게 이 과정을 겪어 봤을 것이다. 그렇다면 빌드는 무엇..

기본 개념 2025.01.17

링크(Link), 링킹(Linking)이란

이전 포스팅에서 컴퓨터는 우리의 언어를 이해하지 못하고 그로 인해 우리의 언어를 컴퓨터의 언어로 바꿔주는 과정인 컴파일에 대해 알아보았다. 그리고 컴파일 과정을 통해 목적파일 ( .o, .obj ) 파일이 만들어진다는 것도 배웠다. 이번 포스팅에서는 이 목적파일들이 실행파일 .exe로 변환되는 과정인 링킹에 대해 알아보겠다.  컴파일(Complie) 이란우리는 일상속에서 우리의 언어로 소통하고 상호작용한다. 하지만 우리의 언어로 컴퓨터와 소통을 시도한다면 아마 거의 불가능할 것이다. AI가 성행하고 있는 현재, 우리의 언어로 소통할 수joungdev.tistory.com프로그래밍에서의 링크(Link), 링킹(Linking) 링크를 이전에 들어보신 분들이라면 아마 C언어를 통해 들어보았을 것이다. C의 빌..

기본 개념 2025.01.14

깃허브(github)란 - git 다운로드

우리는 개발을 하다보면 코드 관리를 효율적으로 하고 싶거나 팀 프로젝트에서 협업을 더 원활하게 하고 싶은 경험이 생길 것이다. 깃허브는 그런 고민을 해결할 수 있는 최고의 도구이다. 이번 포스팅에서는 깃허브를 처음 접하는 분들도 쉽게 따라할 수 있도록 기본 개념부터 실제 사용법까지 친절히 설명드리겠습니다.깃허브의 등장 배경 사실 깃허브가 등장하기 이전부터 위에서 말했던 문제점들을 해결하기 위한 도구들이 이미 존재했다. RCS, CVS 같은 것들이 이러한 도구이다. 하지만 처음 깃허브를 접한 사람들이 이를 이해하기 위해서는 더 이전에 코드 관리를 어떻게 했는 지를 이해 하는 것이 좋을 것이다.   만약, 깃허브와 같은 도구가 없다면 코드를 어떻게 관리할 것인가. 우리가 A라는 컴퓨터에서 계산기 프로그램을 ..

Git 2025.01.13

컴파일(Complie) 이란

우리는 일상속에서 우리의 언어로 소통하고 상호작용한다. 하지만 우리의 언어로 컴퓨터와 소통을 시도한다면 아마 거의 불가능할 것이다. AI가 성행하고 있는 현재, 우리의 언어로 소통할 수 있는 거 아니야? 라고 생각할 수 있다. 하지만 실제로는 컴퓨터 안에서 어떠한 많은 과정이 있기 때문에 그것이 가능해 보이는 것이고, 실제 컴퓨터와 소통을 한다는 것과는 다른 의미이다. 사실 컴퓨터는 우리의 언어를 전혀 이해할 수 없다.  컴퓨터는 그들만의 언어인 기계어를 사용한다. 0과 1로 이루어진 단순한 형태의 기계로를 오롯이 이해할 수 있기 때문에 우리의 언어를 컴퓨터는 이해할 수 없다. 그로 인해 우리의 언어를 컴퓨터가 이해할 수 있도록 번역을 해주는 과정이 필요하다. 그 과정을 컴파일라고 하고 번역을 해주는 변..

기본 개념 2025.01.13

파싱(Parsing) 이란

Parsing은 구문 분석이라고 한다. 문장을 이루고 있는 구성 요소를 분해하고 분해된 성분의 위계 관계를 분석하여 구조를 결정하는 것이다. 즉 데이터를 분해 분석하여, 이를 원하는 형태로 조합한 뒤 다시 추출할 수 있도록 해주는 프로그램이나 함수가 파서(parser)이며, 이 과정을 파싱(parsing)이라고 한다.  예를 들어, 웹 페이지에서 떠도는 데이터는 List, Dictionary 같은 자료 구조와 달리, 사용자 마음대로 접근하고 자르고 추가하고 하는 것이 어렵다. 그렇기 때문에 이런 데이터들을 다루기 쉬운 형태로 변환하는 과정이 필요하며, 이를 담당하는 함수나 프로그램이 바로 파서이다. 파싱은 데이터를 구조화된 형식으로 바꾸어, 우리가 쉽게 사용할 수 있도록 도와준다.파싱의 예// CSV 파..

기본 개념 2025.01.09
반응형