프레임워크와 라이브러리, 헷갈리시나요?

프레임워크와 라이브러리

안녕하세요! 오늘은 개발자라면 반드시 짚고 넘어가야 할 주제, 프레임워크와 라이브러리에 대해 이야기해 보려고 합니다.

소프트웨어 개발을 처음 배우기 시작했을 때, “프레임워크”, “라이브러리”라는 용어를 접하고 어리둥절해 하셨던 경험, 다들 한 번쯤은 있으시죠? 비슷한 개념처럼 보이지만 그 역할과 사용 방식에는 중요한 차이가 있습니다.

이번 포스트에서는 프레임워크와 라이브러리의 개념을 명확히 정리하고, 실무에서 어떤 상황에 무엇을 선택해야 할지 가이드라인을 제시해 드리겠습니다. 지금부터 차근차근 살펴볼까요?

라이브러리(Library), 개발자의 든든한 조력자

라이브러리는 특정 기능을 수행하는 코드 묶음입니다. 마치 레고 블록처럼, 개발자는 필요한 라이브러리를 골라 자신의 프로젝트에 끼워 맞출 수 있죠.

예를 들어 JavaScript 라이브러리 중 유명한 Lodash는 배열, 객체, 문자열 등을 다루는 데 유용한 함수를 제공합니다. 데이터 정렬이 필요하다면 Lodash의 sortBy 함수를 가져다 쓰면 되는 거죠.

이처럼 라이브러리를 활용하면 매번 유사한 기능의 코드를 직접 작성할 필요 없이, 검증된 코드를 재사용할 수 있습니다. 바퀴를 새로 발명하지 않아도 되니 개발 효율성이 높아지는 거죠.

실무에서 많이 사용되는 라이브러리 예시

  • jQuery (DOM 조작)
  • Lodash (여러 유틸리티 함수)
  • Axios (HTTP 통신)
  • Moment.js (날짜 및 시간 포맷팅)

프레임워크(Framework), 개발의 기본 틀을 제공

프레임워크는 어떤 애플리케이션을 만들 때 기본이 되는 구조나 틀을 제공합니다. 건물을 지을 때 벽돌을 쌓기 전에 뼈대를 세우는 것처럼, 프레임워크는 소프트웨어 개발의 뼈대 역할을 하는 거죠.

프레임워크는 “이렇게 코드를 짜면 좋겠어”하고 개발 방식을 제안합니다. 일종의 규칙이나 가이드라인을 정해두고, 개발자는 그에 따라 세부 코드를 채워 넣는 식이죠.

대표적인 웹 프레임워크인 Rails는 MVC 패턴을 기반으로 애플리케이션을 구성하도록 합니다. 개발자는 모델(Model), 뷰(View), 컨트롤러(Controller) 각각의 역할에 맞게 코드를 분배하면 되죠. 이렇게 하면 코드의 가독성과 유지보수성이 좋아집니다.

유명한 프레임워크 예시

  • Django, Ruby on Rails (서버 사이드 웹 프레임워크)
  • Vue.js, React, Angular (프론트엔드 프레임워크)
  • Spring, Nestjs (백엔드 프레임워크)
  • Flutter, React Native (모바일 앱 프레임워크)

프레임워크 vs 라이브러리, 무엇이 다를까?

둘의 가장 큰 차이는 바로 “제어권”에 있습니다.

라이브러리를 사용할 때는 개발자가 어떤 라이브러리 함수를 언제, 어떻게 호출할지 결정합니다. 반면 프레임워크에서는 제어 흐름이 역전되어, 프레임워크가 개발자가 작성한 코드를 적절한 시점에 실행하죠.

쉽게 말해, 당신이 라이브러리를 이용할 때는 당신이 주도권을 쥐고 있지만, 프레임워크 안에서는 프레임워크의 규칙을 따라야 합니다.

아래 비유가 이해에 도움이 되실 거예요.

  • 라이브러리 활용하기 👉🏻 당신이 요리사가 되어 필요한 재료(함수)를 골라 써서 원하는 음식 만들기
  • 프레임워크 사용하기 👉🏻 프레임워크라는 요리학원에 입학해 정해진 커리큘럼에 따라 요리 배우기

