전체 글 93

싱글톤 패턴

싱글턴(Singleton) 패턴은 오직 하나의 인스턴스만 생성되도록 보장하고, 해당 인스턴스를 어디서든 접근할 수 있도록 하는 디자인 패턴입니다. 주로 시스템에서 전역적으로 관리해야 할 객체를 만들 때 사용됩니다. 싱글턴 패턴의 특징단 하나의 인스턴스특정 클래스의 인스턴스가 애플리케이션에서 하나만 생성되도록 보장합니다.글로벌 접근생성된 인스턴스는 어디서든 동일한 객체를 참조할 수 있습니다.생성 제어외부에서 클래스의 인스턴스를 직접 생성하지 못하도록 생성자를 제한합니다. 싱글턴(Singleton) 패턴은 오직 하나의 인스턴스만 생성되도록 보장하고, 해당 인스턴스를 어디서든 접근할 수 있도록 하는 디자인 패턴입니다. 주로 시스템에서 전역적으로 관리해야 할 객체를 만들 때 사용됩니다.싱글턴 패턴의 특징단 하나..

JAVA 2024.11.26

[프로그래머스]등굣길 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 오른쪽과 아래로만 움직일 수 있는 최단 거리 계산이다.각 위치에서 왼쪽과 위에서 올 수 있는 경우의 수를 다 더해주면 된다.class Solution { public static void main(String[] args) { Solution s = new Solution(); System.out.println(s.solution(4, 3,new int[]..

Spring Security

Security 말 그대로 보안이 떠오를 것 이다.Spring Security는 자바 웹 애플리케이션을 위한 강력하고 유연한 보안 프레임워크이다. 인증, 인가(권한), 암호화 등 사용자를 제한하고 관리한다. 예를 들어보자사용자가 로그인을 했을 때 여러 부류의 사용자가 있을 것이다.관리자, 일반 유저, 다른 형태의 유저라고 했을 때 그들의 아이디와 비밀번호를 입력하고 로그인 할 것이다. Security는 사용자가 입력한 아이디와 비밀번호를 확인하여 로그인 작동을 한다.사용자는 부여된 권한으로 제한적인 요청을 할 수 있다.관리자만이 할 수 있는 요청을 일반 유저가 요청할 수 있으면 안되기 때문이다. 그렇다면 이 과정은 어떻게 이루어질까?인증 프로세스사용자 입력: 사용자가 로그인 양식에 사용자 이름과 비밀번호..

Commit(커밋)메세지

1. 형식커밋 메시지는 보통 두 부분으로 나눌 수 있습니다: 제목과 본문입니다.제목: 변경 사항의 요약을 간결하게 표현합니다. 50자 이내로 작성하는 것이 좋습니다.본문: 변경 사항에 대한 자세한 설명을 추가합니다. 필요에 따라 여러 줄로 작성할 수 있으며, 각 줄은 72자 이내로 제한하는 것이 좋습니다.2. 첫 글자를 대문자로제목의 첫 글자는 대문자로 시작합니다. 예: Fix: 버그 수정3. 동사 사용제목은 현재 시제의 동사로 시작하는 것이 좋습니다. 예:Add: 새 기능 추가Update: 기존 기능 업데이트Remove: 사용되지 않는 코드 삭제4. 태그 사용위에서 언급한 Conventional Commits 규칙에 따라 태그를 사용하여 변경 사항의 유형을 나타낼 수 있습니다. 주요 태그는 다음과 같습..

Git 2024.10.01

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..