Inflearn brand logo image

인프런 커뮤니티 질문&답변

고리오영감님의 프로필 이미지
고리오영감

작성한 질문수

350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법

Intro

앱 개발 시 해킹 방지, 보안 체크리스트 및 주의사항 문의

해결된 질문

작성

·

92

·

수정됨

0

안녕하세요, 프로그래밍 좀비님!

팀으로 앱 개발을 하려고 합니다. 플러터로 iOS/안드로이드 앱을 개발하고, 제가 백엔드를 맡게 되었는데 백엔드는 Java, SpringBoot로 구축할 예정이에요.. 앱 해킹 등 보안에 대해 기획자분이 강조하셔서, 아래와 같이 보안 대책을 고민하고 있습니다.


현재 적용 예정인 보안 대책

• JWT 토큰을 이용한 인증/인가

• HTTPS로 통신 암호화

• JPA 사용(PreparedStatement 기반이라 SQL 인젝션 방어)

• API Rate Limiting 도입 예정

 

질문 드리고 싶은 내용

1. 위와 같이 보안 대책을 준비하면, 실제 서비스 운영 시 모바일 앱 백엔드에서 추가로 꼭 신경 써야 할 부분이 있을까요?

2. 강사님께서 실제로 350개 이상의 앱을 개발/배포하시면서 겪으신 보안 관련 실무 경험이나, 꼭 강조하고 싶은 보안 포인트가 있다면 조언 부탁드립니다.

3. 혹시 실무에서 자주 간과되지만, 반드시 챙겨야 하는 보안 체크리스트가 있다면 알려주시면 감사하겠습니다.

실제 현업, 350개 배포 경험을 바탕으로, 실질적으로 도움이 될 만한 조언을 듣고 싶습니다.

감사합니다!

답변 2

0

프로그래밍좀비님의 프로필 이미지
프로그래밍좀비
지식공유자

안녕하세요! 모바일 앱 백엔드 보안에 대한 체계적인 질문 감사합니다. 현재 계획하신 보안 대책들을 바탕으로 실무 관점에서 답변드리겠습니다.

 

초기 개발의 현실적 접근법 (가장 중요!)

시간과 리소스의 한계를 인정하기

처음 시작하는 단계라면 모든 보안 요소를 완벽하게 구축하는 것보다 개발 속도에 초점을 맞추는 것이 현실적입니다. 혼자서(팀으로 하더라도) 제로 베이스부터 모든 것을 갖추려면 많은 시간이 걸릴 수 있는데, 그렇게 완벽하게 만든 서비스가 시장에서 좋은 반응을 얻게될지, 사용자들에게 실제로 필요한지는 전혀 다른 문제입니다.

 

MVP 우선 전략

350개 이상의 앱을 개발하면서 느낀 점은, 처음 시작하는 서비스는 빠른 검증이 생명이라는 것입니다. 완벽한 보안 시스템을 구축하는 동안 시장 기회를 놓치거나, 아예 필요 없는 기능에 시간을 쏟을 수 있어요. 정작 보안과 탄탄한 서비스 구축을 위해 많은 시간을 쏟았는데 사람들이 아무도 사용해주지 않는다면 보안은 열심히 챙겼지만 아무도 사용하지 않을 서비스를 열심히 만든 결과가 되겠죠.(사용자가 있어야 보안도 의미가 있습니다.)

단계적 접근

  1. 1단계: 핵심 보안만 적용한 MVP (1-2주 내 완성 목표) 또는 보안은 배제하고 개발

  2. 2단계: 사용자 반응 확인 후 필요한 부분만 보강

  3. 3단계: 실제 사용자가 생기면 그때 본격적인 보안 강화

현재 보안 대책에 대한 의견

JWT 토큰의 선택적 사용

모든 API에 JWT를 붙일 필요 없습니다. 공개 정보 조회, 기본 설정 등은 인증 없이 진행하고, 정말 필요한 부분(회원 정보, 결제 등)에만 적용하세요. 초기 서비스에는 개발 속도가 더 중요합니다.

 

질문별 답변

1. 추가로 신경써야 할 보안 요소

환경 변수 관리

  • API 키, DB 접속 정보 등 민감한 정보는 코드가 아닌 환경 변수로 관리

  • Git 저장소에 민감 정보가 포함되지 않도록 주의

Spring Security 적용

  • 스프링 프레임워크를 사용하시니 Spring Security를 적극 활용

  • 역할 기반 접근 제어(RBAC) 구현

클라이언트-서버 간 데이터 처리

  • 중요한 비즈니스 로직은 서버에서 처리

  • 클라이언트에서 받은 데이터는 항상 서버에서 재검증

2. 실무에서 중요한 보안 포인트

에러 처리와 정보 노출 방지

  • 에러 메시지에서 시스템 정보나 개인정보 노출 금지

  • 일관된 에러 응답 형식 구성

로깅 전략

  • 보안 이벤트(로그인 시도, API 호출 등) 로깅

  • 개인정보는 로그에 포함하지 않되, 추적 가능한 식별자 활용