뭘 써야 할까요? 프레임워크 vs 라이브러리

프로젝트 성격, 범위, 요구사항에 따라 프레임워크와 라이브러리 중 선택이 달라질 수 있습니다.

프레임워크가 적합한 경우

  • 어떤 유형의 앱을 만들지 뚜렷이 정해진 경우 (웹, 모바일 앱 등)
  • 개발 팀원들이 동일한 코딩 관례를 따르길 원할 때
  • 빠른 개발 속도와 높은 생산성이 필요할 때
  • 코드 품질과 일관성 유지가 중요한 대규모 프로젝트

라이브러리를 선택하는 게 나은 상황

  • 기존 코드베이스에 새로운 기능 추가 시
  • 프로젝트 특성상 맞는 프레임워크가 없는 경우
  • 작은 규모의 스크립트나 유틸리티 개발 시
  • 極 높은 자유도와 유연성이 필요할 때

라이브러리와 프레임워크, 함께 써야 제맛!

실제 개발 현장에서는 프레임워크와 라이브러리를 함께 사용하는 경우가 많습니다. 예컨대 React 프레임워크로 사용자 인터페이스를 구축하면서, 상태 관리를 위해 Redux 라이브러리를 활용하는 식이죠.

이렇듯 프레임워크와 라이브러리는 개발자의 니즈에 따라 선택의 대상이 되기도 하고, 함께 쓰일 때 시너지를 발휘하기도 합니다.

따라서 둘 중 하나만 고집할 게 아니라, 프로젝트의 성격과 상황에 맞게 자유자재로 취사선택하고 조합하는 것이 현명한 개발자의 자세일 거예요.

이 글이 프레임워크와 라이브러리의 개념을 이해하고 구분하는 데 도움이 되셨길 바랍니다.

개발 입문 단계에서 많은 분들이 혼란스러워하는 부분인데, 막상 각각의 정의와 특징을 알고 나면 그리 어렵지 않죠?

개발 공부를 하다 보면 처음 듣는 용어들이 자주 등장해 당황스러울 때가 있어요. 그럴 때마다 이번 포스트처럼 차분히 읽어보고 정리하는 습관을 들이시면 큰 힘이 될 거예요.

앞으로도 개발 여정에 유익한 안내자가 되어 드리도록 하겠습니다. 응원하겠습니다!

더 궁금한 점이 있거나, 이해가 잘 안 되는 부분이 있다면 꼭 댓글로 알려주세요. 여러분의 피드백은 저에겐 큰 motivation이 됩니다 🙂

오늘도 happy coding 하세요! 감사합니다.

[2024] WebtoB 서버에서 CORS 설정하기: 완벽 가이드

webTobe

Webtobe 서버는 대한민국에서 주로 사용되는 웹서버로, 자체적인 설정 방식을 통해 CORS (Cross-Origin Resource Sharing) 정책을 설정할 수 있습니다. 이 글에서는 Webtobe 서버에서 CORS를 설정하는 구체적인 방법을 단계별로 안내해드리겠습니다. 이 설정을 통해 다른 도메인의 웹 애플리케이션에서 자원을 안전하게 요청할 수 있게 됩니다.

WebtoB 서버의 cors 설정하기

1. 설정 파일 수정

WebtoB 서버의 설정은 주로 server.xml 파일이나 다른 관련 설정 파일에서 관리됩니다. 먼저, 서버의 설정 파일을 찾아 열어주세요.

2. CORS 필터 추가

다음은 WebtoB 서버에 CORS를 설정하기 위한 필터를 추가하는 방법입니다. 설정 파일에서 원하는 웹 애플리케이션의 <Context> 섹션에 아래 필터 설정을 추가합니다.

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>com.thirautech.webtobe.CorsFilter</filter-class>
    <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>https://example.com</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET, POST, HEAD, OPTIONS</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Content-Type, Authorization</param-value>
    </init-param>
    <init-param>
        <param-name>cors.exposed.headers</param-name>
        <param-value>Some-Custom-Header</param-value>
    </init-param>
    <init-param>
        <param-name>cors.support.credentials</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>cors.preflight.maxage</param-name>
        <param-value>1800</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

