Levelupsoft Inc. 소프트웨어 제품

회사의 코드를
남의 서버에 두지 않습니다

SSemRepo 는 회사가 직접 운영하는 코드 저장소입니다. 저장소·이슈·코드 리뷰·위키가 한 벌로 오고, 개발자는 쓰던 git 명령을 그대로 씁니다.

2
Git · Subversion 한 화면에
10
제품 화면 지원 언어
100%
우리 인프라 안

왜 자체 호스팅인가

코드를 맡기는 것은 회사를 맡기는 것입니다

외부 저장소는 빠르게 시작할 수 있습니다. 대신 제품의 설계와 이력, 누가 무엇을 언제 고쳤는지가 모두 남의 인프라에 쌓입니다.

가장 중요한 자산이 밖에 있습니다

소스는 회사가 만든 것의 전부입니다. 지우고 싶어도 우리가 지우는 것이 아니라 지워 달라고 요청하는 것이고, 백업이 어디까지 남는지는 약관이 정합니다.

망이 끊기면 개발이 멈춥니다

외부 접속이 막힌 사내망·공장·현장에서는 clone 한 번이 안 됩니다. 규정이 아니라 물리적으로 닿지 않는 곳이 있습니다.

감사에서 답할 것이 없습니다

금융·의료·공공 심사에서 "그 소스는 어디에 보관됩니까"라는 질문에, 외부 사업자의 약관을 내미는 것 말고 내놓을 답이 없습니다.

제품

저장소만 주고 끝나지 않습니다

코드를 담는 곳과 그 코드를 두고 이야기하는 곳이 따로 놀면, 결국 다른 도구를 하나 더 사게 됩니다. SSemRepo 는 셋을 한 벌로 냅니다.

01

저장소

git clone·push 가 HTTPS 로 그대로 됩니다. 브라우저에서 파일·커밋·차이를 읽고, 이관해 온 Subversion 저장소도 같은 화면에서 함께 읽습니다.

02

협업

이슈·마일스톤·라벨·담당자, 풀 리퀘스트와 코드 리뷰, 게시판과 위키. 프로젝트 하나 안에서 끝납니다.

03

운영

그룹과 권한, 가입 승인, 메일 알림과 서식, 사이트 로고와 백업까지 관리 화면에서 바꿉니다. 고치려고 다시 배포하지 않습니다.

기능

개발팀이 하루에 쓰는 것들

Git 저장소

HTTPS clone·push, 브랜치와 태그, 커밋 목록과 차이, 파일 읽기와 웹 편집, 포크.

Subversion 도 함께

이관해 온 svn 저장소의 리비전·파일·차이를 git 과 같은 화면에서 읽습니다. 옛 자산을 버리지 않아도 됩니다.

이슈와 마일스톤

라벨·담당자·마일스톤, 상위와 하위 이슈, 첨부와 댓글, 내가 볼 수 있는 것만 나오는 검색.

풀 리퀘스트

브랜치 사이 차이, 파일별 리뷰 댓글, 충돌 표시, 병합과 자동 닫기.

게시판과 위키

공지와 자료는 게시판에, 규칙과 설계는 위키에. 이슈와 같은 편집기와 같은 첨부를 씁니다.

10개 언어

제품 화면이 한국어·영어·일본어·중국어·독일어·러시아어·프랑스어·베트남어·인도네시아어·스페인어로 나옵니다.

화면

익숙한 자리에 익숙한 것이 있습니다

새 도구를 배우는 시간이 도입의 진짜 비용입니다. 화면은 개발자가 이미 아는 배치를 따릅니다 — 왼쪽에 프로젝트, 가운데에 일감, 위에 코드.

화면 설명

  • 왼쪽 목록은 내가 속한 프로젝트입니다. 비공개 프로젝트는 권한이 있는 사람에게만 보입니다.
  • 가운데는 이슈 목록입니다. 라벨·담당자·마일스톤으로 좁히고, 검색은 볼 수 있는 범위 안에서만 찾습니다.
  • 위쪽 탭이 코드·이슈·풀 리퀘스트·게시판·위키입니다. 프로젝트마다 어떤 탭을 쓸지 정합니다.

명령줄

화면에서 하는 일은 명령으로도 됩니다

사람이 눌러서 하는 일과 기계가 반복하는 일은 다릅니다. SSemRepo 는 전용 명령줄 도구를 함께 냅니다 — 스크립트에서 부르고, 빌드 뒤에 이어 붙이고, 코딩 에이전트에게 맡길 수 있습니다.

화면에 있는 것은 거의 다

이슈·게시판·위키·풀 리퀘스트·마일스톤·그룹·사이트 관리까지 명령으로 합니다. 결과는 사람이 읽는 표로도, 기계가 읽는 JSON 으로도 받습니다.

한 대에서 여러 계정

계정을 프로파일로 나눠 두고, 디렉터리마다 어느 계정으로 일할지 묶어 둡니다. 그 아래에서는 알아서 그 계정이 됩니다.

git 인증까지

git 자격 도우미로 붙어 push 할 때마다 비밀번호를 다시 묻지 않습니다. 저장한 비밀값은 그 기계에 묶여 암호화되어, 파일만 다른 기계로 옮기면 풀리지 않습니다.

