본문 바로가기



작은 프로젝트/Django 프로젝트 1

백엔드 개발을 위한 로드맵에 대한 LLM과의 질의응답

백엔드 시스템의 개발을 위한 로드맵이라는 포스팅을 보았습니다.

 

https://roadmap.sh/backend

 

Backend Developer Roadmap: What is Backend Development?

Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap.

roadmap.sh

 

위의 포스트를 PDF파일로 다운로드 하여 ChatPDF에 인식시킨 후 해당 내용과 관련하여 떠오르는 질문을 ChatPDF에게 물어보았습니다.

내 머리로 직접 생각하는 것이 귀찮아서 그런 것은 아니고...

수많은 사람들의 생각이 정리된 데이터로 학습시켰을 LLM과 질의응답을 하는 것은 다른 사람들의 생각을 종합한 것이지 않을까.. 라고 생각해서.. 다른 이들의 의견을 종합한다는 이유(=핑계)로..

 

다음은 그 내용입니다.

 


일단 PDF의 내용을 요약해줘.

 

백엔드 개발 로드맵의 주요 구성 요소는 다음과 같습니다

  • 프로그래밍 언어: Python, Java, Go, Ruby 등과 같은 백엔드 프로그래밍 언어를 배우는 것이 중요합니다.
  • 버전 관리 시스템: Git과 GitHub를 사용하여 코드 버전을 관리하는 방법을 익혀야 합니다.
  • 데이터베이스: PostgreSQL, MySQL, MongoDB와 같은 관계형 및 비관계형 데이터베이스를 이해하고 CRUD 작업을 수행하는 방법을 배워야 합니다.
  • API: RESTful API, GraphQL, SOAP 등 다양한 API 설계 및 구현 방법을 익혀야 합니다.
  • 웹 보안: HTTPS, CORS, OWASP 위험 등 웹 애플리케이션의 보안을 강화하는 방법을 배워야 합니다.
  • 테스트: 단위 테스트, 통합 테스트, 기능 테스트 등을 통해 코드의 품질을 보장하는 방법을 익혀야 합니다.
  • 배포 및 운영: Docker, Kubernetes와 같은 도구를 사용하여 애플리케이션을 배포하고 운영하는 방법을 배워야 합니다.

이러한 요소들을 통해 백엔드 개발자로서의 기초를 다질 수 있습니다. 


백엔드 개발을 위해 배워야 할 주요 언어에 대해 설명해줘.

 

백엔드 개발을 위해 배워야 할 주요 언어는 다음과 같습니다.

  • Python
    • 특징
      • 문법이 간단하고 가독성이 높아 초보자에게 적합합니다.
      • 다양한 웹 프레임워크(예: Django, Flask)를 통해 빠르게 웹 애플리케이션을 개발할 수 있습니다.
    • 사용 예
      • 데이터 분석, 머신러닝, 웹 개발 등 다양한 분야에서 사용됩니다.
  • Java
    • 특징
      • 객체 지향 프로그래밍 언어로, 안정성과 확장성이 뛰어나 대규모 시스템에 적합합니다.
      • Spring Framework와 같은 강력한 프레임워크를 통해 웹 애플리케이션을 구축할 수 있습니다.
    • 사용 예
      • 기업용 애플리케이션, 안드로이드 앱 개발 등에서 널리 사용됩니다.
  • JavaScript (Node.js)
    • 특징
      • 클라이언트 사이드에서 주로 사용되지만, Node.js를 통해 서버 사이드에서도 사용할 수 있습니다.
      • 비동기 프로그래밍을 지원하여 높은 성능을 제공합니다.
    • 사용 예
      • 실시간 애플리케이션(예: 채팅 앱), RESTful API 서버 등에서 사용됩니다.
  • Go (Golang)
    • 특징
      • 구글에서 개발한 언어로, 간결한 문법과 높은 성능을 자랑합니다.
      • 동시성(concurrency) 처리가 용이하여 대규모 시스템에 적합합니다.
    • 사용 예
      • 클라우드 서비스, 마이크로서비스 아키텍처 등에서 많이 사용됩니다.
  • Ruby
    • 특징
      • 간결하고 직관적인 문법을 가지고 있습니다.
      • Ruby on Rails라는 강력한 웹 프레임워크를 통해 빠른 개발이 가능합니다.
    • 사용 예
      • 스타트업 및 프로토타입 개발에 많이 사용됩니다.
  • C#
    • 특징
      • 마이크로소프트에서 개발한 언어로, .NET 프레임워크와 함께 사용됩니다.
      • 강력한 타입 시스템과 객체 지향 프로그래밍을 지원합니다.
    • 사용 예
      • 윈도우 애플리케이션, 게임 개발, 웹 애플리케이션 등에서 사용됩니다.

