분류 전체보기

    git flow-다른 fork에서 fetch merge하기

    여러 명과 git flow를 이용해 협업을 하면, 다른 사람이 작업한 작업물을 내 fork로 가져와 최신화를 시켜주어야 한다. 만약 develop을 최신화 하고 싶다면 % git fetch upstream devlop 으로 fetch를 진행해준다. 그 다음 % git merge FETCH_HEAD 를 진행해주면 된다. FETCH_HEAD 는 가장 최신 상태를 의미한다. release가 완료된 main을 최신화 할 경우 % git fetech upstream main % git merge FETCH_HEAD 으로 진행한다. 위 두 경우 모두 로컬에서 진행되는 것이기 때문에 머지한 후에는 remote로 push를 하는 것이 좋다.

    백준-1026-javascript

    https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을..

    javascript로 백준 문제 풀기-input

    백준에서 javascript로 문제를 풀 때 input을 조금 특이하게 사용한다. readline과 require('fs') 둘 다 사용가능 하지만, 실행시간의 차이 때문에 require('fs')를 강력 추천한다. require('fs') 모든 입력 값을 하나로 받는다. 따라서 여러 줄을 입력 받으면 split 등으로 한 줄씩 저장해야 한다. 실행 시간이 짧아서 주로 사용된다. 한 줄만 받을 경우 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString(); // 한줄로 사용할 경우 let input = require('fs').readFileSync("/dev/stdin").toString(); 여러 줄을 받고 한 줄씩 나눌..

    OSI 7계층이란?

    OSI 7계층은 국제표준화기구(ISO)에서 만든 네트워크 전역을 7개의 계층으로 설명하는 모델이다. 7 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 이루어져 있다. 1. 물리 계층 물리 계층은 케이블이나 여러 물리적인 방법으로 정보를 0과 1로 전송한다. 따라서 실질적으로 굉장히 복잡한 단계로 뽑힌다. 단순 정보 전달이 가장 중요한 단계로, 오류 제어를 하지는 않는다. 2. 데이터 링크 계층 point to point 에서 신뢰성있는 전송을 보장하기 위한 계층이다. 따라서 CRC 기반의 오류 제어와 흐름 제어가 필요하다. 이 때 주소 값은 물리적인 MAC 주소를 사용한다. 3. 네트워크 계층 네트워크 계층은 IP 주소를 부여받는 단계이다. 네..

    프로그래머스-구명보트

    https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 ..

    git-git flow 사용하기

    git으로 여러 명이 협업하기 위한 마지막 단계로 git flow가 있다. git flow는 하나의 프로젝트를 여러 명이 개발하고 관리하기 위한 하나의 확장 프로그램이다. 여러 개의 branch를 사용하는 컨벤션을 제공하고, 이를 여러 명이 fork하여 사용할 수 있게 해준다. 먼저 git flow를 설치해야 한다. 설치를 완료하면 자신이 작업할 repo를 클론해온다. 그 후 그 repo에서 git flow init을 하고 기본 설정을 사용하기 위해 enter를 치면 2개의 브랜치가 생긴다. git branch 로 확인한 branch 를 보면 2개의 branch가 존재한다. 그 중 main은 일반적인 상황에서는 절대 건드리지 않는다. 실제 서비스로 배포할 때 사용하는 용도이다. develop이 우리가 사..

    git-commit convention

    git을 쓰는 이유는 다양하지만 역시 버전관리와 협업이 그 중 가장 큰 비중을 차지할 것이다. 따라서 버전관리와 협업에서 도움을 주기위해선 commit message를 공들여 만들 필요가 있다. function을 바꾸고 commit message에 ''function change' 라고만 적으면 무슨 함수를, 어떻게 바꿨는지 전혀 티가 나지 않기 때문에 협업에도 안좋고 심지어 혼자하는 프로젝트여도 시간이 지나면 내가 뭐 한건지 알 수가 없다. 따라서 commit message 쓸 때 이렇게 작성하자! 라는 convention이 존재한다. 물론 회사마다, 팀마다 약간의 차이는 있겠지만 습관으로 익혀두면 어딜 가서든 금방 적응할 수 있을 것이다. 1. 머리말을 쓰자. 머리말은 분류를 나타낸다. 내가 하는 이..

    git-개인 repo clone, add, commit, push

    '본 글은 mac 시스템에서 돌아감.' git은 버전관리 시스템이다. git에 대한 자세한 설명은 다음에 쓰겠다. 여기서는 그냥 git 사용법만 알아볼 것이다. 가장 먼저 할 것은 git과 로컬을 연동하고 repo를 만드는 것인데, 그것도 나중에 알아보겠다. (한번에 하기에는 양이 너무 광범위하다.) github에서 repo를 만들고 나면 그 repo의 (gitlab 등의 사이트도 물론 가능하다.) Clone을 가져올 수 있다. 원하는 링크를 선택하면 터미널을 이용해 %git clone {주소} 를 적는다. 그러고 나면 해당 repo가 폴더로 생성된다. 그 해당 폴더로 들어가 % ls -a 를 입력하면 .git 파일이 들어가 있는 것을 확인할 수 있다. 해당 파일이 git의 기능을 가능하게 해주는 파일이..