전체 글
1. .git 파일이 있는 폴더로 들어간다. 2. rebase 명령어를 입력한다. git rebase HEAD~[거슬러 올라가고 싶은 커밋 수] -i 예를 들어, 바로 전 커밋의 메세지를 변경하고 싶다면 git rebase HEAD~1 -i 를 작성한다. 3. 이후 뜨는 메시지에서 pick -> reword로 변경하고 :wq로 저장 및 종료한다. 4. 커밋 메시지리스트가 나오면 i를 눌러 편집을 실행하고 다시 :wq로 저장한다. 5. 강제 push 를 하여 수정 내용을 원격 저장소에 반영한다. git push --force 현재 브랜치에 강제 푸시하는 법 git push origin [브랜치명] -f
일반적으로 Pageable에 sort 포함 defualt 값을 줄 때는 @PageableDefault()를 사용한다. @PageableDefault(direction = Sort.Direction.DESC, sort = "name") Pageable pageable, 하지만 @PageableDefault()는 한 가지의 sort조건만 줄 수 있다. Pageable 다중 sort 1. pageable에 여러 sort 조건을 주고 싶을 때는 @SortDefault.SortDefaults를 사용하면 된다. @SortDefault.SortDefaults( { @SortDefault(sort = "name", direction = Sort.Direction.ASC) , @SortDefault(sort = "age..
Part1. CI/CD란? CI란 Continuous Integration 즉, 지속적인 통합이라는 의미이다. 지속적인 통합이란, 어플리케이션의 소스 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레파지토리에 통합하는 것을 의미한다. CD는 Continuous Delivery 혹은 Continuous Depolyment 두 용어 모두의 축약어이다. 전자인, Continuous Delivery는 공유 레파지토리로 자동으로 Release 하는 것을 의미하며, 지속적인 서비스 제공을 뜻한다. 후자인, Continuous Depolyment는 Production 레벨까지 자동으로 deploy 하는 것을 의미하며, 고객에게 배포하는 것을 뜻한다. 정리하면, CI는 에플리케이션의 소스를 빌드, 테스트, 병합하는 ..
1. Problem 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합..
https://programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 1. Problem 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부..
자식 프로세스를 생성하고자 할 때 fork 함수를 사용하면 된다. 복사에 의한 생성 원본 프로세스(부모 프로세스)에서 fork()를 호출하면 복사본 프로세스(자식 프로세스)가 생긴다. fork함수에 의해 생성된 자식 프로세스는 부모 프로세스의 메모리를 그대로 복사해 가지게 된다. fork 함수 호출 이후 코드부터 각자의 메모리를 사용하여 실행된다. fork 함수가 실행 된 직후 자식 프로세스와 부모 프로세스와 동일한 주소 공간의 복사 부모 PID는 43889이고 자식 PID는 43895이다. 부모와 자식의 분리 #include #include #include int main() { pid_t pid; int x; x = 0; pid = fork(); if(pid > 0) { // 부모 코드 x = 1; ..
프로그램이란 (실행되기 전)명령어, 코드 및 정적인 데이터의 묶음 프로세스란 실행 중인 프로그램 하드 디스크에 있는 프로그램이 프로세스가 되면서 메모리에 적재 된다. 운영체제로부터 시스템 자원을 할당 받는 작업의 단위 스레드 단위 작업을 지원하기 위한 자원 할당의 단위 → 프로세스가 동작 중이라는 것은 한 프로세스에 있는 스레드가 실행 중이라는 것 프로세스 생성 시 PCB블록이 생성되어 프로세스가 관리된다. 프로세스 메모리 영역 Stack - 매개변수, 지역 변수 등 임시적인 자료 Heap - 동적으로 할당되는 메모리 Data - 전역 변수 code - 프로그램의 코드 PCB 각 프로세스는 운영체제에서 PCB(Process Control Block)으로 표현됨 프로세스를 제어하기 위한 정보를 모아둠. 포..
이상 현상이란? 테이블을 설계할 때 잘못 설계하여 데이터를 삭제,수정,삽입할 때 논리적으로 오류가 생기는 것 대부분 이상현상이 발생하는 데이터의 중복성때문인데 이를 제거하는 과정이 정규화 1. 삽입 이상 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상입니다. 강의를 아직 수강하지 않은 새로운 학생을 삽입할 경우 강의코드 속성에는 null값이 들어가야 하는 문제가 생깁니다. 2. 갱신 이상 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 이상입니다. 강의코드가 "AAC3"인 서준호의 전화번호를 수정할 경우, 3번째 튜플의 데이터만 수정될 것입니다. 그러면 3,4번째 튜플은 같은 사용자의 데이터 인데도 불구하고 전화번호가 다르게 됩니다. 3. 삭제 이상 어떤 ..
트랜잭션이란? DBMS에서 하나의 최소한의 작업 단위이다. 여러 사람이 데이터베이스를 동시에 사용하더라도 데이터에 문제가 없어야 한다. 원자성, 일관성, 격리성, 지속성 = ACID가 지켜져야 함. ex) 입출금 시스템 ACID 특성 원자성(Atomicity) : 트랜잭션이 수행하는 연산들을 모두 정상적으로 처리하거나 모두 처리하지 않아야 한다는 all-or-nothing 방식 일관성(Consistency) : 데이터베이스의 데이터는 일관된 상태를 유지해야 한다. ( = 미리 정의된 규칙에만 수정이 가능해 숫자 컬럼에 문자열값 X) //트랜잭션의 결과가 제약 조건을 해치면안된다. 격리성(Isolation) : 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭하지 못하도록 하여 각각의 트랜잭션이 독립적..