이 설정은 다음을 지정합니다:

  • cors.allowed.origins: 허용할 출처
  • cors.allowed.methods: 허용할 HTTP 메소드
  • cors.allowed.headers: 허용할 헤더
  • cors.support.credentials: 자격 증명 정보 지원 여부
  • cors.preflight.maxage: 사전 요청 캐싱 시간

3. 서버 재시작

모든 설정 변경 후, WebtoB 서버를 재시작해야 새 설정이 적용됩니다. 서버 재시작은 서버 관리 툴을 통하거나 명령어를 사용하여 진행할 수 있습니다.

추가 사항

  • WebtoB 서버의 버전에 따라 설정 방법이나 필터 클래스 이름이 다를 수 있습니다. 사용 중인 서버의 문서를 참고하거나 기술 지원에 문의하여 정확한 정보를 확인하세요.
  • CORS 정책은 보안을 강화하는 중요한 설정입니다. 필요에 따라 특정 도메인에만 CORS를 제한적으로 허용하는 것이 바람직합니다.

이 가이드를 통해 WebtoB 서버에서 CORS 설정을 완료하고, 보다 안전하게 자원을 공유할 수 있게 되기를 바랍니다.

WebToB doc

linux(CentOS Stream 9)에 SVN 설치하기

svn

안녕하세요, 여러분! 오늘은 linux CentOS Stream 9에서 Subversion (SVN) 리포지토리를 설정하는 방법에 대해 쉽게 알아보겠습니다. 먼저, Subversion이라는 것이 무엇인지 간단히 소개하겠습니다.

Subversion(SVN)이란?

Subversion은 코드, 문서 등의 버전 관리를 도와주는 시스템입니다. 여러분이 작성한 코드나 문서의 변경 내용을 저장하고, 필요할 때 이전 버전으로 돌아갈 수 있게 해줍니다. 그리고 여러 사람이 동시에 작업할 때도 변경 사항을 쉽게 병합할 수 있게 도와줍니다.

준비물

  • CentOS Stream 9이 설치된 서버 혹은 컴퓨터
  • 인터넷 연결

자, 그럼 시작해볼까요?

1. linux에 Subversion 설치하기

먼저, Subversion을 설치해야 합니다. CentOS에서는 dnf 라는 패키지 관리자를 사용하여 손쉽게 설치할 수 있습니다.

sudo dnf install subversion

2. ‘svn’ 사용자 생성하기

Subversion 리포지토리를 관리할 사용자인 ‘svn’을 생성합니다.

sudo useradd svn 
sudo passwd svn

3. 홈 디렉토리에서 리포지토리 생성하기

이제 ‘svn’ 사용자의 홈 디렉토리에 리포지토리를 생성합니다.

sudo -u svn svnadmin create /home/svn/repo
5 6

4. svnserve를 사용하여 리포지토리에 접근하기

Subversion은 여러 가지 접근 방법을 제공하는데, 그 중 가장 간단한 svnserve 툴을 사용해 보겠습니다.

sudo -u svn svnserve -d -r /home/svn/repo
6 5

5. 보안 및 인증 설정하기

보안은 항상 중요합니다. 여러분의 리포지토리를 안전하게 보호하기 위해 간단한 인증 절차를 설정해 보겠습니다.

sudo vi /home/svn/repo/conf/passwd
7 3

사용자에 jjl / jjl 를 추가하였습니다.

다음으로 아래 파일을 열어 아래와 같이 설정하세요.

sudo vi /home/svn/repo/conf/svnserve.conf 
8 2

다음 파일을 열어 다음과 같이 수정하세요.

sudo vi /home/svn/repo/conf/authz
10 3
[groups]
dev = jjl

[/]
@dev =rw
* = r
9 3

dev라는 그룹에 jjl을 포함시키고 모든 경로에 dev 그룹에 r 읽기, w 쓰기 권한을 다른 모든 사용자에게는 r 읽기 권한을 부여합니다.

12

마지막으로 svn을 연결하여 사용하는 모습입니다.

이로써 간단한 Subversion 리포지토리 설정이 완료되었습니다. SVN은 프로젝트의 크기에 상관없이 누구나 사용할 수 있는 강력한 버전 관리 시스템입니다. 오늘 배운 내용을 통해 여러분의 프로젝트 관리에 Subversion을 활용해 보세요. 다음에는 SVN의 다양한 기능과 활용 방법에 대해 더 자세히 알아보도록 하겠습니다.

