일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- github
- 스프링 시큐리티
- 영속성 컨텍스트
- 깃허브
- 호이스팅
- 레디스
- 스프링부트
- sqld
- in-memory
- Redis
- JPA
- 자바의 정석
- VMware
- 스프링 부트
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 이벤트루프
- Spring Boot
- 정보처리기사
- 캐시
- SQL
- 다이나믹프로그래밍
- 게시판
- 분할정복
- 정처기
- spring security
- document database
- MongoDB
- 실행 컨텍스트
- NoSQL
- 동적계획법
- Today
- Total
목록분류 전체보기 (72)
FreeHand

VMware 설치에 이어서 가상머신을 생성한다. [Linux] VMware Workstation Pro 설치윈도우에서 리눅스를 사용하기 위해선 가상머신 소프트웨어가 필요하다.기존에 오라클 VirtualBox를 사용하고 있었는데 VMware를 사용해보려고 한다. vmware 또는 broadcom으로 검색하면 홈페이지가 나pressky99.tistory.com 1. 가상머신 생성VMware Workstation Player를 클릭해서 VMware를 실행한다.초기 화면에서 Create a New Virtual Machine을 클릭한다. 운영체제를 설치하는 방법을 선택하는 창이다.iso파일이 있다면 두번째를 선택하고 해당 파일로 진행하면 된다.마지막 항목은 운영체제 없이 가상머신만 생성하는 것이다. 게스트 OS..

윈도우에서 리눅스를 사용하기 위해선 가상머신 소프트웨어가 필요하다.기존에 오라클 VirtualBox를 사용하고 있었는데 VMware를 사용해보려고 한다. vmware 또는 broadcom으로 검색하면 홈페이지가 나온다. (vmware에서 다운로드를 누르면 결국 broadcom으로 이동함)홈페이지에서 다운로드를 클릭하면 로그인을 하라고 나온다. 설치하려면 로그인을 필수로 해야 한다.https://www.vmware.com/ VMware by Broadcom - Cloud Computing for the EnterpriseOptimize cloud infrastructure with VMware for app platforms, private cloud, edge, networking, and securit..

목차1. 동기 처리와 비동기 처리2. 이벤트 루프와 태스크 큐 1. 동기 처리와 비동기 처리현재 실행 중인 작업이 종료할 때까지 다음 작업이 기다리는 방식을 동기 처리라고 한다. 동기 처리 방식은 작업을 순서대로 하나씩 처리하므로 실행 순서가 보장되는 장점이 있지만, 앞의 작업이 종료할 때까지 이후 작업들이 기다려야 하는(블로킹, blocking) 단점이 있다. 현재 작업이 종료되지 않아도 다음 작업을 실행하는 방식을 비동기 처리라고 한다. 비동기 처리 방식은 동기 처리 방식과 반대로 작업의 실행 순서가 보장되지 않는 단점이 있지만 블로킹이 발생하지 않는다는 장점이 있다.자바스크립트에서 setTimeout 함수와 setInterval 함수, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 동작한다...

목차1. 소스코드 1.1 소스코드의 종류 1.2 소스코드의 평가와 실행2. 실행 컨텍스트 2.1 실행 컨텍스트 스택 2.2 변수 호이스팅 1. 소스코드1.1 소스코드의 종류ECMAScript 사양은 4가지 소스코드가 있다.전역 코드: 전역에 존재하는 소스코드함수 코드: 함수 내부에 존재하는 소스코드eval 코드: 빌트인 전역 함수인 eval 함수에 인수로 전달되어 실행되는 소스코드모듈 코드: 모듈 내부에 존재하는 소스코드소스코드의 종류에 따라 생성하는 실행 컨텍스트가 다르다. 1.2 소스코드의 평가와 실행자바스크립트 엔진은 소스코드를 소스코드 평가와 소스코드 실행 두 과정으로 나누어 처리한다. 소스코드 평가 과정에서는 실행 컨텍스트를 생성하고 변수, 함수 등의 선언문만 먼저 실행하여..

목차1. 옵티마이저(Optimizer) 1.1 옵티마이저 1.2 규칙기반 옵티마이저(RBO, Rule Based Optimizer) 1.3 비용기반 옵티마이저(CBO, Cost Based Optimizer)2. 실행계획(Execution Plan) 2.1 실행계획 2.2 SQL 처리 흐름도(Access Flow Diagram) 1. 옵티마이저1.1 옵티마이저옵티마이저는 사용자가 질의한 SQL문에 대한 최적의 실행 방법을 결정한다. 이때 최적의 실행 방법을 실행계획이라고 한다. 즉 옵티마이저는 SQL문에 대한 실행계획을 결정한다. 데이터베이스의 동작 과정을 간단히 표현하면 다음과 같다.사용자가 질의한 SQL문의 결과를 추출할 수 있는 실행 방법은 다양할 수 있다. 그중 최적의 방..

