ELIFUN

KT DS
React Typescript Recoil Webpack Mui

KT DS에서 진행한 ELIFUN 신규 개발 프로젝트에 참여해서, 메인 앱의 WebView 화면과 백엔드 API 개발을 담당했어요. 학생들의 학습 경험을 향상시키고 안정적인 서비스를 제공하는 데 중점을 두었습니다.

WebView 화면 개발

사용자 경험과 성능 최적화에 집중했어요.

메인 앱인 ELIFUN에서 WebView를 통해 호출되는 핵심 화면들을 개발했어요. 사용자들이 매끄럽게 서비스를 이용할 수 있도록 다음과 같은 부분에 신경 썼습니다.

  • 주요 화면 구현: 사용자의 첫인상인 로그인 화면과 소셜 로그인 기능을 구현하고, 학생들이 매일 학습 목표를 달성할 수 있도록 데일리 테스트 화면을 개발했어요.

  • Native App 연동 강화: WebView 환경에서 Native App과 원활하게 데이터를 주고받기 위해, 메시지 송수신 로직을 캡슐화한 Custom Hook을 개발했어요. 이를 통해 Native 기능과의 연동을 더 효율적이고 안정적으로 처리할 수 있었죠.

  • 선언적 권한 관리: React의 HOC(Higher-Order Component) 패턴을 활용해서, 사용자 역할(Role)에 따라 접근 권한을 코드 상에서 명확하게 선언하고 관리하는 시스템을 구현했어요. 덕분에 코드 가독성과 유지보수성이 향상되었어요.

  • 성능 최적화 (번들 크기 축소): 사용자에게 더 빠른 로딩 속도를 제공하기 위해, Webpack의 TreeShaking 최적화를 적용하여 최종 빌드된 애플리케이션의 번들 크기를 효과적으로 줄였어요.

  • 수학 수식 표현력 강화: 교육 콘텐츠의 특성을 고려해서, KaTeX 라이브러리를 기반으로 LaTeX 수학 수식을 웹 화면에 깔끔하게 표시하는 컴포넌트를 개발했어요. 복잡한 수식도 명확하게 전달되어 학생들의 학습 이해도를 높이는 데 기여했어요.

ASP.NET API 개발

안정성과 확장성을 고려한 백엔드 시스템을 구축했어요.

WebView 화면들이 원활하게 동작하고 데이터를 안전하게 관리할 수 있도록 ASP.NET 기반의 백엔드 API를 개발했어요. 주요 구현 내용은 다음과 같아요:

  • 보안 강화된 인증 시스템: 안전하고 표준화된 사용자 인증을 위해 JWT(JSON Web Token) 기반의 인증 기능을 OAuth 2.0 프로토콜에 맞춰 구현했어요.
  • 데이터베이스 안정성 및 유연성 확보: 데이터베이스 상호작용 시 발생할 수 있는 SQL Injection 공격을 방어하기 위해 ORM(Object-Relational Mapper)을 적극적으로 활용했어요. 동시에 DTO(Data Transfer Object) 패턴을 적용하여 데이터 스키마 변경에도 유연하게 대응할 수 있는 구조로 설계하여 코드 안정성과 유지보수성을 동시에 높였어요.
  • API 문서 자동화로 협업 효율 증진: 다른 개발자들이 API를 쉽고 빠르게 이해하고 사용할 수 있도록, Swagger를 도입해서 API 문서를 자동으로 생성하고 관리했어요. 이는 개발팀 전체의 생산성 향상과 원활한 협업에 기여했어요.
  • CI/CD 파이프라인 구축: 서버 배포 과정을 더 안정적이고 효율적으로 만들고자, Docker를 사용해 애플리케이션을 컨테이너화하고 Jenkins를 활용하여 CI/CD 파이프라인을 구축함으로써 배포 자동화를 이루어냈어요.