닷넷 백엔드는 어떻게 처음 공부하셨나요?

혹시 여기 계신 닷넷 백엔드 개발자분들은, 처음에 어떻게 개발 공부를 하셨나요?
닷넷으로 백엔드 관련해서 공부하려고 하는데,
물론 마소 공식 문서가 잘 되어있기는 해서 따라해보려고 하고는 있는데,
아예 이런 분야는 처음이라(앱 프론트만 했었습니다) 이해가 잘 안 되는 부분이 많네요 ㅠㅠㅠ…

물론 공식문서, 구글링, 서적 등 여러 경로를 거치면서 공부하셨겠지만,
그럼에도 특히 이걸로 공부했을 때 효과가 좋았다~ 라거나 이걸 주로 참조했다~ 라는게 있을까요?
물론 마소 문서가 짱짱이긴 하지만 ㅎㅎ 혹시라도 있다면 추천 부탁드리겠습니다!

3개의 좋아요

제가 생각하는 백엔드 개발 능력의 상당 부분은 서비스 모델링 및 서비스 모델의 이해라고 생각합니다. 이외의 클라우드 경험, 데이터베이스 경험, API 설계 및 구현 경험 및 기타 개발 및 개발 환경적인 부분은 어느정도 일반 개발 경험을 충분히 쌓으면 곧 잘 익숙해질 수 있는 영역이라고 생각이 들어요.

물론 상세로 들어가면 데이터베이스 설계 및 구축 경험과 클라우드 환경 구축 및 서비스 환경에 맞게 세팅하는 경험, 사용하기 쉽고 체계적인 API 인터페이스 구축 및 관련 환경 경험 등이 수반되어야 할 텐데, 워낙 범위가 방대하므로 하나하나 세세히 모두 잘 하는 방향이 아니라 필요로 하는 요소만 잘 취합해서 서비스에 맞게 구현할 수 있는 능력을 키우는 방향이 좋습니다.

즉, 제가 말씀 드리고 싶은 방향성은 기술 또는 기능 위주의 학습 전개 보다는 필요로 하는 서비스 구현 측면에서 배워야 할 큰 카테고리를 먼저 정리하신 후 목록으로 만들어 그것을 무엇으로 구현할지를 고민해서 학습 전개를 하시는건 어떨까 하는 관점입니다.

좀 더 질문자가 원하는 답변을 드리기 위해서는 궁금해하시는 백엔드 개발 범위를 좀 더 특정해서 말씀해주시면 또다른 답변 드리겠습니다.

4개의 좋아요

사실 저도 막연히 질문드린 것 같네요

제가 생각했을 때 앞으로 하드웨어가 더 발전하고, MAUI 같은 통합 플랫폼이 발전하면 더더욱 프론트 단은 개발 효율성을 위해 쉽고 빠르게 갈 확률이 높다고 생각해서, 앱의 전망에 대해 다소 부정적이었습니다.
(앱 개발을 폄하하는게 아닙니다만 그렇게 보여진다면 죄송합니다ㅠㅠ 앱 개발자로서의 한탄입니다)
가뜩이나 전 디자인 감각도 없어서 경쟁력도 없었구요

그래서 대용량의 데이터를 보내주고 처리하는 로직을 개발하는 것이 앞으로도 더 중요해질 것이라고 생각해서 단순히 백엔드를 공부해야겠다! 라고만 생각했고, 그 결과 질문이 안일해진 것 같네요

일단 아무래도 제가 좀 더 생각해보고 고민해본 다음에 질문드리는 게 좋겠네요
@dimohy 님 좋은 말씀 감사합니다!

2개의 좋아요

라고 하신다면…!! Todo 관리 앱을 만들어보시면 어떤가요 ㅋㅋ

제가 생각했을 때 가장 쉬운 프로젝트 일 것 같습니다

저도 그렇게 공부하고 있습니다. ㅋㅋㅋ

그리고 생각보다 유튜브에도 기초 강의들이 많더라고요! 그걸 활용해보시는 것도 좋을 것 같습니다!

3개의 좋아요

ㅎㅎ 기존에 앱 프론트는 만들었던 게 있긴 한데 그거 서버를 직접 만들어봐야겠네요

@마수리 님 감사합니다!

3개의 좋아요

백앤드를 전혀 안해보셨다는 전제에서 원론적인 얘기만 몇가지 공유 드려요~ ㅎㅎ

RDB와 NoSQL 데이터베이스에 대해 이해가 필요하실꺼에요.
RDB는 데이터베이스에 대한 이해와 스키마 설계 방법 그리고 DDL, DML과 같은 SQL 구문을 익히시면 됩니다.
대표적으로 mysql이 있어요.
NoSQL은 DocumentDB류인 MongoDB나 Column형 DB인 Cassandra를 익히시면 좋습니다
구체적으로 각 DB에 대해 이해하시기 전에 어떨때 RDB를 쓰는지 NoSQL를 쓰는지 이해하시는게 좋습니다.
너무 많다 싶으시면 RDB만 우선 이해하셔도 좋습니다.

