• 티켓 내역
  • 회원가입
  • 로그인
클래스 제휴 멘토지원
로그인
홈 클래스 LIVE 멘토 콘텐츠
#IT개발/데이터 #직무

서버 개발자, 어떻게 공부를 시작해야 할까요?

안녕하세요, 멘토님. 저는 입사한 지 3개월 된 신입 안드로이드 개발자입니다.
 
그동안 일하면서 안드로이드 개발만으로는 경쟁력이 부족하다 느끼고 있었는데요. 그러던 중에 동료 개발자분을 보며 서버 개발에도 관심이 생겨 이렇게 질문을 드리게 되었습니다.


Ⓒfabian grohs

 
*스프링과 DB 모델링을 배우고 싶은데, 어떻게 공부를 시작하면 좋을까요? 그리고 서버 개발자가 되기 위해서 더 필요한 것이 있다면 어떤 게 있는지 조언 부탁드립니다.
 
그럼 답변 기다릴게요. 질문 들어 주셔서 감사합니다.
 


*스프링 : 스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 불린다. 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공하고 있다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다.
 

멘토의 답변


안녕하세요, 멘티님. 글을 보니 서버 개발자를 새롭게 준비하시려는 중인 것 같네요. 일단 안드로이드에서 *API를 이용한 네트워크 통신을 붙여 보신 경험은 있으나, 스프링은 다뤄 보신 적이 거의 없다는 것을 전제로 해서 말씀드릴게요.


ⒸNegative Space

 
스프링과 마이바티스를 기본적으로 배워야 해요
본격적인 답변을 드리기 전에, 제가 주로 서버 구축을 할 때 사용하는 기술들을 조금 말씀드리는 게 좋을 것 같네요. 저는 스프링 프레임워크 v3.2와 *마이바티스(Mybatis, 데이터베이스 매퍼)를 사용하고요. 스프링으로 짠 프로젝트는 웹 애플리케이션 서버인 Tomcat 7에서 돌리고 있어요. (현재 최신 버전은 8이에요.) 로드 밸런싱 등을 위해서 사용하는 Tomcat 상위의 웹 서버는 nginx를 사용하고 있고, 서버 운영체제는 ubuntu16을 사용합니다.
 
기본적으로 스프링과 마이바티스를 익히는 게 가장 중요한 학습이 될 것 같고요. 이외에 tomcat 설정 방법, nginx 설정 방법 정도가 부차적인 학습이 될 듯합니다.
 
스프링 학습, 인터넷과 국비 과정을 이용하세요
이제 스프링 학습에 관해 말씀드려 볼게요. 스프링 프레임워크는 현재 버전 3과 버전 4, 그리고 버전 4를 기반으로 한 스프링 부트(Spring boot)가 나와 있어요. 스프링의 경우, 여타의 프레임워크에 비해 설정이 무척 복잡하고 까다로운 편인데요. 대신, 한번 세팅만 해두면 그 후에 API를 작성하는 데는 시간이 얼마 걸리지 않는다는 장점이 있습니다.
 
스프링 기초를 배우기 위해서는 인프런(Inflearn.com)에서 무료 인터넷 강의를 들을 수 있고요. 그 외에도 내일 배움 카드를 발급받으신 후, 학원에 가셔서 직장인 환급 과정으로 열리는 스프링 강좌를 들어보시는 것도 큰 도움이 될 거예요. 저 역시 먼저 학원에 가서 배운 후, 나중에 작업을 하면서 조금 더 깊게 공부했거든요.
 
그밖에 스프링에서는 정석이라고 불리는 ‘토비의 스프링’이란 책이 있는데요. 두껍기는 하지만 권해드릴 만한 책인 것 같아요. 주로 Servlet, Java Bean, Dependency Injection, Control Of Inversion, Aspect Oriented Programming과 같이 스프링 프레임워크의 근간이 되는 기초 개념들을 잘 설명하는 것으로 알려져 있습니다.


Ⓒmath

 
학습 이후에 실제 API 서버를 구축해 보세요
이렇게 스프링을 학습하셨다면 그 이후에는 실제로 작업을 해 보면 좋은데요. 아무래도 안드로이드 개발자이시니 만큼, 실제로 API 서버를 구축해서 하나의 앱 서비스를 만들어 보시는 게 가장 좋을 것 같아요. 의외로 프로그래밍은 그럭저럭 별문제 없이 잘하는데 *소프트웨어 전개(deploy)할 때 서버 세팅을 못 해서 문제가 생기는 경우가 많거든요.
 