이 외에도 PHP, Rust 등 다양한 언어가 백엔드 개발에 사용될 수 있습니다.
각 언어는 특정한 장점과 사용 사례가 있으므로, 자신의 프로젝트나 관심 분야에 맞는 언어를 선택하는 것이 중요합니다.


백엔드 개발자 로드맵을 통해 내 진행 상황을 어떻게 추적할 수 있는지 설명해줘.

 

백엔드 개발자 로드맵을 통해 진행 상황을 추적하는 방법은 다음과 같습니다.

  • 체크리스트 사용
    • 로드맵의 각 항목을 체크리스트 형태로 만들어, 완료한 항목에 체크를 표시합니다.
    • 이를 통해 어떤 주제를 학습했는지 쉽게 확인할 수 있습니다.
  • 우선순위 설정
    • 로드맵의 항목들 중에서 우선적으로 배우고 싶은 주제를 선택하고, 그에 따라 학습 계획을 세웁니다.
    • 각 항목의 중요도에 따라 우선순위를 매기면 더 체계적으로 학습할 수 있습니다.
  • 프로젝트 기록
    • 각 항목을 학습하면서 관련된 프로젝트를 진행하고, 그 결과물을 기록합니다.
    • 이를 통해 실습 경험을 쌓고, 나중에 포트폴리오로 활용할 수 있습니다.
  • 시간 기록
    • 각 항목을 학습하는 데 소요된 시간을 기록하여, 어떤 주제에 더 많은 시간이 필요한지 분석합니다.
    • 이를 통해 학습 속도를 조절할 수 있습니다.
  • 정기적인 리뷰
    • 일정한 주기로 자신의 진행 상황을 리뷰합니다.
    • 예를 들어, 매주 또는 매달 학습한 내용을 되돌아보고, 어떤 부분이 부족한지 평가합니다.
  • 커뮤니티 참여
    • 온라인 포럼이나 커뮤니티에 참여하여 다른 개발자들과 진행 상황을 공유하고 피드백을 받습니다.
    • 이를 통해 동기부여를 얻고, 새로운 학습 자료를 발견할 수 있습니다.
  • 목표 설정
    • 단기 및 장기 목표를 설정하여, 로드맵의 각 항목을 완료하는 데 필요한 목표를 구체화합니다.
    • 예를 들어, "3개월 안에 RESTful API를 구축할 수 있도록 학습하겠다"와 같은 목표를 세울 수 있습니다.

이러한 방법들을 통해 백엔드 개발자로서의 학습 진행 상황을 효과적으로 추적하고 관리할 수 있습니다. 
지속적인 학습과 자기 평가가 중요하므로, 자신의 발전을 기록하고 반영하는 습관을 기르는 것이 좋습니다.


문서에서 언급된 웹 보안과 관련된 중요한 개념은 무엇인지 설명해줘.

 

