전체 글 46

섹션 2 : Java Spring Framework 시작하기

Udemy Java Spring Boot 풀스택 클라우드 개발자 되기! AWS, React, Docker, Spring Data JPA, Spring Security를 배워보자! 강의를 공부하며 작성하였습니다. start.spring.io에서 Spring Framework 프로젝트 생성project : MavenSpring boot version : 3.4.2 (snapshot으로 안하게 주의!)Project Group : com.in28minutesArtifact : learn-spring-frameworkJava : 21그외의 사항은 그대로하고 Generate강의에서는 Eclipse를 사용하지만 편의를 위해 IntelliJ를 사용함.압축 해제하고 인텔리제이에서 파일 열기 (Maven 프로젝트임을 자동..

추가 : Font 적용하는 방법 (Expo 프로젝트 기준)

1. expo-font 설치npx expo install expo-font 2. assets/fonts 폴더에 .ttf 폰트 추가/my-app ├── assets │ ├── fonts │ │ ├── MyCustomFont.ttf │ │ ├── AnotherFont.ttf ├── App.js 3. 폰트 로딩 코드 추가 (App.js)import { useEffect, useState } from "react";import { Text } from "react-native";import * as Font from "expo-font";import { View } from "react-native";export default function App() { const [fontsLoaded,..

[필기 1과목] 2장 화면 설계

섹션 11 : 사용자 인터페이스 (UI; User Interface)UI : 서로 다른 두 시스템이나 소프트웨어 등을 서로 이어주는 부분 또는 접속 장치 UI의 구분CLI(Command Line Interface) : 명령과 출력이 텍스트 형태로 이뤄지는 인터페이스GUI(Graphical User Interface) : 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스NUI(Natural User Interface) : 사용자의 말이나 행동으로 기기를 조작하는 인터페이스모바일 기기에서 사용하는 행동, 즉 제스처(Gesture)에는 Tap(누르기), Double Tap, Drag(누른 채 움직임), Pan(누른 채 계속 움직임), Press(오래 누르기), Flick(빠르게 스크..

[필기 1과목] 1장 요구사항 확인

섹션 1 : 소프트웨어 생명 주기프로토타이핑 모형 : 새로운 요구사항이 도출될 때마다 이를 반영한 프로토타입을 새롭게 만들면서 소프트웨어를 구현하는 방법새롭게 도출된 요구사항을 충분히 반영구축하고자 하는 시스템의 요구사항이 불분명할 때 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본을 만들어 최종 결과물을 예측하는 개발 모형폭포수 모형 : "고전적 생명 주기 모형, 선형 순차적 모델"나선형 모형 : 프로토타입을 지속적으로 발전시켜 최종 소프트웨어 개발까지 이르는 개발 방법위험 관리가 중심인 소프트웨어 생명 주기 모형 - 개발 진행 과정에서 반복적으로 위험 분석 수행계획 -> 분석 -> 개발 -> 평가애자일 기법 : 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 두는 개발 방법론모..

31. NoSQL

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. RDB의 단점1. 유연한 확장성의 부족 : 어떤 column을 추가하고 싶으면 schema를 변경해야 함.이미 데이터가 많이 쌓여있는 테이블에 column을 추가하는게 write 작업을 많이 불러와야 해서 DB에 부담이 갈 수 있음. 2. 복잡한 JOIN은 read 성능의 하락 : 중복 제거를 위해 정규화 진행함에 따라, 여러 데이터를 한 번에 불러올 때 JOIN을 많이 쓰게 되는데, 이게 CPU 성능에 부담이 갈 수 있음. 3. scale-out에 유연한 DB가 아님 : RDB는 기본적으로 한 대의 컴퓨터 안에 저장되어 있음. -> 트래픽 과부하가 생기면 scale up을 하거나 replication(scale-out)을 하여..

30. DBCP(DB connection pool)

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. DBCP를 안 쓸 때의 문제점보통 Backend 서버와 DB 서버가 다른 컴퓨터에서 동작을 하므로 쿼리 요청/응답을 네트워크 통신(TCP 기반)으로 진행함.높은 송수신 신뢰성 but 연결 지양적인 특징이 있으므로 open/close connection 해야 하는데 이 동작에 시간이 소요됨.DBCP 개념과 원리미리 DB connection을 만들어두고 연결된 connection들을 pool처럼 관리함.쿼리 요청을 하기 전에 pool에서 connection을 빌려옴.connection 재사용 -> 열고 닫는 시간 절약DBCP와 DB 서버 설정 방법DB connection은 backend server와 DB 서버 사이의 연결을 의미하..

29. partitioning, sharding, replication

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. partitioningdatabase table을 더 작은 table들로 나누는 것vertical partitioning : column을 기준으로 table을 나누는 방식 (예 : 정규화)horizontal partitioning: row를 기준으로 table을 나누는 방식partitioning 예시Vertical partitioning 또 다른 예게시글 목록을 띄울 때 content 부분은 필요하지 않지만 테이블 전체를 secondary storage에서 불러와야 하므로 성능이 안 좋아질 수 있음.-> content를 따로 테이블을 분리한다. Horizontal partitioning 예 (hash-based)테이블의 크기가..

28. B tree 3부 : DB 인덱스로 쓰는 이유

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. 왜 DB index로 B tree 계열이 사용되는가?B tree나 self-balancing BST 둘다 시간복잡도는 O(log N)컴퓨터 시스템CPU : 프로그램 코드가 실제로 실행되는 곳Main memory(RAM) : 실행 중인 프로그램의 코드들과 코드 실행에 필요한 혹은 그 결과로 나온 데이터들이 상주하는 곳Secondary storage(SSD or HDD) : 프로그램과 데이터가 영구적으로 저장되는 곳, 실행 중인 프로그램의 데이터가 일부로 임시 저장되는 곳Main memory의 용량이 작으므로 Secondary storage에 있는 데이터와 swap 할 수도 있음.database도 여기에 저장됨. Secondary ..

27. B tree 2부 : 데이터 삭제

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. B tree 개념, 특징 복습이진 탐색 트리(BST)를 일반화한 트리부모 노드는 자녀 노드를 두 개 이상 가질 수 있음.노드가 자녀를 x개 가졌다면 key는 x-1개를 가짐.노드 내의 key들은 오름차순으로 저장모든 leaf node들은 같은 레벨에 있음.M : 각 노드의 최대 자녀 노드 수M-1 : 각 노드의 최대 key 수올림(M/2) : 각 노드의 최소 자녀 노드 수 (root node, leaf node 제외)올림(M/2)-1 : 각 노드의 최소 key 수 (root node 제외)B tree 데이터 삭제삭제도 항상 leaf node에서 발생삭제 후 최소 key 수보다 적어졌다면 재조정조정 방법1. key 수가 여유있는 ..

26. B tree 1부 : 개념, 특징, 데이터 삽입

본 내용은 유튜버 쉬운코드의 강의 "데이터베이스"를 참고하여 작성하였습니다. BST 복습이진 탐색 트리(Binary Search Tree) : 모든 노드의 왼쪽 서브 트리는 해당 노드의 값보다 작은 값들만 가지고 모든 노드의 오른쪽 서브 트리는 해당 노드의 값보다 큰 값들만 가짐.자녀 노드는 최대 두 개까지 자녀노드를 세 개 가지게 만들려면? -> 기준점이 되는 값이 2개(k1, k2)가 필요함.B tree자녀 노드의 최대 개수를 늘리기 위해 부모 노드에 key를 하나 이상 저장부모 노드의 key들을 오름차순으로 정렬정렬된 순서에 따라 자녀 노드들의 key 값의 범위가 결정됨.위의 방식을 사용하게 되면 자녀 노드의 최대 개수를 입맛에 맞게 결정해서 쓸 수 있다.B tree는 BST를 일반화한 tree최대..