사용자 수에 따른 규모 확장성 단일 서버서버 하나에서 모든 작업을 처리하는 구조이다. 사용자는 도메인 이름을 통해 웹사이트에 접속한다.DNS에서 도메인 이름에 해당하는 IP 주소를 주고 이 IP 주소로 HTTP 요청을 보내면 서버는 HTML 페이지 또는 JSON 형태의 데이터를 응답으로 반환한다. 데이터베이스어떤 데이터베이스를 사용할 것인지를 결정하는 것도 중요하다. 일반적으로 관계형 데이터베이스를 사용하지만 특정 상황에서 비관계형 데이터베이스를 고려할 수 있다. ex)- 아주 낮은 응답 Latency가 요구되는 경우- 비정형 데이터를 다루는 경우- 대량의 데이터를 다루는 경우 수직적 규모 확장 vs 수평적 규모 확장수직적 규모 확장(Scale up)은 서버를 더 고사양으로 만드는 것이다. 더 좋은..

시작하며3년 전에 학교 수업에서 웹 애플리케이션을 만들어서 발표하는 과제가 있었다. 그때 다른 팀에서 MongoDB를 사용했었다. 교수님: 왜 MongoDB를 사용한거니? MongoDB가 뭔데? 알고 쓴거니?학생: 어... 유튜브에서 MongoDB로 만들길래 그냥 따라 했어요. 위 대화가 아직도 생생하게 기억난다. 지금 다시 생각해 보면 MongoDB를 사용한 것이 좋은 선택인지 아닌지 보다도 서비스의 요구사항과 MongoDB의 특징을 전혀 모르고 이유도 없이 그냥 사용했다는 것이 교수님 입장에서는 답답했을 것 같다. 이 포스팅에서 정리하는 정도의 내용이라도 알았더라면 그 학생은 교수님의 회사로 간택당했을 수도 있지 않았을까... MongoDB 소개MongoDB는 Document Database인 No..

시작하며지난번에 Redis의 특징과 데이터 타입에 대해 정리했었다. 이번에는 캐시에 대한 전반적인 개념과 스프링 부트 프로젝트에서 다양한 상황에 적용할 수 있는 redis사용법을 정리하려고 한다. 스프링 (부트) 기반으로 간단한 프로젝트를 해봤다면 쉽게 이해할 수 있을 것 같다. 프로젝트 설정Spring Boot에서 Redis를 사용하려면 역시 의존성을 추가해야 한다.나는 Spring Initializr에서 Spring Data Redis 의존성을 추가했다. build.gradle의 dependencies에 아래 코드를 추가해도 된다.implementation 'org.springframework.boot:spring-boot-starter-data-redis' 의존성 추가 이후에는 applicati..

시작하며백엔드 개발자에게 캐시는 중요한 개념이다. DB에 있는 데이터에 접근하는 것은 결국 디스크 I/O가 발생하는 것이고 이는 매우 느리기 때문에 대용량 요청이 들어올 경우 병목현상의 원인이 된다. 이를 부분적으로 해결하기 위한 방법으로 캐시를 활용할 수 있고 대표적으로 많이 사용하는 Redis의 특징과 데이터 타입에 대해 알아본다. Redis의 특징Redis는 흔히 사용하는 RDB와 몇 가지 차이가 있다. 우선 SQL을 사용하는 RDB와 달리 SQL을 사용하지 않는 Key-Value 형태의 저장소인 NoSQL이다.따라서 복잡한 쿼리를 작성할 필요가 없고 Hash를 이용해 값을 읽으므로 속도가 더 빠르다.그러나 쿼리를 사용하지 않는 것은 범위 검색과 같은 복잡한 질의가 불가능하다는 단점이 되기도 한다..

시작하며언제인지 기억은 잘 안 나지만 JPA를 사용하여 엔티티를 작성하는데 DB 테이블의 컬럼을 그대로 가져와 작성한 것을 보았다. 물론 그렇게도 할 수는 있지만 내가 강의를 통해 배운 것과는 달랐기에 나름대로 설명을 했었는데, 그 내용을 정리해볼까 한다. 그리고 더 나아가 JPA의 여러 연관관계도 다룬다. JPA를 처음 배울 때만 하는 실수이니 JPA를 이미 좀 아는 사람은 볼 필요 없다. 객체지향스럽게JPA는 DB 테이블과 자바의 객체를 매핑하는 ORM이다. 다음과 같은 DB 테이블이 있다고 해보자. 그럼 위 테이블을 자바 객체(엔티티)로 표현하려면 어떻게 해야할까@Entitypublic class Player { @Id @Column(name = "ID") private Long ..