문서에서 언급된 웹 보안과 관련된 중요한 개념은 다음과 같습니다.

  • HTTPS
    • HTTPS는 HTTP의 보안 버전으로, 데이터 전송 시 암호화를 통해 중간에서의 도청이나 변조를 방지합니다.
    • SSL/TLS 프로토콜을 사용하여 클라이언트와 서버 간의 안전한 통신을 보장합니다.
  • OWASP Risks
    • OWASP(Open Web Application Security Project)는 웹 애플리케이션 보안의 취약점 목록을 제공하는 조직입니다.
    • OWASP Top Ten은 가장 일반적인 웹 애플리케이션 보안 위험을 정리한 목록으로, 개발자들이 주의해야 할 주요 취약점을 포함합니다.
  • CORS (Cross-Origin Resource Sharing)
    • CORS는 웹 브라우저가 다른 도메인에서 리소스를 요청할 수 있도록 허용하는 메커니즘입니다.
    • 이를 통해 보안 정책을 설정하고, 특정 도메인에서만 리소스에 접근할 수 있도록 제한할 수 있습니다.
  • 인증(Authentication)
    • 사용자의 신원을 확인하는 과정으로, 다양한 방법이 있습니다.
    • 예를 들어, 기본 인증, 토큰 기반 인증(JWT), OAuth, OpenID 등이 있습니다.
    • 각 방법은 보안 수준과 사용 편의성이 다릅니다.
  • 해싱 알고리즘
    • 비밀번호와 같은 민감한 데이터를 안전하게 저장하기 위해 해싱 알고리즘을 사용합니다.
    • MD5, SHA, bcrypt 등의 알고리즘이 있으며, 해시된 데이터는 원래 데이터를 복원할 수 없도록 설계되어 있습니다.
  • SSL/TLS
    • SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)는 데이터 전송 시 보안을 제공하는 프로토콜입니다.
    • HTTPS에서 사용되며, 데이터의 기밀성과 무결성을 보장합니다.

이러한 개념들은 웹 애플리케이션을 개발할 때 필수적으로 고려해야 할 보안 요소들로, 안전한 시스템을 구축하기 위해 반드시 이해하고 적용해야 합니다.


그림: MS Designer Image Creator로 직접 그림


개인적으로 개발할 수 있는 백엔드 시스템의 규모라고 하면 로드맵의 주요 요소 중에서 어떤 것을 선택하는 것이 가장 추천할 만한 선택인지 각 항목별로 선정해서 그 이유를 설명해줘.

 

개인적으로 개발할 수 있는 백엔드 시스템의 규모에 따라 로드맵의 주요 요소 중에서 다음과 같은 항목들을 추천할 수 있습니다.

  • 프로그래밍 언어 선택 (예: Python, Java, Go)
    • Python은 배우기 쉽고, 다양한 라이브러리와 프레임워크(Django, Flask 등)가 있어 빠르게 프로토타입을 만들 수 있습니다.
    • Java는 안정성과 성능이 뛰어나고, Go는 높은 동시성을 지원하여 대규모 시스템에 적합합니다.
    • 개인의 경험과 프로젝트의 요구에 따라 선택할 수 있습니다.
  • 데이터베이스 (예: PostgreSQL, MySQL)
    • 관계형 데이터베이스는 데이터의 무결성을 보장하고, SQL 쿼리를 통해 데이터를 쉽게 관리할 수 있습니다.
    • PostgreSQL은 고급 기능과 확장성을 제공하여 복잡한 데이터 모델을 처리하는 데 유리합니다.
    • MySQL은 널리 사용되며, 많은 자료와 커뮤니티 지원이 있습니다.
  • RESTful API 구축
    • RESTful API는 클라이언트와 서버 간의 통신을 표준화하여 다양한 플랫폼에서 쉽게 사용할 수 있도록 합니다.
    • 개인 프로젝트에서 API를 구축하면, 프론트엔드와의 연동을 통해 전체 시스템을 이해하는 데 도움이 됩니다.
  • 인증 및 권한 부여 (예: JWT, OAuth)
    • 사용자 인증은 모든 웹 애플리케이션에서 필수적입니다.
    • JWT(JSON Web Token)는 간편하게 사용할 수 있으며, 클라이언트와 서버 간의 상태를 유지하는 데 유용합니다.
    • OAuth는 외부 서비스와의 통합을 통해 사용자 인증을 간소화할 수 있습니다.
  • 테스트 (예: 단위 테스트, 통합 테스트)
    • 테스트는 코드의 품질을 보장하고, 버그를 조기에 발견하는 데 도움을 줍니다.
    • 개인 프로젝트에서도 테스트를 통해 안정성을 높이고, 유지보수를 용이하게 할 수 있습니다.
  • CI/CD (지속적 통합 및 지속적 배포)
    • CI/CD는 코드 변경 사항을 자동으로 테스트하고 배포하는 프로세스입니다.
    • 개인 프로젝트에서도 CI/CD를 설정하면, 배포 과정에서의 실수를 줄이고, 개발 속도를 높일 수 있습니다.

