Ubuntu 환경 만들기
Ubuntu 환경 설치vmware 설치vmware란?Virtual 의 의미는 단어 그대로 가상 즉, 현실에 존재하지는 않지만 마치 존재하는 것과 같은 즉, 허상을 의미합니다.Machine 의 의미 또한 단어 그대로 기계, 기계적 장치를 의미합니다. 이를 조합하면 현실에 존재하지 않는 가상의 기계를 의미하게 됩니다.
vmware는 사용하는 컴퓨터는 한 대 이더라도, 마치 여러대를 사용 하는 듯한 효과를 가질 수 있으며여러 운영체제를 동시에 다룰 수 있는 가상의 공간을 만들어 주는 프로그램입니다.
Ubuntu iso 파일 설치우분투, 무엇인가?Ubuntu(우분투)는 캐로니컬이 개발한 컴퓨터 OS(운영체제) 입니다.우리의 일상에서는 주로 Windows(운영체제)을 주로 사용하지만, Ubuntu는 오픈소스로 개발된 운영체제입니다.
우분투를 알기위해서는 아래 3가지 개념을 알아야합니다. Unix(유닉스) , GNU , Kernal
Unix(유닉스)라는 운영체제는 Linux(리눅스)가 탄생하 ...
내부 인프라 만들기 프로젝트[목차]
내부 배포 환경 구축하기
목차
Chapter1. Ubuntu 환경 설치
Chapter2. Ubuntu에서 GitLab 사용하기
Chapter3. Ubuntu에서 Jenkins 사용하기
Chapter4. Ubuntu에서 Nexus 사용하기
Chapter5. 배포할 SpringBoot 프로젝트 준비하기
Chapter6. Jenkins 에서 GitLab 연동
Chapter7. GitLab CI/CD 구축
Chapter8. 배포 시뮬레이션
배경
다니고 있는 회사에 프로젝트 구축팀으로 입사해 리눅스 서버에 배포시스템이 구축되는 상황이 많이 발생했습니다.서버에 GitLab / Jenkis / Nexus 등 많은 서버들이 설치되고 해당 환경 설정을 해야하는 상황이 발생했습니다.부족한 Linux 지식과 인프라 지식을 보충하기 위해 Docker/ Docker-compose를 이용하여 해당 서버를 연동 구축하는 프로젝트를 진행했습니다.이 프로젝트를 통해 Maven 프로젝트로 구성된 S ...
JavaScript
JavaScript참고영상 을 보고 공부한 내역입니다.
1강 script async 와 defer의 차이점 및 앞으로 자바스크립트 공부 방향
head에 script 삽입
사용자가 페이지를 로드하기에 너무 오래걸림
body 끝 부분에 script 삽입
페이지 로드는 빠르게 진행
js가 의존적인 웹사이트라면 정상적인 페이지를 보기위해 오래걸림
head에 asyn 옵션으로 script 삽입
병렬적으로 진행 (빠르게 저장됨)
페이지 로딩 전에 js가 불러와질 수 있음
head에 defer 옵션으로 script 삽입
asyn vs deferasyn - 다운로드 속도에 따라서 먼저 excute (병렬)
defer - 다운로드 후 순서 대로 excute
use strict비상식적인 변수나 함수를 선언 할 수 없게 만듬
12345// 1. Use strict// added in ES5// use this for Valina JavaScript'use s ...
HackerRank SQL
SQL 연습The CITY table is described as follows:
Revising the Select Query IQuery all columns for all American cities in the CITY table with populations larger than 100000. The CountryCode for America is USA.
123456SELECT *FROM CITYWHERE POPULATION > 100000 AND COUNTRYCODE = 'USA'
Revising the Select Query IIQuery the NAME field for all American cities in the CITY table with populations larger than 120000. The CountryCode for America is USA.
123456SELECT NAMEFROM CITYW ...
월간 코드챌린지
두개 뽑아서 더하기python1234567891011from itertools import combinationsdef solution(numbers): answer = [] # 미리 내림차순으로 정렬 com_num = combinations(numbers, 2) list_num = list(set([sum(x) for x in com_num])) list_num.sort() return list_num
java12345678910111213141516171819202122232425import java.util.ArrayList;import java.util.Arrays;class Solution { public int[] solution(int[] numbers) { ArrayList<Integer> list = new ArrayList<Integer>(); fo ...
CodeTest 연습 (그래프)
그래프가장 먼 노드1차답안12345678910111213141516171819202122232425262728293031323334import collectionsdef solution(n, vertex): dists = {i:0 for i in range(1, n+1)} #(1) edge = collections.defaultdict(list) for v, u in vertex: #(2) edge[v].append(u) edge[u].append(v) q = collections.deque(edge[1]) #(3) dist = 1 while q: for i in range(len(q)): v = q.popleft() ...
스프링 JPA
JPA(Java Persistence API)
제품의 이름이 아니고, API 표준의 이름이다.
JPA 표준 규격대로 만들어진 제품 중에서 유명한 것이 Hibernate 오픈소스 라이브러리이다.
우리가 사용하는 Spring JPA에 Hibernate 라이브러리가 포함되어 있다.
장점
SQL 명령을 구현할 필요가 없다. DBMS 제품을 교체하더라도 소스코드를 수정할 필요가 없다.
자동으로 처리되는 부분이 많아서, 구현할 소스코드의 양이 상대적으로 적다.
관계형 데이터베이스가 아니더라도 적용할 수 있다.
단점
복잡한 조회 명령을 구현해야 할 때, 익숙한 SQL 명령으로 구현할 수가 없고,
JPA의 고급 기능을 공부해야 한다.
123456789101112131415161718192021222324252627282930employeeRepository.findAll() 메소드employee 테이블에서 레코드 전체 목록을 조회한다.List<Employee> 객체가 ...
Java CodeTest 연습 (이분탐색)
이분탐색
이진 탐색이란 데이터가 정렬돼 있는 배열에서 특정한 값을 찾아내는 알고리즘이다.
이분 탐색을 하고자 할 때 이미 정렬이 되어있어야 합니다.
left, right로 미드값을 잡아줍니다.
mid 값과 구하고자 하는 값을 비교 합니다.
비교할시 mid 값보다 구하고자 하는 값이 높으면 left를 mid+1로 만들어주고 낮으면 right를 mid-1로 만들어 줍니다.
left > right 가 될때까지 1~3번을 반복해서 구하고자 하는 값을 찾습니다.
이렇게 검색을 하면 전체를 검색하는 경우인 시간복잡도가 O(n) 인거에 비해서 O(log(n)) 으로 적다고 합니다.
입국심사1차답안12345678910111213141516171819202122232425262728293031323334import java.util.Arrays;class Solution { public long solution(int n, int[] times) { ...
CodeTest 연습 (이분탐색)
이분탐색
이진 탐색이란 데이터가 정렬돼 있는 배열에서 특정한 값을 찾아내는 알고리즘이다.
이분 탐색을 하고자 할 때 이미 정렬이 되어있어야 합니다.
left, right로 미드값을 잡아줍니다.
mid 값과 구하고자 하는 값을 비교 합니다.
비교할시 mid 값보다 구하고자 하는 값이 높으면 left를 mid+1로 만들어주고 낮으면 right를 mid-1로 만들어 줍니다.
left > right 가 될때까지 1~3번을 반복해서 구하고자 하는 값을 찾습니다.
이렇게 검색을 하면 전체를 검색하는 경우인 시간복잡도가 O(n) 인거에 비해서 O(log(n)) 으로 적다고 합니다.
입국심사1차답안123456789101112131415161718192021def solution(n, times):def solution(n, times): people = len(times) answer = 0 min_times = [0] * people # 처음 사람 ...
스프링 Mybatis
ORM(Object Relational Mapping)
Object 는 객체지향 언어의 객체를 의미한다.
Ralational 은 관계형 데이터베이스(Relational Database)의 데이터를 의미한다.
Mapping이 의미하는 것은 객체지향 언어의 객체와 관계형 데이터를 서로 변환해 준다는 것이다.
관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환하여 리턴해 주고, Java 객체를 관계형 데이터베이스에 저장해 주는 라이브러리 혹은 기술을 말한다.
JPA(Java Persistence API)
제품의 이름이 아니고, API 표준의 이름이다.
JPA 표준 규격대로 만들어진 제품 중에서 유명한 것이 Hibernate 오픈소스 라이브러리이다.
우리가 사용하는 Spring JPA에 Hibernate 라이브러리가 포함되어 있다.
장점-SQL 명령을 구현할 필요가 없다. DBMS 제품을 교체하더라도 소스코드를 수정할 필요가 없다.
자동으로 처리되는 부분이 많아서, ...