전체 122

Git과 Commit Message

Git이란?Git은 컴퓨터 파일의 변경사항을 추적하고 여러 사용자 간에 파일 작업을 조율하는 데 사용되는 분산 버전 관리 시스템개발자들 사이에서 널리 사용되며, 프로젝트의 이력 관리에 용이 버전 관리의 중요성버전 관리는 특히 다수의 인원이 동시에 하나의 프로젝트를 진행할 때 매우 중요Git을 통한 버전 관리는 다음과 같은 이점을 제공각 개발자가 만든 파일을 주 버전에 통합 용이변경 이력을 추적하여 문제 발생 시 이전 버전으로 쉽게 복원 가능여러 기능을 동시에 개발하고 관리 가능Git의 주요 장점오프라인 작업 가능: 인터넷 연결이 되지 않은 환경에서도 개발 진행 가능안전한 백업: 분산 버전 관리 시스템이기 때문에 중앙 저장소가 삭제되어도 로컬 저장소를 통해 복구가 가능병렬 개발: 각 개발자가 독립적인 브랜..

카테고리 없음 2024.07.16

요구사항 필독의 중요성

실무에서는 물론이고코딩 테스트나 과제에서도요구사항이란 굉장히 중요한 부분이다 나는 그것을 알면서도종종 요구사항들을 후루룩 읽어 넘기고는 한다 이번 과제에서도 읽어가면서바로 자료 구조나 예외처리 사항 입력오류문제 해결 과정에 대해서떠올리고 정리하면서 읽느라제대로 이해 되지 않았음을 인지 하지 못했다. 구상을 거의 끝나갈 때 쯤에 내가 생각한 작성 결과와예시의 작성 결과가 다름을 깨달았고내가 생각한 프로토콜이 올바른 방향이 아님을 깨달았다 항상 내가 생각하는 것이 옳다고 자만하지 않고꼼꼼히 읽는 습관을 들이는 것이 좋을듯 하다

후기 2024.07.15

네이버 부스트캠프 9기 2차 합격 후기

https://boostcamp.connect.or.kr/ 부스트캠프개발자의 지속 가능한 성장을 위한 학습 커뮤니티boostcamp.connect.or.kr 오랜만의 합격 후기 작성이라 두근 두근 하는 기분이다오늘 메일로 합격 소식을 받았는데오픈 톡방에서 어제부터 언제 쯤 나올 것이다라는 카더라가 무성해서 열심히 기다렸는데드디어 오늘 오후 3시반 쯤에 나왔다 객관식들이 자신이 없어 조금 (사실은 많이) 걱정을 했는데다행스럽게도 합격이 떴다.1, 2차 6문제를 모두 푼것 같긴 했는데떨어지면 레전드다 싶긴 했지만그런일이 나에게 일어나면 어쩌나 하고 많은 상상을 하였다. 하여튼 이번 절차는 이렇다 지난 번과 달라진 점은 코딩 테스트가 아닌 문제 해결력 테스트 라는 것이다작년 시험 유형을 모르기에 무엇이 다른가..

후기 2024.07.11

LinkedList의 삽입 시간은 진짜 O(N)일까?

배열 (Array)선형 자료구조로 속도가 빠르고 효율적이다.동일한 요소를 연속적으로 저장하여 데이터 접근이 용이하다.인덱스를 사용하기 때문에 특정 인덱스의 데이터에 즉시 접근할 수 있다.연속된 메모리 주소를 사용하기 때문에 공간을 절약할 수 있다.크기가 고정되어 있으며 크기 변경이 불가능하다.삽입 및 삭제 시 시간 복잡도는 O(N)이다.연결 리스트 (Linked List)각 요소가 노드(node)로 이루어져 있으며, 각 노드는 다음 노드의 포인터를 가지고 있다.메모리 사용이 효율적이다.삽입 및 삭제 시 시간 복잡도는 O(1)이다.인덱스를 사용한 접근 시간은 O(N)으로 느리다.포인터를 저장할 공간이 추가로 필요하다. 특정 index에 값을 삽입 한다면 array 와 linked list 중 어떤 것이 빠..

알고리즘 2024.07.11

OAUTH