이러한 요소들은 개인 프로젝트의 규모와 복잡성에 따라 선택할 수 있으며, 각 요소는 백엔드 시스템의 전반적인 품질과 유지보수성을 높이는 데 기여합니다.


1번의 프로그래밍 언어에서 단 하나만을 선택해야 한다면 어떤 것을 추천할 것인지, 그리고 그 이유를 설명해줘.

 

프로그래밍 언어 선택에서 단 하나의 항목만을 선택해야 한다면 Python을 추천합니다.

  • 배우기 쉬움
    • Python은 문법이 간단하고 직관적이어서 초보자들이 쉽게 배울 수 있습니다.
    • 이는 개인 프로젝트를 시작하는 데 큰 장점이 됩니다.
  • 다양한 프레임워크
    • Python은 Django, Flask와 같은 강력한 웹 프레임워크를 제공합니다.
    • 이러한 프레임워크는 백엔드 개발을 빠르고 효율적으로 할 수 있도록 도와줍니다.
    • 특히 Django는 ORM(Object-Relational Mapping)을 내장하고 있어 데이터베이스와의 상호작용을 쉽게 처리할 수 있습니다.
  • 광범위한 라이브러리
    • Python은 데이터 처리, 웹 스크래핑, 머신러닝 등 다양한 분야에서 사용할 수 있는 방대한 라이브러리를 보유하고 있습니다.
    • 이는 프로젝트의 요구 사항에 따라 쉽게 기능을 확장할 수 있게 해줍니다.
  • 커뮤니티와 지원
    • Python은 매우 활발한 커뮤니티를 가지고 있어, 문제 해결이나 학습 자료를 찾는 데 유리합니다.
    • 이는 개발 중에 발생할 수 있는 다양한 문제를 해결하는 데 큰 도움이 됩니다.
  • 다양한 데이터베이스와의 호환성
    • Python은 PostgreSQL, MySQL, SQLite 등 다양한 데이터베이스와 쉽게 연동할 수 있습니다.
    • 따라서 데이터베이스 선택에 대한 유연성을 제공합니다.

결론적으로, Python을 선택하면 백엔드 개발의 기초를 빠르게 다질 수 있으며, 다양한 프로젝트에 적용할 수 있는 능력을 키울 수 있습니다.
데이터베이스는 나중에 필요에 따라 선택하고 조정할 수 있기 때문에, 프로그래밍 언어의 선택이 더 중요하다고 할 수 있습니다.


2번 데이터베이스의 선택에서도 단 하나의 선택을 한다면 어떤 것을 추천하는지 상세한 이유와 함께 설명해줘.

 

데이터베이스 선택에서 단 하나의 항목만을 선택해야 한다면 PostgreSQL을 추천합니다.

  • 강력한 기능
    • PostgreSQL은 ACID(Atomicity, Consistency, Isolation, Durability) 준수를 통해 데이터의 무결성과 안정성을 보장합니다.
    • 이는 신뢰할 수 있는 데이터베이스를 구축하는 데 필수적입니다.
  • 확장성
    • PostgreSQL은 대량의 데이터와 높은 트래픽을 처리할 수 있는 뛰어난 확장성을 제공합니다.
    • 이는 애플리케이션이 성장함에 따라 데이터베이스도 함께 확장할 수 있도록 해줍니다.
  • 다양한 데이터 타입 지원
    • PostgreSQL은 JSON, XML, 배열 등 다양한 데이터 타입을 지원합니다.
    • 이는 비정형 데이터나 복잡한 데이터 구조를 처리하는 데 유리합니다.
  • 강력한 쿼리 언어
    • PostgreSQL은 SQL 표준을 준수하며, 복잡한 쿼리와 데이터 분석을 위한 다양한 기능을 제공합니다.
    • 예를 들어, 윈도우 함수, 공통 테이블 표현식(CTE) 등을 통해 복잡한 데이터 처리 작업을 쉽게 수행할 수 있습니다.
  • 오픈 소스
    • PostgreSQL은 오픈 소스 데이터베이스로, 라이센스 비용이 없고 커스터마이징이 가능합니다.
    • 이는 개발자들이 필요에 따라 데이터베이스를 수정하고 최적화할 수 있는 유연성을 제공합니다.
  • 활발한 커뮤니티
    • PostgreSQL은 매우 활발한 커뮤니티를 가지고 있어, 다양한 자료와 지원을 쉽게 찾을 수 있습니다.
    • 이는 문제 해결이나 새로운 기능 학습에 큰 도움이 됩니다.
  • 보안 기능
    • PostgreSQL은 다양한 보안 기능을 제공하여 데이터 보호를 강화합니다.
    • 예를 들어, 역할 기반 접근 제어(RBAC), SSL 암호화 등을 통해 데이터베이스의 보안을 높일 수 있습니다.

