[Spring] 5. 좋은 객체지향 프로그래밍이란 Ⅱ : 실습편 - 회원 도메인
·
BackEnd/Spring 🍃
1. 요구사항 정의하기이번 장에서는 이전에 예고드린 데로 앞 장에서 다룬 이론적인 내용을 적용해 보기 위해서 회원별로 주문 및 할인정책을 적용하는 예제를 만들어 보겠습니다. 참고로 이번 예제에서는 Java 만을 사용해서 예제를 구현해 보고, 이후에 스프링을 어떻게 바꾸는 지를 같이 알아볼 예정입니다.시작에 앞서 먼저 전체적인 밑그림을 그리기 위해 요구사항을 정의하는 것부터 시작하겠습니다. 이번 예제에서는 회원에 대한 도메인과 주문/할인 정책에 대한 도메인으로 각각 나눠서 살펴볼 것입니다. 먼저 회원에 대해서는 아래와 같은 요구사항을 요청했다고 가정해 봅시다.[비즈니스 요구사항 - 회원]1. 회원을 가입하고, 조회할 수 있다.2. 회원은 일반 등급과 VIP 등급이 있다.3. 회원 데이터는 자체 DB를 구축..
[Spring] 4. 좋은 객체지향 프로그래밍이란 Ⅰ : 이론편
·
BackEnd/Spring 🍃
1. 다시 객체지향 프로그래밍시작하기에 앞서 여러분이 생각하는 좋은 객체지향 프로그래밍은 무엇인가요? 각 기능별로 구분해서 사용하는 것? 모든 것을 클래스안에 정의해서 필요에 따라 해당 클래스의 객체를 불러와 사용하는 것? 여러가지 생각이 들겠지만, 이를 위해서는 "객체지향 프로그래밍"이 무엇을 의미하는 지를 먼저 생각한 후에 어떻게 프로그래밍하는 것이 좋은 객체지향 프로그래밍인지를 고민하는 것이 순서일 것입니다. 그만큼 객체지향 프로그래밍의 정의가 중요하다는 것인데요. 잠시 예전에 배웠던 자바의 기억을 떠올려봅시다. 자바를 포함해 다른 언어라고 해도 "객체지향 프로그래밍"이 갖는 특징을 이야기해보자면 아래와 같은 내용들이 있었다는 것을 기억하게 될 겁니다. 1. 다형성2. 추상화3. 캡슐화4. 상속이 ..
[Spring] 3. 스프링 빈과 의존관계 찍먹하기
·
BackEnd/Spring 🍃
1. 의존관계 설정하기1.1 의존관계란?이전 장에서 회원 관리 서비스의 마지막에 MemberService에서 사용되는 MemberRepository 가 테스트코드와 서로 다른 객체를 바라보고 있었고, 이를 통일시켜주기 위해서 MemberService 클래스에 있는 생성자에 MemberRepository를 주입하는 "의존성 주입 (Dependencies Injection)"에 대해 간략하게 설명드렸습니다. 이번 장에서는 이 부분으로 조금 더 깊게 알아보려하는데, 예시로 회원 컨트롤러가 회원 서비스와 회원 레포지토리를 사용할 수 있도록 의존관계를 추가한다고 가정해 보겠습니다. 이를 위해 controller 패키지에 "MemeberController"라는 회원 컨트롤러를 먼저 생성하도록 하겠습니다. [Java..
[Spring] 2. 웹 개발 기초
·
BackEnd/Spring 🍃
1. 웹 개발의 종류이번 장에서는 본격적으로 스프링을 이용해 웹 애플리케이션 개발을 해보고자 합니다. 시작에 앞서, 먼저 웹 개발의 종류를 먼저 살펴보도록 하죠. 종류는 크게 정적 컨텐츠, MVC와 템플릿 엔진 그리고 API를 개발하는 것이 있으며, 아래에서 각 항목별로 조금 더 설명을 드리겠습니다.1.1 정적 컨텐츠가장 먼저 정적 컨텐츠를 살펴보도록 하죠. 단어의 뜻 그대로 별다른 서버의 동작 없이 파일을 그대로 웹 브라우저에 보여주는 것들을 의미합니다. 대표적인 예시로는 앞선 장에서 예시로 했던 HelloSpring 의 index.html 웹 페이지 같은 것이 되겠습니다. 스프링에서는 정적 컨텐츠를 지원하는데, 이 때 "resources/static"이라는 폴더 이하에 저장된 컨텐츠를 기본적으로 사용..
[Spring] 1. 스프링을 시작하며...
·
BackEnd/Spring 🍃
1. Spring Framework스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이며, 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 여기서 엔터프라이즈급 개발이란, 기업을 대상으로 하는 개발을 의미하며, 주로 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 의미합니다.스프링이 등장할 당시, 2000년대 초의 자바 엔터프라이즈 애플리케이션은 작성 및 테스트가 매우 어려웠으며, 한 번 테스트하는 것이 번거로웠습니다. 이로 인해 소위 "느슨한 결합" 으로의 애플리케이션 개발이 어려웠으며, 특히 데이터 베이스와 같이 외부에 의존성을 두는 경우 단위테스트가 불가했습..
대학원 입학을 준비하며...
·
회고록
오늘은 최근에 원하는 학과로 대학원에 입학하게 되서, 그에 대한 준비과정을 정리하고 도움이 되는 글을 써볼까합니다.  1. 동기부여: 왜 대학원을 가려고 했을까?지원 동기를 설명하기전에, 먼저 왜 이러한 결정을 내리게 되었는지, 그 과정을 앞서 설명드리는 것이 좋을 것 같습니다. 저의 경우 2016년,  여름방학 때 교내 프라임사업단이라는 곳에서 데이터 분석에 대한 교육을 한다는 공고를 보았고, 지원해서 처음으로 데이터 분석을 접하게 되었습니다. 지금 생각해보면, 가설을 세우고, 깨끗한 데이터를 가지고 원하는 형태로 데이터를 가공한 뒤, 모델을 생성해 학습하고, 원하는 결과를 해석하고 도출하는 과정이 즐거웠습니다. 이를 시작으로 데이터 분석을 업으로 하기 위해 데이터분석 준전문가(ADsP) 를 취득했고,..
[회고록] 2024년을 돌아보며...
·
회고록
처음으로 이렇게 회고록을 작성해보니 내가 어떻게 지내왔고, 어떤 고민이 있었는지를 정리하기에 좋은 것 같네요. 앞으로 매년 저를 위해서 이렇게 정리를 해볼까합니다. 기술 블로그인 만큼 업무에서와 개인 공부를 위주로 작성해보려 합니다.1. 업무적으로현재 회사에 있기까지 총 7년이라는 세월이 지나갔고, 팀장으로써는 2년이 지나간 지금, 올해는 고민이 되는 것이 조금 많았던 것 같습니다. 처음에는 개발이 좋았고, 고민하면서 생각했던 로직을 구현하고, 원하는 결과가 출력되는 경험이 즐거웠습니다. 그래서 개발자가 좋았고, 데이터 분석이 좋았고, 현재까지도 데이터 엔지니어로 일하면서 많은 성장을 해온 것 같습니다. 하지만, 올해는 좋아하는 경험보다는 누군가는 꼭 해야하지만, 개인적으로는 하기 싫은 업무를 많이 맡아..
[Scala] 1. 스칼라 소개
·
Language/Scala 🛢️
0. 시작하면서 개인적으로 업무를 하면서, Apache Spark를 많이 사용하는 입장에서 Scala 언어에 대해서는 꼭 필요한 내용이 될 것이라 생각됩니다. 물론 Java 나 Python 으로도 Spark를 실행할 수 있지만, 기본적으로 Scala 를 기반으로 하였고, Java 와 같이 JVM을 활용하기 때문에 기존에 자바를 공부하시던 분들에게도 조금 더 익숙하게 다가오지 않을까 합니다. 이번 주제인 Scala 와 관련해서는 아래 책 2권을 참고하여 포스트를 작성할 예정이며, 좀 더 궁금하신 분들은 책에 대한 링크를 남겨 둘테니 참고하시면 좋겠습니다. [프로그래밍 인 스칼라 4판]https://product.kyobobook.co.kr/detail/S000001804990 Programming in S..
[ADP&ADsP] 5. 데이터 분석 기획 Ⅱ : 분석 마스터 플랜
·
Certification/ADP&ADsP 🪪
1. 분석 마스터 플랜1.1 마스터 플랜 수립1.1.1 분석 마스터 플랜 수립 프레임워크분석과제를 대상으로 전략적 중요도, 비즈니스 성과 및 ROI, 분석 과제의 실행 용이성 등 다양한 기준을 고려해 적용할 우선순위를 설정할 필요가 있다. 분석을 업무에 내재화 할지, 외부 데이터까지 포함해야할지 등 분석 적용 범위 및 방식에 대해서도 종합적으로 고려하여 데이터 분석을 실행하기 위한 로드맵을 수립한다. ISP(Information Strategy Planning)정보기술 또는 정보시스템을 전략적으로 활용하기 위하여 조직 내,외부 환경을 분석하여 기회나 문제점을 도출하고 사용자의 요구사항을 분석하여 시스템 구축 우선순위를 결정하는 등 중장기 마스터 플랜을 수립하는 절차를 의미한다. 일반적인 ISP 방법론을 ..
[ADP&ADsP] 4. 데이터 분석 기획 Ⅰ : 데이터 분석 기획의 이해
·
Certification/ADP&ADsP 🪪
1.데이터 분석 기획의 이해1.1 분석 기획 방향성 도출 분석 기획이란, 실제 분석을 수행하기 전에 수행할 과제의 정의 및 의도했던 결과를 도출할 수 있도록 적절하게 관리할 수 있는 방안을 사전에 계획하는 일련의 작업을 말한다. 즉, 어떤 목표를 달성하기 위해 어떠한 데이터를 가지고 어떤 방식으로 수행할 지에 대한 일련의 계획을 수립하는 작업이라고도 할 수 있다.1.1.1 분석 기획의 특징분석을 기획할 때 주의 사항은 데이터를 다루는 영역의 특성 때문에 IT 분야에 치중하는 현상이 발생할 수 있다는 점이다. 때문에 앞서 1장에서 본 3가지 영역에 대한 고른 역량과 시각이 요구된다. 분석 기획이라는 것이 해당 문제 영역에 대한 전문성 역량 및 수학/통계학적 지식을 활용한 분석 역량, 분석도구인 데이터 및 ..
SLYK1D
'분류 전체보기' 카테고리의 글 목록