인프라 보안

  • 서버와 DB 접근을 특정 IP로 제한

  • 방화벽 규칙을 통한 네트워크 접근 제어

3. 자주 간과되는 보안 체크리스트

개인정보 처리방침

  • 수집하는 개인정보에 대한 명확한 약관 작성

  • 사용자 동의 절차 구현

입력 데이터 검증

  • 클라이언트와 서버 양쪽에서 데이터 유효성 검사

  • 파일 업로드 시 확장자, 크기, 내용 검증

세션 관리

  • JWT 토큰 만료 시간 적절히 설정

  • 로그아웃 시 토큰 무효화 처리

모니터링

  • 비정상적인 API 호출 패턴 감지

  • 정기적인 보안 취약점 점검

 

드리고 싶은 당부의 말씀

"완벽한 보안 시스템을 만들다가 앱 출시가 몇 달 늦어지느니, 기본 보안만 적용하고 빠르게 사용자 반응을 확인하는 것이 훨씬 현명합니다."

서비스 시작 초기에는 특히 "일단 돌아가게 만들고, 필요하면 개선" 하는 마인드가 중요해요. 사용자도 없는데 완벽한 보안 시스템을 구축하는 것은 시간 낭비일 수 있습니다.

현재 계획하신 수준이면 충분히 훌륭한 시작이라 생각합니다.

 

추가로..!

꼭 보안이 필요한 정보인지 판단하시면서 개발하시는것도 필요할 것 같아요. 예를들어 날씨 정보를 나타내는 API를 만들었는데 해당 정보가 보안이 필요하여 jwt를 넣고 보안에 신경쓰거나 힘줄 필요는 없겠죠. 저의 경우 만든 API가 만약 100개라면, 80%는 보안을 신경쓰지 않고 만들고 운영하고 있습니다. 물론 해당 API들은 제 판단에는 굳이 보안이 필요없다고 느꼈기 때문이기도 합니다. 이렇게 8년 동안 앱들을 운영하고 있지만 보안적인 이슈로 앱들이 문제가 된적은 단 한건도 없었습니다. 다시 강조드리고 싶은것은 보안도 중요하지만 그것보다 더 중요한건 내가 만들 서비스가 시장에서 먹힐지 빠른 검증이라 생각합니다. 보안은 그 이후 챙겨도 절대 늦지 않다고 생각합니다. (물론 정말정말 민감 정보를 다루는 서비스라면 또 이야기가 다를 수 있습니다. e.g 고객 주식 관리 서비스, 은행 또는 개인 금융 서비스)

빠른 답변 고맙습니다.
프로그래밍좀비님 짱!
열심히 앱 만들어볼게요 ~.~

0

안녕하세요, 인프런 AI 인턴입니다. 고리오영감님.

모바일 앱 개발 시, 특히 보안에 관한 중요한 사항을 준비하고 계시네요. Java와 SpringBoot 기반 백엔드와 플러터로 iOS/안드로이드 앱 개발을 고려하시는 상황에서 보안은 매우 중요한 요소입니다. 아래에 관련된 조언 및 유사한 질문에 대한 답변을 제공합니다.

보안 대책에 대한 추가 고려 사항

  1. OAuth 2.0 및 OpenID Connect: 인증 및 인가를 위한 JWT만으로는 모든 안전성을 보장하기 어려울 수 있습니다. OAuth 2.0 및 OpenID Connect를 통해 보안을 한층 강화할 수 있습니다.

  2. 데이터 암호화: 데이터베이스에 저장된 중요한 개인 식별 정보(PII)나 민감한 데이터는 암호화되어야 합니다. 실제 데이터 유출 사고 방지를 위해 중요합니다.

  3. CORS 설정 및 보안 헤더: 웹뷰 등을 사용하는 경우 CORS 설정과 함께 적절한 보안 헤더를 추가하여 서버와 클라이언트 통신을 더욱 안전하게 만들 수 있습니다.

실무 경험 및 조언

  1. 정기적인 보안 테스트: 앱 출시 후에도 정기적인 모의 해킹 및 보안 검토를 통해 잠재적 취약점을 찾아 해결해야 합니다.

  2. 업데이트 및 패치 관리: 사용하는 라이브러리 및 프레임워크는 항상 최신 버전으로 업데이트하여 보안 패치를 즉각적으로 적용해야 합니다.

  3. 로그 및 분석: 보안 경보가 발생했을 때 이를 감지하고 대응할 수 있도록 적절한 로깅을 설정하여 모든 의심스러운 활동을 모니터링하세요.

자주 간과되지만 중요한 보안 체크리스트

  1. 세션 관리: 세션 하이재킹 방지를 위한 안전한 세션 관리 정책 수립이 필요합니다.

  2. 인증 데이터 보호: 사용자 비밀번호 및 인증 정보는 저장되지 않거나 안전하게 암호화하여 보호해야 합니다.

위 내용 외에 추가로 인사이트가 필요하시다면 관련 질문과 답변 게시판에서 유사 질문들을 참고하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

고리오영감님의 프로필 이미지
고리오영감

작성한 질문수

질문하기