전체 글 95

출/결석 알림(QR)

QR 코드를 이용하여 출/결석 을 체크한다. 방식은 두 가지 이다.두 방식 다 어플리케이션을 사용해야 할 것이다. 1) 개인 QR 코드를 가지며 비치된 웹캠에 인식시켜 인증 2) 공용 QR 코드를 학원생이 직접 휴대폰으로 스캔하여 인증두 가지 방법에 장/단점이 존재하며 가장 핵심 되는 내용은 대리 인증을 어떻게 방지할 것인가 이다. 1번 방법의 경우 학생 A가 B의 QR 코드를 받아 대리 인증을 하게 될 수 있다.. 2번 또한 학생 A가 B에게 공용 QR코드를 전송하면 학원에 가지 않고도 인증이 가능하다. 2번의 경우 공용 QR 코드의 생명을 30초로 제한하여 까다롭게 해 본다. 사진 주고받는 시간은 10초 남짓이며 결국 이들은 해낼 것이다. 극단적으로 생명을 10초로 줄인다 하면 전송시간 + 서버상태에..

기능 구현 2025.07.18

정보처리기사 서브넷(subnet)

이 글은 정보처리기사 실기에 나오는 서브넷 문제를 풀기 위한,이론은 때려치우고 오로지 문제 풀이만을 위해 작성된 글이다. 바로 문제를 풀어보자 1)192.168.5.3의 서브넷 마스크는? 풀이)첫번째 숫자 192를 보면 알 수 있다.0 ~ 127 은 A 클래스로 255.0.0.0이다.128 ~ 191 은 B 클래스로 255.255.0.0이다.192 이상은 C 클래스로 255.255.255.0이다. 사실 192 이상이 전부 C클래스는 아니지만 문제 풀 때 전혀 상관없다.문제에서 첫번째 숫자는 192이므로 답은 255.255.255.0이다. 2)192.168.5.3/22의 서브넷 마스크는? 풀이)갑자기 웬 슬래쉬?사이더 표기법이라고 한다.중요한 건 문제만 풀면 된다./ 슬래쉬가 나온 순간 첫 번째 192는 ..

카테고리 없음 2025.04.17

싱글톤 패턴

싱글턴(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