보통 많이 쓰는 호스팅 업체에서 SSD 가상 서버를 사면 일 년에 44,000원 정도 드는데, 학습 용도로 쓰기 알맞은 형태의 서버라서 추천해 드리고 싶습니다. JSP 단독 호스팅도 있기는 한데, 클러스터링이나 로드밸런싱을 못하기도 하고요. 터미널 기반이 아니다 보니, 저는 답답함을 많이 느껴요. 가상 서버 하나 구입하셔서 API 서버를 직접 구축해보시면 좋을 것 같네요.
 
실제로 API 서버를 구축하실 때에는 API 문서를 명세해 보는 것도 추천합니다. 이 부분에 대한 중요성은 안드로이드 개발자인 멘티님께서 더 잘 아실 거로 생각합니다.


ⒸLukas

 
DB 모델링 과정과 사용 툴은 이렇습니다
다음으로는 DB 모델링에 대해 말씀드릴게요. 저는 서비스 기획이 나오고, 화면 디자인이 다 나온 시점에서 API 명세를 먼저 적습니다. 그다음에 API 명세에서 뿌려 주거나 입력받는 데이터들을 나열해 보고 이걸 테이블로 묶어본 후, 데이터 독립성과 무결성에 대해서 고민을 해요.
 
제가 대형 서비스를 다뤄 보지는 못해서요. 전문적으로 DB 설계를 하는 *DBA 쪽에 흥미가 있으시다면, DBA 쪽으로 완전히 전향하셔야 할 것 같고요. 서버 개발자라면 API 명세에 모델링(Entity) 적고, 그대로 DB에 얹혀 주는 정도까지만 하셔도 좋지 않을까 싶어요.
 