코딩 에이전트가 쓰도록

AI 코딩 도구에 바로 물릴 수 있게 사용 지침을 함께 줍니다. 「이 버그를 이슈로 올려 줘」가 그대로 실행됩니다.

이 화면 설명

  • 프로젝트는 <소유자>/<이름> 으로 가리킵니다. 자주 쓰는 것은 기본값으로 정해 두고 생략합니다.
  • 만들면 번호를 돌려줍니다. 그 번호로 댓글을 달고 상태를 바꾸고 담당자를 붙입니다.
  • 조회도 같은 모양입니다. 목록을 좁히는 조건은 화면의 거르개와 같은 것을 씁니다.

구조

한눈에 보는 배치

브라우저와 git 클라이언트가 같은 주소로 들어옵니다. 웹 서버가 받아 Tomcat 에 넘기고, 이력은 PostgreSQL 에, 저장소 파일은 회사 디스크에 남습니다.

Levelupsoft Inc.개발자브라우저 · git · svn웹 서버HTTPS · 역방향 프록시SSemRepoJava 21 · Tomcat 11PostgreSQL이슈 · 권한 · 이력저장소 디스크git · svn · 첨부사내 메일SMTP 알림

다이어그램 설명

  • 왼쪽에서 오른쪽으로: 개발자 → 웹 서버 → SSemRepo → 저장소. 모든 화살표가 회사 경계 안에서 끝납니다.
  • 실선은 사람이 쓰는 길입니다. 브라우저 화면과 git clone·push 가 같은 443 포트로 들어옵니다.
  • 아래쪽 갈래는 파일입니다. 저장소와 첨부는 데이터베이스가 아니라 회사 디스크에 그대로 놓입니다 — 백업이 파일 복사입니다.
  • 점선은 알림입니다. 사내 SMTP 로만 나가고, 못 보내면 보냈다고 말하지 않습니다.
  • 바깥으로 나가는 화살표가 없습니다. 외부 접속이 막힌 망에서도 그대로 돕니다.

이관

쓰던 저장소를 그대로 옮깁니다

새로 시작하는 팀보다 이미 쌓인 팀이 많습니다. 지금 쓰는 도구에 있는 git·svn 저장소와 이슈·첨부를 옮기는 절차와 도구를 함께 드립니다.

데이터베이스

쓰던 도구의 데이터베이스에서 이슈·댓글·이력을 읽어 PostgreSQL 로 옮깁니다. 값을 문자열로 바꿔치기하지 않고 드라이버로 읽어 그대로 넣습니다.

저장소와 첨부

git·svn 저장소와 업로드 파일은 디렉터리째 복사합니다. 저장소 자체는 어느 도구에서 왔든 표준이라 손볼 것이 없습니다.

계정과 권한

사용자·그룹·역할이 함께 옵니다. 비밀번호 방식이 맞으면 그대로 통해 전원이 다시 가입할 필요가 없습니다.

나란히 두고 확인

옛 시스템을 끄기 전에 같은 자료를 두 화면에서 비교합니다. 되돌릴 자리를 남겨 두고 옮깁니다.

이관 규모와 일정은 저장소 개수와 디스크 크기로 가늠합니다. 문의하시면 현재 환경을 함께 봐 드립니다.

도입

설치에서 첫 push 까지, 네 단계

  1. 1

    서버 올리기

    도커 두 벌 — 애플리케이션과 PostgreSQL. 저장소가 놓일 디스크만 정해 주면 됩니다.

  2. 2

    스키마와 첫 관리자

    표를 만들고 초기 자료를 넣은 뒤 관리자 계정을 만듭니다. 문서에 적힌 명령을 그대로 칩니다.

  3. 3

    도메인과 인증서

    회사 도메인을 물리고 HTTPS 를 세웁니다. git 이 지나가므로 본문 크기 제한만 풀어 둡니다.

  4. 4

    팀 들이기

    가입 방식을 정하고 그룹과 프로젝트를 만듭니다. 이관이 필요하면 그 자리에서 옛 자료를 올립니다.

기술

오래 고칠 수 있게 만들었습니다

Java 21 · Tomcat 11

흔한 자바 서버 하나면 돕니다. 운영팀이 이미 아는 방식으로 띄우고 재기동합니다.

PostgreSQL · 순수 JDBC

무거운 매핑 계층 없이 SQL 을 직접 씁니다. 느린 조회의 원인을 쿼리에서 바로 찾습니다.

Svelte 5 화면

첫 화면이 가볍게 뜨도록 받는 양을 줄였습니다. 글꼴도 사내망에서 직접 내려줍니다.

1,700건이 넘는 자동 검사

실제 서버에 붙어 프로젝트를 만들고 push 하고 PR 을 올리는 것까지 돌려 확인합니다.

SSemRepo 도입을 검토 중이신가요?

팀 규모와 지금 쓰는 저장소를 알려 주시면 맞는 구성을 제안드립니다. 시험 설치와 이관도 도와드립니다.

문의하기

halo@levelupsoft.com+82 10-8472-4070

Levelupsoft Inc.