본문 바로가기
반응형

노트/질문 노트17

[질문 노트] : 개발 설계 산출물 작성하는 방법 메뉴구조도 구현할 프로그램 메뉴 구조를 문서화 기능의 뼈대가 되는 문서 메뉴구조도 항목은 사이트맵의 항목으로 생각하면 된다. 프로그램인지 페이지인지 구분을 해야 한다. 프로그램명세서 구현할 프로그램들을 문서화 한 파일이다. 예를 들어 JSP 프로그램이라 생각하면 된다. 회원관리 회원가입 회원정보 수정 로그인 로그아웃 메뉴구조도를 확장시켜 디테일하게 적어준 것이라고 보면 된다. 프로그램 ID를 보고 화면설계서에서 ID를 비교해서 어떻게 구현할지 참고한다. 프로그램 ID는 유일한 값으로 중복되지 않게 작성한다. DB 작업은 CRUD를 체크해 작성한다. C : INSERT R : SELECT U : UPDATE D : DELETE WBS(Work Breakdown Structure) PM이 가장 중요하게 생각.. 2022. 3. 10.
[질문 노트] : Model을 사용하는 이유에 대해서 강의를 보다 Model을 사용해야 하는 이유에 대해 질문하는 사람이 있어서 답변을 확인해 보고 유익해서 메모해 뒀었다. “애플리케이션 데이터를 뷰로 전달해야 하는 일이 많다.” → “개발자가 데이터를 뷰로 전달하는 기능을 구현해도 되지만 이런 부분을 내부적으로 하여 추상화시킨 것이 바로 Model이다.” → “핸들러의 파라미터에 Model을 추가하고 model에 데이터를 저장하면 반환되는 뷰에서 해당 데이터를 사용할 수 있게 된다.” 참고 : 인프런 김영한 MVC1편 강의 어느 게시글의 답글 중.. 2022. 2. 3.
[질문 노트] : domain, repository, vo, dto의 차이점 강의를 듣다 보면 domain, vo, repository, dao가 자주 나오고 내가 사용했던 DTO 또한 자주 나온다. 비슷한 개념 같은데 헷갈리는 부분에 대해서 찾아봤다. 우선 vo는 2가지 의미로 사용된다고 한다. 단순히 데이터 값을 전달하기 위한 용도로 사용되는 객체 이 경우 DTO라고도 부른다. DTO가 데이터를 전송하는 목적으로 사용하는 객체이기 때문이다. 도메인 주도 설계에서 이야기하는 값 객체(Value Object) vo라고 하면 이 의미로 생각하면 된다. repository와 dao는 거의 같다고 봐도 무방하고 깊게 보자면 repository는 엔티티 객체를 보관하는 저장소, dao는 데이터에 접근하도록 DB 접근 관련 로직을 모아둔 객체이다. 하지만 개념 차이일 뿐이고 실무에서는 비.. 2022. 2. 2.
[질문 노트] : Spring Boot 프로젝트 폴더 구조는 어떻게 만드는 게 좋을까? project controller dto service mapper 프로젝트를 진행하기 전에 학교에서는 위에 패키지 구조 처럼 controller, service, mapper, dto, util을 다 나누어서 진행했다. 하지만 Git Hub를 찾아보면 폴더 구조가 내가 배우고 있는 부분하고 많이 다른 것을 확인할 수 있었는데 왜 그렇게 하는지 궁금했다. project member AController BController service ASerivce BService 팀 프로젝트를 할 떄 다른 사람에게 물어보니 단위를 작게 나눌 수록 좋다고 해서 위와 같이 나누는 것도 고민을 해 봤다. 그에 관한 내용을 찾아보니 딱 정해진 내용은 없다고 한다. 제일 좋은 방법은 프로젝트의 상황과 규모에 따라서 거기에 .. 2022. 2. 2.
[질문 노트] : MVC 패턴이 무엇인가요? MCV 패턴 Model - View - Controller 대화형 애플리케이션을 모델, 뷰, 컨트롤러 3개의 서브 시스템으로 구조화하는 패턴입니다. 모델 핵심 기능과 데이터를 보관합니다. 뷰 사용자에게 정보를 표시합니다. 컨트롤러 사용자로부터 요청을 입력받아 처리합니다. 각 부분이 별도의 컴포넌트로 분리되어 있어 서로 영향을 받지 않고 개발 작업 수행이 가능합니다. MVC 패턴은 컴포넌트를 분리하며 코드의 효율적인 재사용을 가능하게 하고 여러 개의 뷰가 있어야 하는 대화형 애플리케이션 구축에 적합합니다. 2021. 12. 19.
[질문노트] : JDBC가 무엇인가요? 🧐 질문 | JDBC가 무엇인가요? Java Database Connectivity (JDBC) Java에서 데이터베이스에 접속할 수 있도록 하는 Java API입니다. JDBC API는 JDK에서 제공합니다. JDBC를 사용하기 위해서는 JDBC Driver가 필요합니다. 참고링크 2021. 12. 19.
[질문 노트] : MyBatis가 무엇인가요? 🧐 질문 | MyBatis가 무엇인가요? 마이바티스는 개발자가 지정한 SQL, 저장프로시저, 몇 가지의 고급 매핑을 지원하는 퍼시스턴스 프레임워크입니다.(프로시저나 SQL 문으로 객체들을 연결시킵니다.) JDBC로 처리하는 코드와 파라미터 설정 및 결과 매핑을 대신해 줍니다. JDBC를 통해 개발하지 않고 MyBatis 같은 프레임워크를 이용해서 개발을 하는 게 더 편합니다. 데이터 베이스 레코드에 원시타입과 Map 인터페이스 자바 POJO를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있습니다. 프로그램 코드와 SQL을 분리할 수 있는 장점이 있습니다. 쿼리의 분리로 코드의 간결성 및 유지 보수성이 향상됩니다. resultType resultClass 등 Vo를 사용하지 않고 조회 결과를 사.. 2021. 12. 14.
[질문 노트] : PaaS-Ta, PaaS가 무엇인가요? 🧐 질문 | PaaS-Ta, PaaS가 무엇인가요? 파스타는 오픈소스 개방형 클라우드 플랫폼입니다. PaaS 기업의 애플리케이션 실행 환경 및 애플리케이션 개발 환경을 서비스로 제공하는 모델입니다. 기업 사용자가 자사에서 애플리케이션 개발 환경을 처음부터 구축하는 것은 많은 시간이 소요되므로 PaaS에 미리 마련되어 있는 실행 환경이나 데이터 베이스들을 통해 단기간에 응용 프로그램을 개발하여 서비스를 제공할 수 있습니다. PaaS의 이용 용도는 개발 및 테스트 시행에 큰 처리 능력이 필요한 경우 혹은 자사에서 운용 중인 애플리케이션의 최대 부하를 분산 처리하는 경우 등을 들 수 있습니다. 스마트폰, 태블릿 등 모바일 서비스에서 인터넷 접속이 필요한 경우에도 적합합니다. 참고링크 PaaS-TA 2021. 12. 14.
[질문 노트] : Pod이 무엇인가요? 🧐 질문 | Pod이 무엇인가요? Pod(파드)는 쿠버네티스의 최소 실행 단위입니다. 아무리 작고 단순한 프로세스 하나를 실행시키려 해도 Pod을 통해 수행됩니다. 쿠버네티스는 Pod을 통해 기본 가상 환경을 제공합니다. Pod은 가상머신의 instance, 도커의 컨테이너와 같이 쿠버네티스에서 지원하는 가상환경 실행 단위입니다. 특징 1개 이상의 컨테이너 실행 Pod은 1개 이상의 컨테이너를 가질 수 있습니다. 보통은 1개의 Pod 내에 한 개의 컨테이너를 실행하지만 상황에 따라서 2개, 많게는 3개까지 컨테이너를 실행합니다. 동일 노드에 할당 Pod 내에 실행되는 컨테이너들은 반드시 동일한 노드에 할당되며 동일한 생명 주기를 갖습니다. Pod 삭제 시, Pod 내의 모든 컨테이너가 전부 같이 삭제됩니.. 2021. 12. 13.
[질문 노트] : Kubernetes, K8s는 무엇인가요? 🧐 질문 | Kubernetes, K8s는 무엇인가요? 쿠버네티스는 여러 서버로 구성된 클러스터 환경에서 컨테이너화된 프로세스를 관리하기 위한 컨테이너 오케스트레이션 플랫폼입니다. 컨테이너를 여러 서버에 걸쳐 여러 개를 실행시키는데 체계적으로 관리하는 기술을 컨테이너 오케스트레이션이라고 합니다. 컨테이너는 가상 머신과 다르게 호스트 운영체제를 공유합니다. 그래서 가상머신에 비해 더 가볍고 마찬가지로 독립적인 실행 환경을 가질 수 있습니다. 쿠버네티스를 통해 컨테이너의 배포, 확장, 스케쥴링을 자동화할 수 있습니다. 참고링크 쿠버네티스란 무엇인가? 2021. 12. 13.
[질문 노트] : Docker가 무엇인가요? 🧐 질문 | Docker가 무엇인가요? 도커는 가상 실행 환경을 제공해주는 오픈 소스 플랫폼입니다. 도커에서는 가상 실행 환경을 Container(컨테이너)라고 부릅니다. 도커 플랫폼이 설치된 곳이라면 컨테이너로 묶인 애플리케이션을 어디서든 실행할 수 있습니다. 컨테이너는 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줍니다. 어떤 프로그램도 컨테이너로 추상화할 수 있고, 어디서든 실행할 수 있습니다. 클라우드 컴퓨팅으로 빠르게 인프라를 구축할 수 있게 되어 서비스 또한 빠르게 배포할 수 있는 방법을 고민했는데 도커가 이를 해결하였습니다. 참고링크 2021. 12. 13.
[질문 노트] : CF-CLI가 무엇인가요? 🧐 질문 | CF-CLI가 무엇인가요? The CLoud Foundry Command Line Interface PaaS-Ta에 설치한 애플리케이션이나 서비스에 접속, 제어합니다. MySQL 등 서비스를 직접 접속할 수 있는 SSH(Secure Shell) Tunnel을 제공합니다. 참고링크 BOSH CLI 가이드 Commands 2021. 12. 12.
[질문 노트] : BOSH란 무엇인가요? 🧐 질문 | BOSH란 무엇인가요? BOSH는 PaaS를 이루는 VM들을 설치 및 관리하는 도구입니다. VMWare 공식 문서에 따르면 BOSH는 분산 시스템의 배포 및 수명주기 관리를 지원하는 오픈소스 툴이라고 합니다. Cloud Foundry를 구축하기 위한 주된 수단으로 사용되고 있으며 Google, Pivotal 및 VMWare와 같은 Cloud Foundry Foundation의 여러 핵심 멤머들이 참여하고 있습니다. 다양한 IaaS 공급업체 전반에 걸쳐 구축을 지원할 수 있습니다. BOSH는 manifest 파일을 사용하여 사용자에게 전체 시스템의 작동 방식과 각 부분의 상호 작용 방식을 정의하도록 요청합니다. BOSH manifest는 해당 시스템의 모든 부분을 manifest를 통해 추적합.. 2021. 12. 12.
[질문 노트] : Sharding System은 무엇인가요? 🧐 질문 | Sharding System은 무엇인가요? 빅데이터 환경은 초당 몇 만건 이상 되는 수 많은 데이터를 빠른 시간 내에 수집하고 저장해야 하기 때문에 분산, 집계하여 사용자가 원하는 통계 정보로 가공할 수 있어야 합니다. 시스템 구축 환경을 위해 효과적인 데이터의 분산 저장 및 처리 기술이 필요한데 이를 Sharding System(샤딩 시스템)이라고 합니다. 목적 데이터의 분산 저장 빅데이터를 디스크에 저장할 때 발생하는 Write Scaling 문제는 애플리케이션의 성능 저하 문제를 유발시키고 샤딩 시스템 전체의 성능 저하 현상을 유발시킵니다. 빅데이터의 효율적인 저장과 관리를 위해 하나의 서버가 아니라 여러 서버를 통해 분산 처리했을 때 가장 이상적으로 작동할 수 있습니다. 빠른 성능 분.. 2021. 12. 8.
[질문 노트] : Master Server와 Slave Server는 어떻게 데이터를 동기화 하나요? 🧐 질문 | Master Server와 Slave Server는 어떻게 데이터를 동기화 하나요? 깊게 들어가면 어렵지만 간단하게는 아래와 같습니다. 클라이언트가 마스터 데이터 서버에 데이터를 보내줍니다. 마스터 서버는 받은 데이터를 Binary Log에 저장해 둡니다. 슬레이브 서버가 최신 정보를 요청합니다. 마스터 서버는 Binary Log에 저장한 최신 정보를 읽습니다. 마스터 서버가 최신 정보를 슬레이브 서버에 전달합니다. 슬레이브 서버는 이 정보를 Relay Log에 기록해 둡니다. 슬레이브 서버가 받은 변경 사항을 DB에 적어 둡니다. 다른 클라이언트나 서버 마스터가 저장해둔 데이터를 쿼리로 요청합니다. 슬레이브 서버가 동기화된 데이터를 전달해줍니다. 2021. 12. 8.
Master & Slave Server가 무엇인가요? 🧐 질문 | Master & Slave Server가 무엇인가요? 하나의 서버에 데이터가 입력, 수정, 삭제될 때 동일한 구조를 가진 또 다른 서버에 동일한 데이터가 입력, 수정, 삭제 된다면 메인 서버에 장애가 발생하더라도 복제 서버를 이용해 메인 서버를 빠르게 복구할 수 있습니다. Replica(레플리카)기능은 빅데이터의 백업을 통해 안정성을 보장하기 위한 솔루션입니다. 리프리카 기능을 위해 마스터 노드와 슬레이브 노드가 필요합니다. 경우에 따라서는 많은 수의 슬레이브 노드를 설정할 수도 있지만 예상할 수 없는 다양한 장애가 발생할 수 있으므로 최소 3대 정도의 슬레이브 노드 설정을 적정 개수로 권장합니다. 결국 Master & Slave Server는 Master(메인) 서버에 과부하가 걸리는 것을.. 2021. 12. 7.
Replica Set이 무엇인가요? 🧐 질문 | 레플리카 셋이 무엇인가요? 마스터 서버와 슬레이브 서버의 문제점을 개선, 보완한 기능이 레플리카 셋 입니다. 레플리카 셋에서 실시간으로 사용되는 메인 서버를 Primary(프라이머리)서버라고 합니다. 사용자들은 프라이머리 서버를 통해 데이터를 입력, 수정, 삭제, 조회합니다. 슬레이브 서버의 백업 데이터로 마스터 서버를 복구하기 위해서는 일정 시간동안 서비스를 중지해야 하는 문제점이 발생합니다 실시간 복구 작업을 수행할 수 없다는 뜻 입니다. 프라이머리 서버에 장애가 발생하게 되면 실시간 서비스가 안되기 때문에 치명적인 상황에 놓이게 됩니다. 리프리카 셋에서 두 번째 서버를 Secondary(세컨더리)서버라고 합니다. 프라이머리 서버에 장애가 발생해 서비스를 수행할 수 없을 때 프라이머리 서.. 2021. 12. 7.
반응형