여러분의 프로젝트가 성공적으로 진행되길 바랍니다! 😄

[wooyung’s IT 블로그]

[2023] Visual Studio Code 설치하기

안녕하세요, 여러분! 오늘은 프로그래머로서 필수 툴이라 할 수 있는 Visual Studio Code 설치 방법에 대해 함께 알아보려고 합니다. Visual Studio Code는 Microsoft에서 개발한 코드 편집기로, 각종 프로그래밍 언어를 지원하며 다양한 확장 기능 덕분에 더욱 편리하게 코딩할 수 있습니다. 지금부터 설치 방법을 단계별로 따라와 주세요!

Visual Studio Code 설치

1. 공식 홈페이지 방문

  • 먼저, VSCode의 공식 홈페이지 https://code.visualstudio.com/로 이동합니다.
  • 화면 중앙의 큰 ‘Download for Windows’ 버튼이 보이실 텐데, 여러분의 운영체제에 맞게 버튼 이름이 변경될 수 있습니다. (예: macOS, Linux 등)
Visual Studio Code

2. 다운로드 및 설치

  • 운영체제에 맞는 버튼을 클릭하여 설치 파일을 다운로드 받습니다.
  • 다운로드한 파일을 실행합니다.
  • ‘설치’ 버튼을 클릭 후, 나오는 화면의 안내에 따라 진행하면 됩니다. (기본 설정으로도 충분합니다!)
  • 설치가 완료되면 ‘완료’ 버튼을 클릭하고 VSCode를 실행해봅니다.

3. 기본 설정 살펴보기

VSCode를 처음 실행하면 여러분을 위한 기본 설정과 인터페이스를 볼 수 있습니다.

  • 왼쪽 사이드바에는 여러 아이콘들이 있습니다. 파일 탐색기, 검색, 소스 제어, 확장 기능, 디버그 등의 기능을 사용할 수 있습니다.
  • 처음에는 어색하겠지만, 사용하면서 익숙해질 것입니다!

4. 확장 기능 설치

VSCode의 가장 큰 장점 중 하나는 다양한 확장 기능을 통해 개인의 코딩 환경을 맞춤 설정할 수 있다는 것입니다.

  • 왼쪽 사이드바의 네모 상자 아이콘(확장)을 클릭합니다.
  • 상단의 검색창에 여러분이 필요한 확장 기능의 이름을 입력합니다. (예: Python, JavaScript, Live Server 등)
  • 원하는 확장 기능을 찾아 ‘설치’를 클릭합니다.
9

5. 테마 및 폰트 변경하기

  • VSCode의 외관을 변경하고 싶다면, 확장 기능 탭에서 ‘Theme’ 또는 ‘Font’를 검색하여 원하는 테마나 폰트를 설치할 수 있습니다.
  • 설치 후, Ctrl + K, Ctrl + T를 순서대로 눌러 테마를 변경할 수 있습니다.

6. 단축키 활용하기

  • VSCode는 다양한 단축키를 제공합니다. 이를 통해 훨씬 더 빠르게 작업을 할 수 있습니다.
  • ‘File’ 메뉴 > ‘Preferences’ > ‘Keyboard Shortcuts’를 통해 단축키를 확인하고, 필요에 따라 설정을 변경할 수 있습니다.
10

7. 마무리

VSCode 설치부터 기본 설정까지 간단히 살펴보았습니다. 처음에는 익숙하지 않겠지만, 사용하다 보면 여러분만의 최적의 코딩 환경을 구축할 수 있을 것입니다. 여러분의 코딩 생활이 VSCode와 함께 더욱 풍요롭게 진행되길 바랍니다!

[wooyung’s IT 블로그]

[2023] Maven 프로젝트에 Nexus를 설정하는 방법

Maven 프로젝트에 Nexus를 설정하는 방법

