유레카엔터프라이즈
사업철학업무방식AI 워크플로우기술 스펙포트폴리오
유레카엔터프라이즈 주식회사

기술과 책임감으로 신뢰를 쌓아가는 소프트웨어 개발 파트너

대표
한장현
사업자등록번호
888-86-01529

Navigation

Home사업철학업무방식AI 워크플로우기술 스펙포트폴리오

Contact

andy@ureca.im02-6736-0701

#705, Pine Square Bldg. A,
22 Magokjungang 4-ro,
Gangseo-gu, Seoul, Korea

View on Map

© 2026 유레카엔터프라이즈. All rights reserved.

Building with purpose

포트폴리오 목록
웹사이트모바일 앱
2025.07 — 진행중

티끌티끌

교육자를 위한 티칭 툴 큐레이션 및 커뮤니티 플랫폼

AWSNext.jsFlutterNest.js

고객사의 요청으로 링크는 제공되지 않습니다

프로젝트 개요

티끌(Teachle)은 교육자들을 위한 종합 플랫폼으로, 티칭 툴 큐레이션과 교육 커뮤니티 기능을 제공합니다. 선생님들이 수업에 활용할 수 있는 다양한 교육 도구를 카테고리별로 탐색하고, 즐겨찾기로 관리하며, 동료 교사들과 교육 노하우를 공유할 수 있는 통합 솔루션입니다.

프로젝트는 멀티 모듈 아키텍처를 기반으로 사용자 앱과 관리자 대시보드를 분리하여 운영하며, Spring Boot 3.x와 Kotlin을 활용한 현대적인 백엔드 시스템으로 구축되었습니다.


서비스 흐름도


주요 기능

1. 티칭 툴 큐레이션 시스템

  • 계층형 카테고리 구조로 800개 이상의 교육 도구 분류 및 제공. 과목-단원-세부도구 같은 3단계 이상의 분류 체계를 지원하며, 각 툴은 홈페이지 링크, 다운로드 URL, 참고 자료, 썸네일 이미지 등의 메타데이터를 포함합니다.
  • 키워드 기반 툴 검색 및 다중 카테고리 필터링. QueryDSL 동적 쿼리를 통해 복잡한 검색 조건을 조합할 수 있으며, 즐겨찾기 여부와 카테고리를 동시에 필터링하여 개인화된 검색 결과를 제공합니다.
  • 개인화된 즐겨찾기 기능으로 자주 사용하는 툴 빠른 접근. 사용자별로 무제한 즐겨찾기를 관리할 수 있으며, 마이페이지에서 한눈에 모아볼 수 있습니다.
  • 사용자 제안 시스템을 통한 신규 툴 발굴 및 DB 확장. 선생님들이 직접 새로운 교육 도구를 제안하면 관리자가 검토 후 승인하여 플랫폼 데이터베이스를 지속적으로 확장합니다.

2. 교육 커뮤니티

  • 익명/실명 선택 가능한 게시글 작성 (태그, 첨부파일 지원). 교사들이 민감한 교육 이슈는 익명으로, 수업 자료 공유는 실명으로 게시할 수 있어 자유로운 의견 교환과 신뢰성을 동시에 확보합니다.
  • 게시글 좋아요, 댓글 기능으로 교사 간 소통 활성화. 유용한 수업 노하우에 좋아요를 누르고 댓글로 추가 질문이나 경험을 나누며, 교사 네트워크를 형성합니다.
  • 조회수 추적 및 인기 게시글 노출. 많이 조회되고 좋아요를 받은 게시글을 우선 노출하여 양질의 콘텐츠를 쉽게 발견할 수 있도록 합니다.

3. 선생님 인증 시스템

  • 일반 회원과 선생님 회원 구분 관리. 선생님 인증을 받은 사용자만 실명 게시글 작성과 프로필 공개가 가능하여 커뮤니티 신뢰도를 높입니다.
  • 선생님 프로필(자기소개, 연락처 공개 여부) 등록 및 관리. 담당 과목, 경력, SNS 계정 등을 프로필에 등록하여 교사 간 네트워킹을 지원하고, 연락처 공개 여부를 선택적으로 설정할 수 있습니다.
  • 관리자 승인 기반 선생님 인증 프로세스. 교원 증명서나 재직증명서를 제출하면 관리자가 검토 후 승인하는 2단계 검증 절차로 허위 가입을 방지합니다.