결론적으로, PostgreSQL은 기능적이고 안정적인 데이터베이스 솔루션으로, 다양한 요구 사항을 충족할 수 있는 유연성을 제공합니다.
이는 백엔드 개발에서 데이터베이스의 중요성을 고려할 때 매우 적합한 선택입니다.


PostgreSQL은 MySQL과 비교한다면 개인적으로 개발하는 시스템을 위해 다소 무겁지 않을까?
아니면.. 다른 관점에서 본다면 오히려 MySQL보다 가볍다고 할 수도 있을까?

 

PostgreSQL과 MySQL을 비교할 때, "무겁다" 또는 "가볍다"는 개념은 여러 요소에 따라 달라질 수 있습니다.
다음은 두 데이터베이스의 특성과 성능을 비교한 내용입니다.

  • PostgreSQL의 특성
    • 기능의 풍부함
      • PostgreSQL은 고급 기능(예: JSONB, 사용자 정의 데이터 타입, 윈도우 함수 등)을 많이 지원합니다.
      • 이러한 기능들은 복잡한 쿼리와 데이터 처리에 유리하지만, 그만큼 시스템 자원을 더 많이 소모할 수 있습니다.
    • ACID 준수
      • PostgreSQL은 ACID 준수를 통해 데이터의 무결성을 보장합니다.
      • 이는 트랜잭션 처리에서 안정성을 높이지만, 성능에 영향을 줄 수 있습니다.
    • 메모리 사용
      • PostgreSQL은 메모리 사용량이 상대적으로 높을 수 있습니다.
      • 이는 복잡한 쿼리나 대량의 데이터를 처리할 때 성능에 영향을 미칠 수 있습니다.
  • MySQL의 특성
    • 경량화
      • MySQL은 상대적으로 가벼운 데이터베이스로, 기본적인 CRUD 작업에 최적화되어 있습니다.
      • 이는 단순한 웹 애플리케이션이나 소규모 프로젝트에 적합합니다.
    • 성능
      • MySQL은 읽기 작업에 최적화되어 있어, 단순한 쿼리와 높은 읽기 성능을 요구하는 시스템에서 더 나은 성능을 발휘할 수 있습니다.
    • 설정의 용이성
      • MySQL은 기본 설정으로도 잘 작동하며, 초기 설정이 간단하여 빠르게 배포할 수 있습니다.
  • PostgreSQL이 무겁다고 할 수 있는 경우
    • 복잡한 데이터 모델이나 고급 기능을 필요로 하는 시스템에서는 PostgreSQL이 더 많은 자원을 소모할 수 있습니다.
    • 이 경우, 시스템이 "무겁다"고 느껴질 수 있습니다.
  • MySQL이 가볍다고 할 수 있는 경우
    • 단순한 CRUD 작업이나 읽기 중심의 애플리케이션에서는 MySQL이 더 가볍고 빠르게 작동할 수 있습니다.

결국, 선택은 개발하는 시스템의 요구 사항에 따라 달라집니다.
복잡한 데이터 처리와 고급 기능이 필요하다면 PostgreSQL이 적합할 수 있지만, 단순한 웹 애플리케이션이나 소규모 프로젝트라면 MySQL이 더 나은 선택일 수 있습니다.