안녕하세요, 오늘은 Maven 프로젝트에 Nexus를 설정하는 방법에 대해 다루려고 합니다. Nexus Repository Manager는 소프트웨어 컴포넌트의 중앙 저장소 역할을 하는 오픈 소스 도구로, 라이브러리, 패키지, 플러그인 등 다양한 종류의 콘텐츠를 한 곳에서 관리하고 배포하는데 도움이 됩니다.

시작전에 Nxus가 설치되어있지 않다면 아래 글을 확인해주세요.

[2023] 리눅스에서 Nexus 설치 및 설정

우선, Nexus Repository Manager에 접속하여 시작해봅시다.

Maven 프로젝트에 Nexus를 설정하는 방법

Nexus 에 액세스

웹 브라우저를 열고 Nexus Repository Manager가 설치된 서버의 주소에 접속합니다. 예를 들어, 로컬에서 실행되는 경우 http://localhost:8081/로 접속하면 됩니다.

새로운 저장소 설정

1, ‘서버 관리 및 구성’ 사이드바에서 ‘저장소’를 클릭합니다.

2. ‘저장소 생성’을 클릭합니다.

3. Maven 패키지를 호스팅할 새 리포지토리에 대해 ‘maven2 (호스트됨)’ 유형을 선택합니다. 이 선택은 프로젝트의 빌드 시스템에 따라 달라질 수 있습니다.

4. 리포지토리 이름을 지정하고 필요에 따라 기타 설정을 구성한 다음 ‘리포지토리 생성’을 클릭합니다.

빌드 도구에 Nexus Repository Manager 설정하기

예를 들어 Maven을 사용하는 경우, settings.xml 파일에 Nexus Repository Manager 설정을 추가해야 합니다.

<servers>
  <server>
    <id>nexus</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>

그리고 pom.xml 파일에도 Nexus Repository Manager를 가리키도록 <distributionManagement> 태그를 추가합니다.

<distributionManagement>
  <repository>
    <id>nexus</id>
    <url>http://localhost:8081/repository/maven-releases/</url>
  </repository>
  <snapshotRepository>
    <id>nexus</id>
    <url>http://localhost:8081/repository/maven-snapshots/</url>
  </snapshotRepository>
</distributionManagement>

다른 빌드 도구, 예를 들어 Gradle을 사용한다면 도구에 맞는 방식으로 설정을 변경해야 합니다.

eGovFramework와의 통합

이제 Nexus Repository Manager가 설정되었으니, 이를 eGovFramework 프로젝트의 모든 종속성에 대한 중앙 저장소로 사용할 수 있습니다. 

이를 위해 프로젝트의 빌드 구성이 Nexus Repository Manager에서 종속 항목을 가져오도록 설정되어 있는지 확인하시면 됩니다.

Nexus Repository Manager를 사용하는 것은 시스템 관리 작업에 어느 정도 익숙해야 하며, 보안 역시 중요한 요소입니다. 

Nexus Repository Manager가 인터넷에 공개된 경우 잠재적인 공격 벡터가 될 수 있으므로 적절하게 보안 설정을 관리해야 합니다.

이상으로 Maven 프로젝트에 Nexus를 설정하는 방법에 대해 알아보았습니다.

[우영이네]

[2023] Linux Subversion(SVN) 설치 및 구성 하기

Linux Subversion

리눅스 환경에서 소스 코드 버전 관리 시스템인 Subversion을 설치하고 설정하는 방법을 다루는 이 포스트에서는 VisualSVN과 같은 윈도우 전용 서버 솔루션이 아닌, Linux Subversion 설치 방법에 대해 자세히 설명하겠습니다.

Linux Subversion 설치 과정

1. Linux Subversion 설치

먼저 리눅스 시스템에서 Subversion을 설치해야 합니다. Subversion은 SVN라고도 불리며, 개발자들이 소스 코드의 이전 버전을 효과적으로 관리할 수 있도록 돕는 도구입니다.

리눅스에서는 다음 명령어를 이용하여 Subversion을 설치할 수 있습니다.

sudo dnf install subversion mod_dav_svn

여기서 ‘mod_dav_svn’은 무엇일까요? 

이는 Apache HTTP 서버 모듈로, HTTP 및 HTTPS 프로토콜을 통해 Subversion 지원을 제공합니다. 