4. 관리자 대시보드

  • JWT 기반 관리자 인증 및 권한 관리. 관리자 전용 Bearer Token을 발급받아 모든 API 호출에 인증 헤더를 포함하며, 무상태 인증으로 수평 확장에 유리합니다.
  • 회원, 게시글, 댓글, 툴, 카테고리 통합 관리. 단일 대시보드에서 모든 리소스를 CRUD할 수 있으며, Swagger UI로 API 스펙을 즉시 확인하고 테스트할 수 있습니다.
  • 신고 게시글 처리 및 회원 정지(Ban) 기능. 부적절한 게시글을 신고받으면 관리자가 검토 후 삭제하거나 작성자를 일시 정지시켜 커뮤니티 질서를 유지합니다.
  • 약관 관리 및 회원별 동의 이력 추적. 서비스 약관과 개인정보 처리방침을 버전별로 관리하고, 회원이 언제 어떤 버전에 동의했는지 이력을 저장하여 법적 분쟁에 대비합니다.

플랫폼 구성

모듈별 역할

모듈포트역할주요 기술
domain-엔티티 및 비즈니스 모델 정의JPA, QueryDSL
core-공통 유틸리티, JWT, 예외 처리JWT, Validation
client-app8081사용자 API 서버Spring Security, Swagger
admin-app8082관리자 API 서버Spring Security, Swagger
gateway8080API 게이트웨이 및 라우팅Spring Cloud Gateway

기술적 선택과 이유

멀티 모듈 아키텍처

도메인 모듈을 분리하여 Client/Admin 앱 간 엔티티와 비즈니스 로직을 공유하고, 각 서비스의 독립적인 배포와 확장을 가능하게 했습니다. Core 모듈을 통해 JWT 인증, 예외 처리, 페이지네이션 등 공통 기능을 중앙화하여 코드 중복을 제거했습니다.

Kotlin + Spring Boot 3.x

Null Safety, 데이터 클래스, 확장 함수 등 Kotlin의 언어적 특성을 활용하여 코드의 안전성과 간결성을 확보했습니다. Spring Boot 3.x의 Jakarta EE 지원과 최신 Spring Security를 통해 현대적인 보안 표준을 적용했습니다.

QueryDSL

복잡한 검색 조건(키워드, 다중 카테고리, 즐겨찾기 여부)을 타입 안전하게 처리하기 위해 QueryDSL을 도입했습니다. 동적 쿼리 생성과 컴파일 타임 검증을 통해 런타임 오류를 방지하고 유지보수성을 향상시켰습니다.

JWT 기반 인증

무상태(Stateless) 인증 방식으로 수평 확장에 유리하며, 모바일 앱과 웹 클라이언트 모두에서 일관된 인증 플로우를 제공합니다. Bearer Token 방식으로 API 호출마다 사용자 컨텍스트를 자동 해석하여 보안성을 강화했습니다.

AWS S3 + Presigned URL

게시글 첨부파일과 툴 썸네일을 S3에 저장하고, Presigned URL을 통해 클라이언트가 직접 업로드하도록 설계했습니다. 서버 부하를 줄이고 대용량 파일 처리 성능을 개선했습니다.

계층형 카테고리 (Self-Referencing Entity)

ToolCategory 엔티티의 parentId와 children 관계를 통해 무제한 깊이의 카테고리 트리를 구현했습니다. 이를 통해 "과목 > 단원 > 세부 도구" 같은 유연한 분류 체계를 지원합니다.


프로젝트 특징

도메인 주도 설계 적용

각 기능을 Application-Domain-Infrastructure-Presentation 레이어로 분리하여 비즈니스 로직의 독립성과 테스트 용이성을 확보했습니다. 도메인 모델이 순수 비즈니스 규칙만 담당하도록 설계했습니다.

확장 가능한 모듈 구조

Client/Admin 앱을 완전히 분리하여 각각 독립적인 배포 및 스케일링이 가능합니다. Gateway를 통한 단일 엔드포인트 제공으로 클라이언트는 내부 아키텍처 변경에 영향받지 않습니다.

교사 커뮤니티 특화 기능

익명 게시 옵션으로 자유로운 의견 공유를 보장하면서도, 선생님 인증 시스템으로 신뢰성 있는 정보 교류가 가능한 균형잡힌 커뮤니티 환경을 구축했습니다.

API 문서 자동화

Swagger/OpenAPI를 통해 모든 엔드포인트를 자동 문서화하고, 관리자와 클라이언트 API를 각각 독립된 UI로 제공하여 프론트엔드 개발 효율성을 높였습니다.

성능 개선

QueryDSL의 Fetch Join을 활용한 N+1 문제 해결, 페이지네이션을 통한 대량 데이터 처리, AWS S3 Presigned URL을 통한 서버 부하 분산 등 다양한 기법을 적용했습니다.