개인적인 개발 프로젝트를 진행한다면 백엔드 개발 로드맵에서 어떤 루트를 따르는 것이 좋을까?
시작부터 끝까지의 경로를 하나 선정해서 알려줘.

 

개인적인 개발 프로젝트를 진행할 때, 백엔드 개발 로드맵을 따라가는 것은 매우 유익합니다.
다음은 백엔드 개발자로서의 경로를 단계별로 정리한 것입니다.
이 경로는 초보자가 시작하여 실제 프로젝트를 완성하는 데 필요한 주요 기술과 개념을 포함합니다.

  1. 프로그래밍 언어 선택
    • 언어 선택: Python, JavaScript (Node.js), Ruby, Go 등 중 하나를 선택합니다.
    • 기본 문법 학습: 선택한 언어의 기본 문법과 개념을 학습합니다.
  2. 패키지 관리 및 프레임워크
    • 패키지 관리자: 선택한 언어의 패키지 관리자를 배우고, 외부 라이브러리를 설치하는 방법을 익힙니다.
    • 웹 프레임워크: Flask (Python) 또는 Express (Node.js)와 같은 웹 프레임워크를 학습하여 간단한 웹 애플리케이션을 구축합니다.
  3. 데이터베이스
    • 관계형 데이터베이스: PostgreSQL 또는 MySQL을 선택하여 기본적인 CRUD(Create, Read, Update, Delete) 작업을 수행하는 방법을 학습합니다.
    • ORM 사용: SQLAlchemy (Python) 또는 Sequelize (Node.js)와 같은 ORM(Object-Relational Mapping) 도구를 사용하여 데이터베이스와 상호작용하는 방법을 익힙니다.
  4. API 개발
    • RESTful API: RESTful API를 설계하고 구현하는 방법을 학습합니다. 간단한 API를 만들어 클라이언트와 통신할 수 있도록 합니다.
    • 인증 및 권한 부여: JWT(JSON Web Token) 또는 OAuth를 사용하여 사용자 인증 및 권한 부여를 구현합니다.
  5. 테스트 및 배포
    • 테스트: 단위 테스트 및 통합 테스트를 작성하여 코드의 품질을 보장합니다.
    • CI/CD: GitHub Actions 또는 Travis CI와 같은 도구를 사용하여 지속적 통합 및 배포(CI/CD) 파이프라인을 설정합니다.
  6. 프로젝트 완성
    • 프로젝트 구축: 위의 모든 기술을 활용하여 개인 프로젝트를 완성합니다. 예를 들어, 간단한 블로그 플랫폼이나 Todo 리스트 애플리케이션을 만들 수 있습니다.
    • 포트폴리오 작성: 완성한 프로젝트를 GitHub에 업로드하고, 포트폴리오를 작성하여 다른 사람들과 공유합니다.
  7. 지속적인 학습
    • 커뮤니티 참여: 개발자 커뮤니티에 참여하고, 다른 개발자들과 소통하며 지식을 공유합니다.
    • 새로운 기술 학습: Docker, Kubernetes, GraphQL 등 최신 기술을 지속적으로 학습하여 스킬을 확장합니다.

이 경로를 따르면 백엔드 개발자로서의 기초를 다지고, 실제 프로젝트를 통해 경험을 쌓을 수 있습니다. 
각 단계에서 충분한 연습과 프로젝트를 통해 실력을 향상시키는 것이 중요합니다.


개인적인 규모로 개발 프로젝트를 진행하고자 한다면 어떤 프로젝트를 하는 것이 가장 적절하다고 생각해? 
프로젝트의 주제를 몇 개 추천해줘.

 