이 모듈은 Subversion 패키지의 일부로, Apache HTTP 서버를 이용하여 Subversion 서버를 설정하는 데 필수적입니다.

  • mod: Apache HTTP Server의 기능은 모듈을 사용하여 확장됩니다.
  • dav: “Distributed Authoring and Versioning”를 나타내는 HTTP 프로토콜의 확장입니다. 이는 클라이언트가 웹 콘텐츠 작성 작업을 원격으로 수행할 수 있게 해줍니다.
  • svn: 이 모듈이 Subversion을 위한 것임을 나타냅니다.

Apache가 아직 설치되지 않았다면, sudo dnf install httpd를 사용하여 Apache를 설치해야 합니다.

2. SVN 저장소 생성 및 설정

다음으로, Subversion 저장소를 생성하고, 해당 저장소에 대한 액세스 권한을 설정해야 합니다.

sudo mkdir -p /var/www/svn
sudo svnadmin create /var/www/svn/repo
sudo chown -R apache:apache /var/www/svn/repo

위의 명령어를 통해 ‘/var/www/svn’ 디렉토리를 생성하고, 그 안에 ‘repo’라는 이름의 SVN 저장소를 만들었습니다. 그리고 ‘chown’ 명령어를 이용해 해당 디렉토리의 소유권을 Apache 서버에 부여했습니다.

이후, Apache 설정 파일을 편집하여 SVN 저장소에 웹 기반 접근이 가능하도록 설정해야 합니다.

sudo vi /etc/httpd/conf.d/subversion.conf

이 명령어는 Apache의 설정 파일인 ‘subversion.conf’를 열어 수정할 수 있게 합니다. 아래와 같이 입력 후 저장하고 종료합니다.

<Location /svn>
   DAV svn
   SVNPath /var/www/svn/new_repository
   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/svn-users
   Require valid-user
</Location>
LoadModule dav_svn_module modules/mod_dav_svn.so
3. 사용자 생성 및 추가

Subversion 사용자를 생성하고 추가하려면 다음의 명령어를 사용합니다:

 등록
sudo htpasswd -cm /etc/svn-users username

추가
sudo htpasswd -m /etc/svn-users username

첫 번째 명령어는 SVN 사용자를 생성하고, 두 번째 명령어는 기존 사용자를 SVN 사용자 목록에 추가합니다.

4. 방화벽 설정

다른 컴퓨터에서 SVN 서버에 접근하려면, 방화벽에서 HTTP(80) 포트와 HTTPS(443) 포트를 허용해야 합니다.

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=public --list-ports
5. 커밋 권한 설정

최종적으로, 저장소에 대한 사용자의 커밋 권한을 설정해야 합니다. 이를 위해 ‘authz’ 파일을 수정합니다.

sudo nano /var/www/svn/authz

[groups]
devs = john, jane, jill

[/]
@devs = rw

*= r

여기서 ‘devs’는 사용자 그룹을 나타내며, ‘john’, ‘jane’, ‘jill’은 해당 그룹에 속한 사용자입니다. 그룹 ‘devs’는 읽기/쓰기(rw) 권한을 가지고, 모든 다른 사용자(‘*’)는 읽기(r) 권한만 가집니다.

6. 추가 포트 변경

필요에 따라 Apache의 기본 리스닝 포트를 변경할 수도 있습니다. 기본적으로 80번 포트를 사용하지만, 이를 다른 포트로 변경하려면 Apache의 설정 파일을 편집해야 합니다.

sudo vi /etc/httpd/conf/httpd.conf

이후, ‘Listen 80’을 찾아 원하는 포트 번호로 변경합니다. 예를 들어, ‘Listen 3690’으로 변경할 수 있습니다. SELinux가 활성화된 시스템에서는 해당 포트에 대한 접근을 차단하므로, ‘sudo setenforce 0’를 사용하여 SELinux를 임시로 비활성화해야 할 수도 있습니다.

이상으로, 리눅스에서 Subversion을 설치하고 설정하는 방법에 대해 알아보았습니다. 이제 외부에서 TortoiseSVN과 같은 클라이언트를 사용하여 SVN 서버에 접근할 수 있게 되었습니다.

7. 마무리 및 트러블슈팅

