2024/09 11

Git - branch를 이용하자

기본적인 main 브랜치가 있고 사용자가 생성한 브랜치가 있을 것이다.그런데 왜 굳이 브랜치를 따로 두어 개발을 할까?그냥 메인 브랜치에 푸시하고 업데이트하면 훨씬 간결하지 않을까. 첫 번째로 새로운 기능을 추가하거나 기존 기능을 수정할 때 에러가 날 확률이 높다.물론 깃에서 제공하는 백업 시스템으로 돼돌릴 수 있지만 여러모로 귀찮다.새로운 브랜치를 생성하고 메인 브랜치를 가져와서 새로운 브랜치에 푸시한다.그러면 메인과 똑같은 새로운 브랜치가 생성된다.메인 브랜치를 건드리지 않고 새로운 브랜치에서 여러가지 작업을 하고 테스트하여 정상 작동한다?깃허브에서 pull request를 생성해 검토하여 메인 브랜치에 병합하면 작업이 끝난다. 이렇게 하면 코드 유지보수와 품질이 좋아진다. 브랜치를 생성과 동시에 이..

Git 2024.09.26

branch란?

브랜치(Branch)는 Git에서 작업하는 코드의 독립적인 버전을 생성하는 기능입니다. 이를 통해 여러 개발자가 동시에 서로 다른 작업을 수행할 수 있게 도와줍니다. 브랜치의 주요 개념은 다음과 같습니다:1. 독립적인 개발브랜치를 사용하면 여러 기능, 버그 수정, 실험 등을 독립적으로 진행할 수 있습니다. 각 브랜치는 서로 영향을 주지 않기 때문에 안전하게 작업할 수 있습니다.2. 기본 브랜치Git 저장소에는 기본적으로 main 또는 master라는 기본 브랜치가 있습니다. 일반적으로 이 브랜치는 배포 가능한 상태의 코드를 담고 있습니다.3. 병합(Merge)작업이 완료된 브랜치는 다른 브랜치(예: 기본 브랜치)와 병합할 수 있습니다. 이를 통해 변경 사항을 통합하고, 최종적으로 배포할 수 있는 상태로 ..

Git 2024.09.25

Github 시작하기

깃허브란 무엇인가?쉽게 얘기하자면 깃에서 만든 파일을 관리해주는 곳 이라고 생각하면 된다.또한 여러 사람과 협업하는 데 있어서 편의성을 제공해준다.사실 혼자 개발할거면 귀찮게 다른 곳에 파일을 저장할 필요가 없다. 나는 vscode를 사용하니 vscode를 기준으로 설명하겠다.우선 깃허브를 가입하자.그리고 vscode의 왼쪽 하단에 계정 아이콘을 클릭하면 github 로그인이 있다.로그인하려면 깃허브에서 생성한 토큰을 이용하거나 웹페이지에서 인증하면 된다. 다시 깃허브 웹페이지에서 repository를 만들어보자 리포지토리 네임은 프로젝트명으로 하면 될 것이다.(연습이니 아무렇게나 하자)Create repository를 클릭하면 리포지토리가 생성된다. 만든 리포지토리에 들어가보면이 화면이 나올 것이다.초..

Git 2024.09.25

[프로그래머스] [PCCP 기출문제] 2번 / 석유 시추

https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr bfs로 풀면 될 것이다.import java.util.*;class Solution { public int [] dx = {0,0,-1,1}; public int [] dy = {1,-1,0,0}; public int solution(int[][] land) { int answer = 0; for(int i = 0; i q = new LinkedList(..

[프로그래머스] 요격 시스템 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 그림만 봐도 이전에 풀었던 문제들과 유사한 점을 알 수 있다. 배열을 시작 좌표값을 기준으로 오름차순 정렬한다.엔드포인트를 끝값으로 놓고 다음 좌표의 시작점이 엔드포인트보다 작다면 다음 좌표의 엔드포인트와 현재 엔드포인트를 비교하여 더 작은 값으로 엔드포인트를 지정한다.다음 좌표의 시작점이 엔드포인트와 같거나 크다면 다음 좌표의 엔드포인트를 엔드포인트로 지정하고 요격 시스템을 추가한다. import..

Spring framework

스프링 프레임워크(Spring Framework)는 자바 플랫폼을 위한 애플리케이션 프레임워크로, 다양한 기능을 제공하여 애플리케이션 개발을 보다 효율적이고 체계적으로 할 수 있도록 지원합니다. 스프링의 핵심 기능에는 다음과 같은 것들이 있습니다:1. 의존성 주입(Dependency Injection, DI)DI는 스프링의 가장 중요한 기능 중 하나로, 애플리케이션의 컴포넌트 간의 의존성을 관리하는 방법입니다. DI를 사용하면 객체의 생성과 의존성 관리를 스프링 컨테이너가 담당하게 하여, 코드의 결합도를 낮추고, 테스트와 유지보수를 쉽게 할 수 있습니다.설정 방법: XML 설정, 자바 기반 설정, 어노테이션 기반 설정을 사용할 수 있습니다. @Componentpublic class MyService { ..

스프링 2024.09.09

파일 처리

Disk가 있다.(Repository)파일은 disk안에 저장 되어있다.disk는 컴퓨터의 하드웨어에 있다.운영체제가 관리한다. == 운영체제를 반드시 거쳐서 하드웨어 리소스를 사용할 수 있다.그런데 운영체제가 파일 기능까지 전부 갖고 있다면 복잡성이 너무 증가한다. 그래서 File-System을 따로 두어 운영체제가 파일을 관리한다.즉, 파일 처리는 위탁구조이다.커널은 운영체제의 핵심 부분으로, 하드웨어와 애플리케이션 간의 상호작용을 관리한다.커널이 많은 파일 시스템을 처리하기에는 복잡성이 높다.그래서 VFS(가상파일시스템)을 이용하여 커널에서 파일 시스템을 처리한다.

[프로그래머스]디펜스게임 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/142085 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 배열의 요소들을 순서대로 n에 마이너스 연산을 한다.그러다가 n이 0보다 적어지는 순간! 무적권 발동~~그런데 무적권은 적어지는 순간 그 라운드에 써야할까?아니다 최대한 많은 라운드를 격파해야 함으로 싸워왔던 라운드 중 가장 큰 수의 라운드에서 써야한다.그렇다면 매 라운드 병사의 수를 PriorityQueue에 넣고(오름차순 우선) 무적권 발동 시 poll하여 n에 더해주기만 하면 될 것이다.  i..

[프로그래머스]무인도 여행 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제만 봐도 대번에 느낄 수 있다..이건 dfs or bfs다. X가 아니고 방문하지 않은 곳을 큐에 넣고 상하좌우를 체크해서 다 더해주고list에 넣어주면 될 것이다. import java.util.*;class Solution { static int[] dx = { 1, 0, 0, -1 }; static int[] dy = { 0, 1, -1, 0 }; public Integer..