백앤드는 주로 도메인 기반 디자인으로 설계 하기 때문에 DDD(Domain Driven Design)를 익히시는게 좋습니다. 에릭 에반스님의 도메인 주도 설계라는 책을 읽어 보셔도 좋을 것 같아요. 읽어 보시면 아시겠지만 이미 하고 있는걸 정리해두었다는 인상을 받으실 수도 있습니다.
그리고 나서 OOP 세계와 RDB 세계를 연결하는 ORM(Object Relational Mapping)에 대해 익히시면 되는데 C# 쪽의 대표 ORM 프레임워크로는 Entity Framework, Dapper, NHibernate 등이 있습니다.
ORM은 간편해서 SQL을 멀리하시게 될 수 있으니 꼭 SQL을 잘 다루시고 나서 ORM을 사용하시기를 권장 드려요.
그리고 RESTFUL API 디자인에 대한 이해가 필요한데 HTTP 프로토콜의 이해가 선제 되어야 하나 웹 프론트를 이미 경험해 보셨기 때문에 컨셉을 이해하시는 것은 그리 어렵지 않으실 것 같아요.
ASP.NET CORE로 REST API를 구현하시게 되면 자연스럽게 MVC 패턴을 이해 하시게 되고, Controller, Service, Data로 이어지는 어플리케이션 레이어 설계를 이해 하시게 됩니다.
일반 VM이나 물리서버에 배포한다고 가정하면 여기까지가 기본으로 생각하고 진행하시면 될 것 같아요.

좀더 나아가자면 인증과 권한에 대한 이해가 필요하세요.
OAuth2 기반으로 유저를 인증하고, JWT(JSON Web Token)으로 유저의 Identity를 관리합니다.
그래서 OAuth2와 JWT 토큰에 대한 이해가 필요합니다.
C# 쪽에서는 ASP.NET Core Identity, Azure AD B2C, Identity4 Server 로 검색하시면 도움이 되실 것 같아요.

좀더 욕심을 내자면 각 레이어의 개발 피드백을 빠르게 받기 위해서 TDD의 이해가 필요하게 됩니다.
C# 쪽에서 TDD를 돕는 프레임워크로 xUnit.Net, Autofixture, Fluent Assertions, Moq 등이 있습니다.

그리고 컨테이너 환경에 대한 이해와 운영 환경을 구축하고 서비스를 배포 해 보시면 좋습니다. Docker, Docker Compose, Kubernetes 같은 것인데 차차 해 보시면 좋을 것 같습니다.

공부해보는 것은 나쁘지 않다고 생각해서 말씀드렸어요~
마지막으로 몇가지 링크 공유 드려요.

8개의 좋아요

일단 저도 기본적인 SQL 구문이랑 DB 전공서적 보면서 공부하고 있는데, 정말 공부할 게 많네요 흙흙…
정말 갈 길이 멀어보이긴 하지만… 차근차근 하면 언젠간 저도 도달할 수 있겠죠? ㅎㅎㅎ
정말 자세하게 답변해주셔서 감동받았습니다 ㅠㅠ @nyjin 님 진짜 감사드립니다!!

3개의 좋아요

사실 이런 질문은 구체적인 그 어드메가 잘 잡히지 않을 때 하는 거 같숨다.

그래서 이런 질문은 대부분, 자신이 뭘 모르는 지조차 모를 때 자주 하곤해요.

지금 하신 질문이, 어떤 영역의 어떤 구체적인 것에 대한 질문이 아니라
백엔드를 퉁치고 있잖아요? 그럼 답변도 퉁쳐서 돌아올 가능성이 높겠죠?

그러니까, 이렇게 생각해 보자구요.

백엔드가 뭐죠?
아, 프론트 엔드 반대? 아니면 프론트엔드가 아닌 다른 것?
그럼 프론트 엔드는 뭐죠? 엔드유저에게 노출되는 섭스?

그럼 백엔드는 엔드유저에게 노출되지 않는 서버류인가?
엔드유저는 뭐죠?

중략하고…
돌고 돌아서 엔드유저에게 데이터와 서비스를 제공하는 그 어드메? 라고 결론을 내렸다면…

그럼 백엔드가 어떻게 이루어지는 지 알아야겠죠?

서버라고 부르는 물리적인 부분을 제외하고
그 안에서 돌아가는 인스턴스 기준으로 각종 API 와 DB 와 기능을 제공하는 서비스 등등…

아, API 는 뭐죠? DB 는?




처음하신 하신 질문이 이런 큰 그림에 대한 이해를 바라는 것이 아니라
각론을 어떻게 공부해야하는지에 대한 질문이었다면

위와 같은 과정을 반복하면서

스스로 무엇을 알고 무엇을 모르는 지부터 확인하면서 정리하는 게 필요할 거예요.


무엇을 모르는지, 무엇을 알고 싶은 지 정리가 되면 답을 구하기가 훨씬 쉬워집니다.
(적어도 어떻게 답을 구해야할 지, 명확해 집니다.)

아예 큰 그림 전체를 모른다면, 그것을 따로 정리하기 위해 찾아보면 되겠죠?

중요한 건
이것들을 스스로 해야한다는 거예요.
왜냐하면 본인이 뭘 모르는 지는 아무도 모르기 때문이죠.

제가 추천 드리는 방법으로 본인이 생각하는 백엔드의 큰 그림을 그려보면
분명 여기에 질문하는 해서 얻는 답 이상의 것을 얻을 수 있을 거라 생각해욤

ㅇㅅㅇ/ 화이팅!

9개의 좋아요

넵 저도 다시금 제가 뭘 하고싶은지 먼저 정리해봐야겠습니다.
@Greg.Lee 님 감사합니다!

2개의 좋아요