oauth란"Open Authorization"의 약자로, 인터넷 사용자들이 비밀번호를 제공하지 않고도 하나의 웹사이트에서 다른 웹사이트의 자원에 접근할 수 있게 해주는 인증 및 권한 부여 프로토콜OAuth는 주로 웹 애플리케이션에서 사용되며, 사용자가 자신의 자격 증명을 노출하지 않고도 타사 애플리케이션이 자신의 데이터에 접근하도록 허용하는 데 사용 OAuth의 주요 개념Resource Owner (자원 소유자): 사용자를 의미하며, 자신의 자원에 대한 접근 권한을 가지고 있다.Client (클라이언트): 사용자의 자원에 접근하려는 애플리케이션이다.Resource Server (자원 서버): 보호된 자원이 있는 서버로, 사용자의 데이터가 저장된 곳이다.Authorization Server (인증 서버)..

web 개발 2024.07.11

spring scheduler 사용

간단히 spring schedular사용에 후기에 대해작성해 보려고 한다. spring schedulerSpring Scheduler는 Spring Framework에서 제공하는 스케줄링 기능,주기적으로 반복되는 작업을 쉽게 구성하고 실행할 수 있게 해줌shceduler 방식public class Scheculer() { @Scheduled(fixedDelay = 1000) // scheduler 끝나는 시간 기준으로 1000 간격으로 실행 public void scheduleFixedDelayTask() { System.out.println( "Fixed delay task - " + System.currentTimeMillis() / 1000); } @S..

web 개발/spring 2024.07.02

공용 도로명 주소 api 사용 방법 및 후기

https://business.juso.go.kr/addrlink/openApi/searchApi.do 검색API본인인증 사용중인 휴대전화번호로 인증 인증하기 아이핀 인증 본인 명의 아이핀 계정으로 인증 인증하기business.juso.go.kr 일반적으로 주소를 입력 받을 때도로명주소를 받는 api를 사용하는 것 같아검색어 선택 시 도로명 주소 선택지를 주어선택 시 해당 도로명 주소와 세부주소를 입력받아서주소 db를 채우기로 하였다.    여기서 공용 도로명 주소 api 사용 가이드를 받을 수 있다. 공용 사이트에서 key를 받고 postman 을 이용해 테스트 해보면입력 형식은 다음과 같으며출력 형식 또한 확인 할 수 있다. 출력형식을 바탕으로responseDto를 작성해 주었다public class..

카테고리 없음 2024.07.01

SpringSecurity 인증 방식

spring security 사용하는 이유spring의 생태계에서 보안에 필요한 기능을 제공spring이라는 프레임워크 안에서 활용하기 적합한 구조로 설계 되어 있어, 보안 기능을 추가 용이 Spring Security 아키텍처 사용자의 요청이 서버로 들어옴Authentication Filter가 요청을 가로채고 Authentication Manager로 요청 위임등록된 Authentication provider를 조회하여 인증 요구Authentication provider 가 실제 데이터 조회 → userDetails 반환securityContextHolder에 저장  Spring Security 작동 구조사용자가 자격 증명 정보 제출, AbstractAuthenticationProcessingFilt..

web 개발/auth 2024.06.29

naver mail을 이용한 회원가입

성공 화면!!  전체 회원가입 과정정보 입력받기중복 형식 테스트 → 실패 시 리턴토큰 발행, 토큰도 객체에 넣어서 레디스에 임시저장메일 전송(토큰 포함된 링크) 사용자 메일 입력메일 회신에서 온 토큰과 레디스에서 뽑은 토큰 일치 확인 → 불일치 시 리턴토큰 일치 시 레디스 정보 DB 저장회원가입 완료!!1. bulid.gradle 에 의존성 입력 //naver mail implementation 'org.springframework.boot:spring-boot-starter-mail:3.0.5' implementation 'com.sun.mail:jakarta.mail:2.0.1' 2. 메일 config 파일 작성@Configuration@PropertySource("classpath:..

web 개발/auth 2024.06.23

Docker/ Gitaction 을 이용한 CI/CD

지속적 통합(Continuous Integration, CI) 개발자를 위한 자동화 프로세스라고 볼 수 있으며, Code - Build - Test 단계에서 꾀할 수 있다. Code : 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계.Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인하는 과정지속적 배포(Continuous Delivery/Deployment, CD)지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다.이 부분은 Release -..

카테고리 없음 2024.06.21