전체 글 405

2022 하반기-1 데브매칭 후기

2022 하반기 데브매칭 시험을 봤다. 회사 경력이 굉장이 짧기 때문에 이번에는 이직을 위한 준비라기보다는 알고리즘 공부에 대한 열정을 되찾으려고 시험을 쳤다. 이제 신입사원 뽑는회사가 거의 없더라… 사실 저번 상반기때에는 동아리를 하느라, 그 전에는 타이밍이 안맞아서 시험을 못봤었는데, 이번에는 운이 좋게도 볼 수 있었다. 제한 데브매칭은 신기하게도 시험을 볼 때에 검색이 허용이 된다. 비록 화면이랑 핸드폰으로 감시를 하기는 하지만, 검색을 할 수 있다는 것은 큰 메리트인것 같다. 그리고 솔직히 개발이나 문제풀때 검색하는것 정도는…? 괜찮지 싶기도 하고 그래서 마음 편하게 보면 될것같다!! 시험 시험은 총 2시간이었고 문제는 4문제(알고리즘3, SQL1)이었다. 개인적으로 알고리즘 난이도는 쉬운 편이었..

기타/일상 2022.10.15

OIDC와 OAuth에 대해..

OIDC와 OAuth OIDC와 OAuth의 차이점은 OIDC는 Authentication에 집중하고, OAuth의 경우는 Authorization을 포함한다는 것이다. Authentication과 Authorization Authentication(인증) 사용자가 누구인지 확인하는 절차 해당 어플리케이션에의 접근 가능 여부를 확인한다. Authorization(인가) 사용자의 권한을 확인하는 절차 어플리케이션에 접근 후, 특정 서비스에의 사용 가능 여부를 확인한다. OIDC / OAuth 차이 OAuth는 클라이언트가 리소스 소유자로부터 서버의 자원에 대해 인가받고 접근하기 위해 사용된다. 즉 인가를 주요 목적으로 하고 있고, 인증은 이의 주요 목적이 아니다. OAuth에서는 사용자에 대한 정보를 명시..

이론 정리 2022.10.10

SOLID원칙에 대하여

SOLID - 객체지향 설계 5원칙 객체지향의 가장 기저가 되는 원칙이자, 객체 지향을 하기 위해 지켜야 하는 5개의 원칙이다. 이름 그대로 5개로 이루어져 있다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open-Closed Principle) : 개방-폐쇄 원칙 LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 DIP(Dependency Inversion Principle) : 의존 역젼 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 위의 5개의 원칙을 사용하여 프로그래밍을 하면, 유지 보수와 뛰어난 확장성을 가질 수 있다고 하는데, 각각의 특징과 개념을 알아보자 ..

이론 정리 2022.10.03

mac CPU 사용량 실시간 확인하기 - RunCat

솔직히 CPU사용량을 확인하는게 크게 도움되지는 않지만, 그냥 이게 있으면 귀여워서 좋다. 그리고 무료니까 걱정말고 다운받자. 요런 느낌으로 컴퓨터 위쪽에 CPU에 맞춰서 귀여운 고양이가 뛰어댕기는걸 해줄수 있다. 추가로 이런 식으로 필요한 정보들도 얻을 수 있다. 설치하기 https://apps.apple.com/kr/app/runcat/id1429033973?mt=12 여기 들어가서 다운해준다. 혹은 걍 앱스토어에서 runcat으로 검색하자. 참고로 해당 고양이를 클릭했을 때에 Runners Store에 가면 이런 식으로 추가적인 이모티콘을 구매 가능하다...만 개인적으로는 Gaming Cat Party Carrot 이 넘사라 그냥 이거 둘 중 하나 쓰는 중이다.

기타/일상 2022.10.03

Unable to load class 'com.mysema.codegen.model.Type' error 발생 및 해결

프로젝트 진행 중에 queryDSL을 통한 Q class 생성에서 위와 같은 에러가 발생하였다. 해결을 위해 찾아본 결과 spring boot 2.6이상에서는 querydsl5.0 이상 버전을 적용하고, 추가적인 내용들이 필요하다고 한다. buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.7.2' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id '..

Woori코딩 페스티벌 후기