개인적인 규모로 개발 프로젝트를 진행할 때, 다음과 같은 주제를 고려해볼 수 있습니다. 
이 프로젝트들은 백엔드 개발 기술을 활용할 수 있으며, 실습을 통해 많은 것을 배울 수 있습니다.

  • 개인 블로그 플랫폼
    • 설명
      • 사용자가 글을 작성하고, 수정하고, 삭제할 수 있는 블로그 플랫폼을 만듭니다.
      • 댓글 기능과 태그 시스템을 추가하여 사용자 상호작용을 높일 수 있습니다.
    • 기술 스택
      • Python (Flask/Django), PostgreSQL, RESTful API, JWT 인증.
  • Todo 리스트 애플리케이션
    • 설명:
      • 사용자가 할 일을 추가하고, 완료 상태를 업데이트하며, 삭제할 수 있는 간단한 Todo 리스트 애플리케이션을 개발합니다.
      • 사용자 인증 기능을 추가하여 개인화된 경험을 제공합니다.
    • 기술 스택
      • Node.js (Express), MongoDB, RESTful API, OAuth 인증.
  • 영화 추천 시스템
    • 설명
      • 사용자가 좋아하는 영화를 기반으로 추천 영화를 제공하는 시스템을 만듭니다.
      • 사용자가 영화에 대한 리뷰를 작성할 수 있는 기능도 추가할 수 있습니다.
    • 기술 스택
      • Ruby on Rails, PostgreSQL, RESTful API, 사용자 인증.
  • 온라인 설문조사 플랫폼
    • 설명
      • 사용자가 설문을 생성하고, 다른 사용자들이 참여할 수 있는 플랫폼을 개발합니다.
      • 결과를 시각화하여 보여주는 기능도 추가할 수 있습니다.
    • 기술 스택
      • Go, MySQL, GraphQL, JWT 인증.
  • 간단한 전자상거래 웹사이트
    • 설명
      • 제품을 나열하고, 장바구니에 추가하며, 결제 기능을 포함한 간단한 전자상거래 웹사이트를 만듭니다.
      • 사용자 계정 관리 기능도 추가할 수 있습니다.
    • 기술 스택
      • Java (Spring Boot), MongoDB, RESTful API, OAuth 인증.
  • 개인 재무 관리 애플리케이션
    • 설명
      • 사용자가 수입과 지출을 기록하고, 예산을 관리할 수 있는 애플리케이션을 개발합니다. 
      • 데이터 시각화 기능을 통해 사용자가 재무 상태를 쉽게 이해할 수 있도록 합니다.
    • 기술 스택
      • Python (Flask), SQLite, RESTful API, JWT 인증.

이러한 프로젝트들은 백엔드 개발 기술을 실습할 수 있는 좋은 기회를 제공하며, 각 프로젝트의 복잡성을 조절하여 자신의 수준에 맞게 진행할 수 있습니다. 
프로젝트를 진행하면서 다양한 기술을 배우고, 문제 해결 능력을 키울 수 있습니다.

 


 

개조식으로 작성하려니 티스토리의 에디터 특징때문인지 편집이 상당히 번거롭네요.

그냥 복사해서 붙이면 개조식 편집을 위한 Bullet 표시가 제대로 적용되지 않는군요.

 

질의응답을 진행하면서 가끔씩 드는 생각은 ChatPDF가 과연 개인적인 프로젝트라는 것을 이해하고 있을까.. 입니다.

추천해 달라고 한 프로젝트의 종류를 보면 인터넷이나 도서 등에서 흔히 찾을 수 있는 내용이기도 하고(물론 학습한 범위가 거기니까 당연하시도 합니다)...

그 중에서 간단한 전자상거래 웹사이트나 개인 재무 관리 애플리케이션의 경우는 단순하게 설계하면 개인 프로젝트에 적합할 수 있지만 조금만 깊게 들어가다보면 개인이 하기에는 좀 벅찰 수 있는 규모가 되기 쉬우니까요.

뭐... 개인이 욕심을 부리지 않는다면 일견.. 타당해 보이기도 합니다.

 

조금만 생각해보면 알 수 있는 내용들이긴 하지만 그래도 이렇게 깔끔하게 정리를 해 준다는 점이 LLM과 같은 AI 서비스를 사용하는 이유가 될 수 있겠다 싶네요.

 

LLM과의 질의응답이란 방식을 통해서 한 번 정리하고 싶었던 백엔드 시스템 개발 로드맵에 대해서 정리해 보았습니다.

반응형