전체 글 135

패스트캠퍼스 환급챌린지 59일차 미션 (3월 30일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

이번 강의에서는 AdminLTE를 사용하여 어드민 서비스의 화면을 구현하는 작업을 시작하였다. 어드민 서비스는 사용자들이 사용하는 일반적인 서비스와 달리, 다양한 데이터를 한눈에 볼 수 있도록 차트나 테이블과 같은 컴포넌트를 필요로 한다. AdminLTE는 이러한 다양한 기능을 지닌 화면을 만드는 데 있어서 조금 더 빠르고 효율적으로 구현할 수 있도록 도움을 주는 프론트엔드 디자인 라이브러리라고 볼 수 있다. 유사한 역할을 하는 라이브러리로, 이전 프로젝트에서 사용하였던 BootStrap 이라는 라이브러리가 있는데, 이러한 라이브러리를 사용하면, 디자인적인 고민을 크게 덜고 기능 구현에 집중하여 화면을 만들 수 있다는 장점이 있다. 실제로 다양한 프로젝트를 진행하는 개발자 입장에서는, 아무래도 개발을 조..

학습 후기 2024.03.30

패스트캠퍼스 환급챌린지 58일차 미션 (3월 29일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

어드민 서비스 프로젝트 진행을 위해 도메인 설계를 진행하였다. 지난 게시판 서비스 프로젝트 과정과 동일한 내용으로 진행하였는데, 이는 도메인이라는 것이 서비스 개발에 있어서 핵심적인 부분이기 때문이다. 이러한 설계 단계는 다소 재미가 없을 수 있겠지만, 추후 원활한 개발을 위해서는 초기 단계에서 철저하게 도메인을 구상해야 한다. 이번 도메인 설계에서는 이전과 다르게 회원 정보에 권한이라는 특징을 새롭게 추가하여 관리하기로 하였는데, 이는 회원이 갖고 있는 권한에 따라 서비스를 이용하는데 제약을 두기 위함이다. 이러한 권한 개념을 도입한다는 강의 내용을 듣고는 상당히 반가웠는데, 실제 시스템을 운영 하고 있는 수많은 회사에서 이미 사용되고 있는 개념이기 때문이다. 이번 프로젝트를 통해 학습자는 실무에서만 ..

학습 후기 2024.03.29

패스트캠퍼스 환급챌린지 57일차 미션 (3월 28일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

이번 파트에서는 어드민 서비스를 개발하는 프로젝트를 진행하게 되었다. 기존에 만들었던 게시판 서비스의 게시글, 댓글, 회원 등 다양한 정보를 운영자가 직접 관리할 수 있는 어드민 서비스를 개발하는 수업이다. 이를 위해, 이번 강의에서는 프로젝트 기획을 진행하였다. 기존의 게시판 서비스에서는 고객이 서비스 외부에서 접속하는 게시판 사용자였다면, 이번에 만들 어드민 서비스는 내부에서 접근하는 운영자로서 게시판 관리자가 고객이 된다. 어드민 서비스는 웹으로 제공되어, 다양한 정보를 관리할 수 있게 되며, 다양한 부가기능 또한 넣을 것이다. 이러한 어드민 서비스는 실제 대부분 회사에 구축되어 있을 수밖에 없는데, 그 이유는 실제 운영되는 서비스가 있다면, 그 서비스에 관련된 정보를 관리하는 운영자, 즉 내부 직..

학습 후기 2024.03.28

패스트캠퍼스 환급챌린지 56일차 미션 (3월 27일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

강의를 통해 게시판 서비스를 고도화하는 작업까지 모두 마무리하고, 최종적으로 헤로쿠에 고도화된 버전의 프로젝트를 배포하는 시간을 가졌다. 헤로쿠는 Salesforce라는 회사에서 제공해주는 클라우드형 플랫폼 기반 서비스(PaaS)인데, 개발자가 보다 편리하게 서비스를 배포할 수 있게 지원해준다. 헤로쿠는 Spring에 친화적인 플랫폼이기도 하고, 또 무료로 서비스를 배포할 수 있는 것으로 유명하여, 이전에 IT 교육을 듣는 시기에도 프로젝트를 모두 완성한 후에는 헤로쿠에 최종적으로 배포하곤 하였다. 이전에는 몇번의 설정만으로 간편하게 전세계 모든 이용자가 접근할 수 있는 나만의 웹 프로젝트가 배포되는 것이 신기하다고만 느껴졌는데, 어느 정도 개발 경험이 쌓이고 실제로 시스템 운영도 하는 입장이 되어보니,..

학습 후기 2024.03.27

패스트캠퍼스 환급챌린지 55일차 미션 (3월 26일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

Swagger를 이용하여, API를 문서화하는 작업을 학습하며, 게시판 기능 고도화 챕터를 모두 마무리할 수 있었다. API 문서화는 실제로 프로젝트를 진행하는 단계에서도 중요하고, 나아가, 오픈한 서비스를 운영하는 단계에서도 아주 중요한 요소라는 생각이 든다. 이전에 IT 교육을 받는 과정에서, 나는 프론트엔드 개발을 맡고, 팀원은 백엔드 개발을 맡아 협업을 한 경우가 있었는데, 당시 팀원인 백엔드 개발자가 API 정보를 보기 쉽게 안내해주는 방법으로, Swagger UI로 구현된 페이지를 공유해 적이 있었다. 당시에 나는 Java, Spring을 이용한 백엔드 기술에 대한 지식이 전무했기 때문에, 어떻게 저렇게 깔끔한 UI로 보기 쉽게 API 정보를 정리할 수 있지 라는 생각을 하였는데, 오늘 강의를..

학습 후기 2024.03.26

패스트캠퍼스 환급챌린지 54일차 미션 (3월 25일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

보안 기능 고도화 작업을 위해 이번 강의에서는 Vault 개념을 학습하였고, 나아가 Hashicorp Vault를 프로젝트에 적용해보는 시간을 가졌다. Vault는 일종의 솔루션으로 볼 수 있는데, 민감정보를 암호화화여 Secret이라는 개념으로 관리하고, 사용자 인증, 권한 부여, 클라이언트에게 민감 데이터를 송수신하는 등 전반적인 보안을 보장하는 역할을 수행한다. Vault는 보안이 한층 더 강화된 솔루션 방식으로 기능을 제공하는데, 프로젝트 개발자로서는 비교적 노력을 크게 들이지 않고도, 더욱 안정적인 서비스 운영을 할 수 있게 되고, 사용자 역시, 민감한 정보를 안전한 환경에 제공함으로써 서비스에 대한 만족도가 높아지게 된다. 그런데, 현재 다니고 있는 회사에서는 Vault와 같은 보안 솔루션을 ..

학습 후기 2024.03.25

패스트캠퍼스 환급챌린지 53일차 미션 (3월 24일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

인증 기능 고도화하는 작업을 최종 마무리하는 작업을 진행하였다. 대표적으로 카카오톡 로그인 기능을 기존에 만들어둔 웹 어플리케이션의 뷰 부분에 Kakao 이미지를 삽입한 버튼을 추가하였고, 해당 버튼을 누르면, 카카오 API를 통해 사용자 인증을 처리하는 작업이 진행되도록 기능을 구현하였다. 이로써, 사용자는 카카오 계정을 통해, 인증을 완료할 수 있게 되었고, 해당 정보를 통해 게시판 서비스를 온전히 이용할 수 있는 환경이 구축되었다. 특이사항은, 카카오 인증을 통해 가입한 회원의 경우에는, 기존 DB에 접근하여 회원가입한 계정과 다르게 Kakao의 고유id를 결합한 값으로 User 도메인의 id를 최종적으로 만드는 방식을 채택하였다. 또한, 소스코드 내, 보안적으로 신경써야 할 부분을 체크하여 소스코..

학습 후기 2024.03.24

패스트캠퍼스 환급챌린지 52일차 미션 (3월 23일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

카카오톡으로 로그인 하기 기능을 도입함으로써 인증 기능 고도화 작업을 진행하는 학습을 하였다. 기존의 회원 로그인 방식은, 사용자가 회원가입하거나, 로그인할 때, DB에 직접 사용자 정보를 저장하여 민감정보를 직접 관리하는 방식이었다면, 이번 인증 기능 고도화 작업을 통한 인증 기능 방식은, 외부 시스템, 즉 카카오에 사용자 인증을 위임하는 방식이다. 이러한 방식을 적용할 때, 기존 시스템은 크게 두가지 선택을 하여야 한다. 첫번째는 사용자가 로그인 등 인증이 필요한 액션을 할 때마다, 매번 외부 시스템의 인증 기능 API를 호출함으로써, 인증과 관련된 작업은 전적으로 카카오와 같은 외부 시스템에 맡기는 방안이며, 두번째는 초기에 로그인하는 과정에서만, 외부 시스템의 API를 이용하여 인증 절차를 위임하..

학습 후기 2024.03.23

패스트캠퍼스 환급챌린지 51일차 미션 (3월 22일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

인증 기능 고도화 작업을 진행하여, 본격적으로 카카오톡으로 로그인하기 기능을 구현하는 시간을 가졌다. 기존의 로그인 방식은 Spring Security를 이용하여, 사용자의 ID/PW 정보 뿐만 아니라, 이메일 주소, 전화번호, 주민등록번호와 같은 모든 민감한 정보를 우리쪽 데이터베이스에 저장하여 관리하는 방식이었다. 실제로는 많은 사이트에서 이러한 방식으로 회원 인증 기능을 구현하여 사용하고 있는데, 이러한 관리 방식은 법적인 규제를 상당 부분 받으며, 보안적인 부분도 꼼꼼하게 신경써줘야 한다. 만약, 회원의 민감한 개인정보를 직접 관리하는 사이트가 해커의 공격으로 인해 개인정보 유출 사고가 발생하게 된다면, 해당 서비스의 신뢰도는 크게 깎일 것이고, 이는 비즈니스 모델의 몰락을 초래하는 결과를 만들 ..

학습 후기 2024.03.22

패스트캠퍼스 환급챌린지 50일차 미션 (3월 21일) : 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online. 강의 후기

댓글 기능 고도화 작업 중, N차 대댓글 기능을 최종적으로 완성하였고, 이후에는 고객의 기능 롤백 요구사항이 왔을 경우를 대비하여, 변경사항을 되돌리는 작업까지 진행해보았다. 실제로 현재 시스템 운영을 하고 있는 입장에서, 프로그램 개선 건으로인해 사이드 이펙트가 발생하는 경우가 많은데, 그럴 때 가장 효과적인 해결방법이 이전 소스코드 상태로 되돌리는 롤백이다. 내가 반영한 소스코드가 시스템 장애를 일으킬 때, 빠르게 원인을 분석하여 수정하는 것이 가장 좋겠지만, 급박한 상황에서 소스코드 전체를 분석하여 원인을 찾기는 아무래도 어려운 경우가 많다. 따라서, 원활한 시스템 운영을 위해서는 소스코드를 이전으로 되돌리는 것이 중요한데, 과거에는 변경 이전의 소스코드를 따로 복사하여 저장해놓는 식으로 보관해두다..

학습 후기 2024.03.21