추가적으로, 모든 변경사항이 적용되도록 Apache 서버를 재시작해야 합니다. 이는 sudo systemctl restart httpd 명령어를 통해 수행할 수 있습니다.

이렇게 하면, Subversion을 사용하여 코드의 버전 관리를 시작할 준비가 완료된 것입니다.

혹시라도 문제가 발생할 경우, 대부분의 문제는 사용 권한 문제나 방화벽 설정 문제에서 비롯된다는 것을 알아두시는 것이 좋습니다. 이러한 문제들은 대게 적절한 권한 할당이나 방화벽 포트 설정을 통해 해결할 수 있습니다.

만약 설치 중에 문제가 발생했다면, 오류 메시지를 주의 깊게 확인하고 해당 메시지를 기반으로 문제를 해결해보세요. 또한, 서버 로그를 확인하여 더 많은 정보를 얻을 수도 있습니다. Apache 서버의 로그는 일반적으로 ‘/var/log/httpd/’ 디렉토리에 위치해 있습니다.

Linux Subversion을 사용하면, 여러 개발자가 동일한 코드 베이스에서 작업할 때 발생할 수 있는 문제를 효과적으로 관리할 수 있습니다. 각 개발자는 코드의 변경 사항을 추적하고, 필요한 경우 이전 버전으로 롤백하는 등의 작업을 수행할 수 있습니다. 이는 팀 내의 작업 효율성을 높이고, 프로젝트의 성공에 크게 기여할 수 있습니다.

마지막으로, 이 가이드가 Linux Subversion을 설치하고 구성하는 데 도움이 되기를 바랍니다. 다양한 플랫폼과 환경에서 개발 작업을 수행하는 데 Linux Subversion이 얼마나 유용한 도구인지에 대해 알게 되셨기를 바라며, 그 결과로 여러분의 개발 능력이 더욱 향상되기를 기대합니다.

[우영이네]

[wooyung’s IT 블로그]

JDK 1.8 설치 및 환경 변수 설정

환경 변수 설정

안녕하세요, 이번 포스트에서는 자바 개발을 위해 필요한 JDK 1.8(Java Development Kit) 설치 방법 및 환경 변수 설정에 대해 알아보겠습니다.

Step1: JDK 다운로드

우리의 첫 번째 단계는 Oracle 사의 공식 JDK 다운로드 페이지(링크)로 이동하는 것입니다. 이 페이지에서는 운영 체제별로 JDK를 다운로드 할 수 있습니다. 사용자 약관에 동의한 후, 운영 체제에 맞는 JDK 설치 파일을 선택하여 다운로드 받습니다. 예를 들어, Windows 사용자라면 “Windows x64” 다운로드 링크를 선택하시면 됩니다.

Step2: JDK 설치

다운로드한 설치 파일을 실행하여 JDK 설치를 진행합니다. 설치 과정에서는 기본 설정에 따라 진행하는 것이 일반적입니다. 즉, JDK 설치 경로 변경 없이 “Next”를 선택하여 설치를 계속합니다.

Step3: 환경 변수 설정

JDK 설치가 완료되면, 환경 변수를 설정합니다. 환경 변수 설정은 JDK를 사용하기 위해 필수적입니다. 이것은 운영 체제가 Java 애플리케이션을 실행할 때 참조하는 정보입니다.

Windows 사용자의 경우, 다음과 같이 진행합니다:

1. “제어판 > 시스템 및 보안 > 시스템”으로 이동
2. “고급 시스템 설정” 클릭
3. “고급” 탭에서 “환경 변수” 버튼 클릭
4. “시스템 변수” 섹션에서 “새로 만들기”를 클릭하여 “변수 이름: JAVA_HOME, 변수 값: JDK 설치 경로”를 추가합니다.
5. “시스템 변수” 목록에서 “Path” 변수를 찾아 선택한 후 “편집”을 클릭합니다.
6. “변수 값 편집” 창에서 “새로 만들기”를 클릭하여 “%JAVA_HOME%\bin” 경로를 추가합니다.

Step4: 설치 확인

모든 설정이 끝난 후, 명령 프롬프트나 터미널 창에서 “java -version” 명령을 입력하여 JDK 1.8 버전이 올바르게 설치되었는지 확인합니다.