제 경우 스프링 통합 IDE인 Spring Tool Suites (Eclipse 기반)에 Amateras 플러그인을 깔아서 모델링을 해요. 여기에 관련된 자료는 링크를 참고해 주세요. (Amateras Modeler 링크 https://github.com/takezoe/amateras-modeler)
 
통상의 모델링 다이어그램과, 각 테이블 간의 Has-Many 관계를 표현할 수 있는 기능에 더해 DDL 생성이 되기 때문에 저는 개인적으로 Amateras를 선호합니다.
 

Ⓒpor suwat


실제 기획을 통해 배포까지 꼭 해 보세요
끝으로 제가 드렸던 말씀을 간단히 정리해 보면요.
 
스프링 프레임워크 기초 강좌 수강 -> 간단한 블로그나 메모장 앱 기획해 보기 -> 데이터 모델링 -> API 명세 -> 코딩 -> 실 서버 배포
 
이 과정으로 학습하시는 게 가장 빠르고 확실한 방법이라고 말씀드릴 수 있습니다.
 
지금 회사에 다니신다고 하니, 사내에서 지급하는 자기 계발비와 내일 배움 카드 제도, 또 회사 서적과 사수를 적극적으로 활용하셔서 원하시는 성과를 이루시길 바랍니다. 궁금하신 사항이 있으시다면 다시 질문 주세요. 감사합니다.
 


*API : API(Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다.
 
*MyBatis : 마이바티스(MyBatis)는 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 애너테이션(annotation)을 사용하여 저장 프로시저나 SQL 문으로 객체들을 연결시킨다. 마이바티스는 아파치 라이선스 2.0으로 배포되는 자유 소프트웨어이다.
 
*소프트웨어 전개 : 소프트웨어 전개(deploy)는 소프트웨어 시스템을 사용할 수 있도록 만드는 모든 활동을 말한다.
 
*DBA : 데이터베이스 관리자(database administrator, DBA)는 한 조직 내에서 데이터베이스를 설치, 구성, 업그레이드, 관리, 감시하는 일을 맡은 사람을 가리킨다.

현직자 답변이 궁금하다면?
지금 무료로 확인하세요!
답변 보기
©모든 저작권은 해당 콘텐츠 제공자 또는 해당 콘텐츠 제공자와 잇다가 공동으로 보유하고 있으며, 콘텐츠의 편집 및 전송권은 잇다가 가지고 있습니다.
7
취업고민 즉문즉답 온라인 클래스 클래스 더보기
YuJin Lee 멘토
케이스티파이
NEW
19일 후 마감
전략/기획 · 해외취업 특강
외국계 기업 14년차 멘토가 알려주는 해외취업 준비 방법과 노하우

2023.6.21(수) 19:00
온라인
강원도일자리재단
최진영 멘토
쿠팡
4.88 (16)
26일 후 마감
영업/영업관리 · 직무 특강
이커머스 대표기업 쿠팡 멘토님에게 배우는 '성공하는 자소서'와 '영업/영업관리 직무'

2023.6.28(수) 19:00
온라인
2023 배재대학교
박은실 멘토
SK행복나눔재단
5.0 (2)
26일 후 마감
공무원/비영리 · 직무 특강
현직자와 사회공헌재단, 비영리재단 알아보기!

2023.6.28(수) 19:00
온라인
강원도일자리재단
오리지널
정길웅 멘토
현대홈쇼핑
4.25 (4)
27일 후 마감
마케팅/MD · 포트폴리오특강
홈쇼핑 MD 현직자 멘토에게 배우는 포트폴리오 작성법!

2023.6.29(목) 19:00
온라인
잇다 오리지널
강민지 멘토
스타벅스커피코리아
4.94 (33)
종료
마케팅/MD · 직무 특강
스타벅스코리아 멘토에게 듣는 '마케팅' 직무의 취업과 커리어 목표 설정

2023.5.31(수) 19:00
온라인
2023 배재대학교
클래스 더보기
함께 보면 좋은 콘텐츠 콘텐츠 더보기
IT개발/데이터
회사는 신입 프로그래머에게 어떤 수준을 기대하나요?
안녕하세요. 컴퓨터 학부 2학년에 재학 중인 학생입니다. 저는 미래에 IT 직종에서 프로그래머로 종사하고 싶습니다. 멘토님이 평소 올려두신 글을 보며 궁금했던 점들이 많이 해소됐습니다. 또한, 프로그래머 취준 과정과 회사 생활도 여쭙고 싶습니다. N 기업에 신입 프로그래머로 취업 시 필요한 스펙과 준비 사항이 궁금합니다.
이세린 멘토
네이버 · 검색시스템
53
약 4년 전
IT개발/데이터
데이터 마이너, 빅데이터 시대에 떠오르는 직업
데이터 마이너라는 직업으로 진로를 정했는데, 아직 아는 것도 없고 데이터 마이너 관련 지식이 부족합니다. 데이터 마이닝은 데이터 베이스와 어떻게 다른가요? 데이터 베이스는 데이터를 기반으로 원하는 정보를 찾는 것으로 알고 있는데, 데이터 마이닝은 정확히 어떤 것인지 궁금합니다. 데이터 마이너 관련해 조언 부탁드려요.
멘토
IT개발/데이터
16
약 4년 전
IT개발/데이터
머신러닝 입문, 어떻게 하면 좋을까요?
저는 현재 외국계 회사에서 기술영업 업무를 하고 있는 2년 차 회사원입니다. 머신러닝이나 클라우드 쪽으로 경력을 쌓고 싶지만, 어떻게 해야할 지 잘 모르겠습니다. 머신러닝 업무 관련 지식을 쌓기 위한 프로그램이나 자격증, 머신러닝 공부 경로 등을 알려주실 수 있을까요? 현직자의 조언을 받고 방향을 잡고 싶습니다.
이세린 멘토
네이버 · 검색시스템
20
약 4년 전
IT개발/데이터
비전공자의 IT 취업, 갖춰야 할 세 가지 역량
저는 IT 분야의 일을 하고 싶은데 전공도 법학이고 관련 지식, 자격증도 없습니다. 전공과 취업은 큰 상관이 없다는 말을 들었지만, 다른 분야는 몰라도 IT는 공학을 전공해야 경쟁력이 있는 거 아닌가요? 제가 IT 분야에서 인턴을 하거나, 취업하려면 어떤 직무 역량을 키워야 할까요? 멘토님의 조언 기다리겠습니다.
멘토
IT개발/데이터
34
약 4년 전
콘텐츠 더보기

Footer

가치 있는 커리어 경험을 연결합니다.
We connect with valuable work experience.
  • 온라인 클래스
  • 실시간 클래스 후기
  • 🚀 오리지널 클래스
  • 멘토 찾기
  • 멘토 지원하기
  • 자주하는 질문
  • 문의하기
  • 광고 매체 소개
  • B2B 대학교육 서비스

© 2023 잇다, Inc. All rights reserved.

회사소개 |
이용약관 |
개인정보 처리방침 |
네이버 블로그 |
브런치
대표번호: 02-2653-1022 (10:00 ~ 19:00) / 점심시간: 13:00~14:00 (주말 및 공휴일 휴무)
㈜레디앤스타트 | 사업자등록번호 : 117-81-82177 | 직업정보제공사업: 서울청 제 2019-1호 | 통신판매업 신고번호: 제2019-서울종로-0806호 | 대표 : 조윤진 서울특별시 종로구 종로1길 50 비동 3층 143호(중학동, 더케이트윈타워)