예전에 다니던 회사에서 YBM Cos Pro 1급 시험을 지원해줘서 자격증을 갖고 있는데, 마침 이걸 가지고 있으면 본선 진출이 가능하다고 해서 일단 시험을 봤다. 예선 통과자는 총 165명이었는데... 골때리게 명단에 내이름이 없었다. 뭐지???? 근데 또 본선에 가보니까 내이름이 있었다.... 아마 예선을 본게 아닌 사람은 그냥 빠져있는걸까? 암튼 몇명인지는 잘 모르겠지만 전국적으로 꽤나 많이 시험을 봤을 것 같다. 솔직히 코딩테스트 공부도 살짝 소홀했고, 다른 이름도 아니고 코딩 페스티벌이라고 이름까지 붙은 시험이면 장난아니게 어렵겠구만 하고 재미로 시험을 봤는데... 3문제 180분이었는데 평가 기준에 [나이/풀이 시간]이 괜히 있는게 아니었다. 문제가 좀 지나치게 쉬웠다.... 1번 문제는 간단..

기타/일상 2022.09.21

트랜잭션의 격리수준과 문제점, 그리고 해결법

트랜잭션의 격리수준 동시에 여러 트랜잭션을 처리할 때에, 얼마나 이들이 서로 고립되어 있는지를 의미한다. 즉, A라는 트랜잭션이 B라는 트랜잭션 내에서 변경한 데이터를 보는 기준점을 결정한다. 격리수준의 종류 이는 4가지로 분류할 수 있는데, READ UNCOMMITTED 커밋되지 않은 데이터를 읽을 수 있음 READ COMMITTED 커밋된 데이터만 읽을 수 있음 REPETABLE READ 트랜잭션 동안 같은 데이터를 읽을 수 있음 SERIALIZABLE 트랜잭션의 순차적 실행 이다. 한번 하나하나 살펴보자. READ UNCOMMITTED 아직 커밋되지 않은 데이터를 읽을 수 있는 격리 수준이다. 즉 Transaction의 COMMIT이나 ROLLBACK과 상관 없이 해당 트랜잭션의 데이터를 확인 가능..

Terraform 기본 개념 정리

Terraform 기본 개념 Infrastrupctupre as Code, 코드로써의 인프라 인프라를 이루는 서버, 미들웨어 그리고 서비스 등, 인프라 구성요소들을 코드를 통해 구축하는 것 IaC는 코드로써의 장점, 즉 작성용이성, 재사용성, 유지보수 등의 장점을 가진다. Terraform by Hashicorp 테라폼은 현재 정말 많이 쓰이는 도구이고, 현재는 거의 업계 표준으로 쓰인다. 테라폼은 인프라를 만들고, 변경하고, 기록하는 IaC를 위해 만들어진 도구이다. 문법이 쉬워 비교적 다루기 쉽고 사용자가 많아 레퍼런스를 찾기 쉽다. .tf형식의 파일 확장자를 갖는다. AWS, Azure, GCP같은 퍼블릭 클라우드뿐만이 아닌 다양한 서비스 역시 지원한다. 테라폼 구성요소 provider 테라폼으로 ..

Terraform의 Variable 기초

Terraform Infrastructure as Code Variables 코드에서 변수를 사용할 수 없다면, 매번 다른 값이 필요할 때 마다 하드코딩된 코드 한벌씩을 새로 만들어야 할 것이다. 테라폼의 설정 파일을 작성하는 운영자와 개발자는 변수의 정의를 코드와 함께 작성하여 텍스트 편집기를 열지 않고도 인프라를 코드로 쉽게 정의할 수 있다. .tfvars형식의 직접적 변수 선언 일반 .tf파일에서의 변수 선언 Inline변수 선언 또는 변수 파일 지정 (-var / -var-file) 환경 변수 선언 OSS Terraform 구성 또는 모듈의 입력 변수 관리 지원되는 변수의 종류는 이렇게 3가지 카테코리로 이루어져 있다. Primitive Types string number bool Collecti..

terraform의 workflow 기초

Terraform 기초 HashiCorp라는 회사에서 만든 솔루션이다. 이는 인프라를 구축,변경,버전관리를 하기 위한 도구로서 코드로 인프라를 관리할 수 있게 해준다. 코드가 곧 인프라가 되고, 인프라를 코드로 설명할 수 있어야 한다는 것이다. Provisioning Day0, Day1, Day2 이런 식으로 설명한다. Day0 요구사항 분석, 어떤 아키텍쳐를 설계할지에 대한 트레이닝 과정 Day1 설계된 아키텍쳐의 구현 인프라, 네트워크 서비스 구현 등이 여기서 이루어진다. Day2 Day1에서 구성된 요소들을 관리하고, 유지보수하고, 새로운 요청이 있으면 새로운 아키텍쳐를 구성하는 등의 반복 작업을 여기서 수행해준다. Day1을 통해서 인프라 구성 완료를 했다고 가정해 보자. 그리고 이후 Day2에서..