이제 JDK 1.8이 설치되어 Java 프로그램을 개발하고 실행할 수 있습니다. 이번 포스트가 Java 개발 환경 구축에 도움이 되었기를 바랍니다. 다음 포스트에서 뵙겠습니다!

[우영이네]

[wooyung’s IT 블로그]

[2023] 리눅스에서 Nexus 설치 및 설정

Nexus 설치

안녕하세요! 오늘은 소프트웨어를 쉽게 배포할 수 있도록 도와주는 Nexus 설치 및 설정 방법에 대해 소개하려 합니다. 

Nexus는 저장소 관리자로서, 종속성을 프록시, 수집, 관리함으로써 JAR 파일들을 지속적으로 관리할 수 있게 해줍니다. 

내부적으로 Nexus에 아티팩트를 게시하도록 빌드를 구성하면, 다른 개발자들이 해당 아티팩트를 사용할 수 있게 됩니다. 

이 포스트는 리눅스에서 Nexus 설치하고 설정는 방법에 대한 가이드입니다.

Step1: Java 8 설치

Nexus를 실행하기 위해서는 리눅스 서버에 Java 8이상이 설치되어 있어야 합니다. 패키지 목록 업데이트를 한 후, Java 8을 설치해보겠습니다.

sudo dnf update -y
sudo dnf install java-1.8.0-openjdk-devel -y

설치가 완료된 후, 다음 명령어를 실행하여 Java 버전을 확인합니다.

# java -version

또한, 설치 경로를 알고 싶다면 다음 명령어를 실행해보세요.

<em># dirname $(dirname $(readlink -f $(which javac)))</em>
Step2: Nexus 설치

다음으로 Nexus 설치 파일을 가져와야 합니다. 저는 Sonatype 홈페이지에서 FreeOSS 버전을 다운 받아 리눅스 서버에 옮겼습니다.

# Nexus 파일을 /opt 위치로 이동하기
cp /파일경로 /opt

# 압축 해제
sudo tar -xvf latest-unix.tar.gz

# 파일명 변경
mv /opt/latest-unix /opt/nexus
Step3: Nexus 사용자 생성

Nexus를 안전하게 운영하기 위해 별도의 사용자를 생성하겠습니다. ‘nexus’라는 이름의 사용자를 생성하고 해당 사용자를 /opt/nexus 디렉토리의 소유자로 지정합니다.

sudo useradd -r -m -U -d /opt/nexus -s /bin/bash nexus
sudo chown -R nexus:nexus /opt/nexus
sudo chown -R nexus:nexus /opt/sonatype-work
Step4: Nexus를 서비스로 구성

Nexus를 시스템 서비스로 등록하면, 시스템 부팅 시 자동으로 Nexus가 실행되며, 필요에 따라 서비스를 시작/중지할 수 있습니다.

sudo vi /etc/systemd/system/nexus.service

그 다음, 아래의 내용을 입력하고 저장합니다.

[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
LimitNOFILE=65536
User=nexus
Group=nexus
ExecStart=/opt/nexus/bin/nexus start
ExecStop=/opt/nexus/bin/nexus stop
Restart=on-abort

[Install]
WantedBy=multi-user.target
Step5: Nexus 시작 및 확인

설정한 Nexus 서비스를 시작하고, 상태를 확인해봅시다.

sudo systemctl daemon-reload
sudo systemctl start nexus
sudo systemctl status nexus

Nexus가 정상적으로 작동하면 서비스를 시스템 부팅 시 자동으로 시작되도록 설정합니다.

sudo systemctl enable nexus
Step6: Nexus 접속

Nexus는 기본적으로 8081 포트에서 동작합니다. 이 포트를 방화벽에서 열어주어야 외부에서 Nexus에 접속할 수 있습니다.

sudo firewall-cmd --permanent --add-port=8081/tcp
sudo firewall-cmd --reload

이제 웹 브라우저를 통해 Nexus에 접속해보세요!

이상으로 Nexus Repository Manager의 설치 및 설정에 대한 가이드를 마치겠습니다. 이 포스트가 도움이 되었기를 바라며, 다음 포스트에서 뵙겠습니다!

[우영이네]

[wooyung’s IT 블로그]