| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 백준 10819
- 코딩테스트
- Spring
- 스레드
- 코테
- 스프링
- 9465 스티커
- 자바스크립트
- 파이썬
- docker
- 네이버
- 백준 14499
- 백트래킹
- Spring Security
- 락
- 후위 표기식
- 프로세스
- 백준 1120
- 다익스트라
- 백준 15686
- 증가하는부분수열
- 백준
- 운영체제
- CI/CD
- 백준 2529
- 도커
- CS
- 백준 파이썬
- 백준 2302
- 프로그래머스
- Today
- Total
목록CS (9)
개발
안녕하세요, 이번에는 Spring MVC 기반의 애플리케이션에 동작하는 Spring Securtiy Architecure에 대해 정리를 해보려고 합니다. 본문은 https://docs.spring.io/spring-security/reference/servlet/architecture.html 을 기반으로 작성되었습니다.📌 Filter는 무엇인가?Spring Servlet에 대한 Spring Security의 지원은 Servlet Filter에 기반하고 있습니다. 따라서 Spring Security를 이해하기 위해서는 Spring MVC에서 필터가 어떻게 동작하는지 알고 있는 것이 중요합니다.클라이언트가 애플리케이션에 요청을 보내면, Container(Servlet Container)는 요청 URI경로..
도커(Docker)란 무엇일까요?도커(Docker)는 애플리케이션을 컨테이너라는 독립된 환경에 패키징하고 실행하여 개발, 배포 및 운영을 효율적으로 관리할 수 있도록 지원하는 플랫폼이며, 컨테이너 생성 및 관리 기술을 통칭하기도 합니다.컨테이너는 뭐죠?컨테이너(Container)는 애플리케이션 실행에 필요한 모든 것을(코드, 환경 설정, 종속성 등..) 패키징하여, 어떤 컴퓨팅 환경에서도 빠르고 신뢰성 있게 실행할 수 있도록 하는 소프트웨어의 표준 단위이자 애플리케이션 패키지라고 할 수 있습니다.그래서 왜 사용하는 건가요?컨테이너를 사용함으로써 얻는 이점은 다양하게 있으며 장점에 대해서는 후술하겠지만, 현 시점에서 우리에게 가장 와 닿는 장점은 어느 환경에서도 동일한 환경을 구축할 수 있다는 것이라고 생..
서론지금 진행중인 프로젝트에서 마이크로서비스 아키텍처를 도입하기로 결정했습니다. 핀테크를 주제로 하는 만큼 결제, 조회 등 서비스에 필요한 중요한 기능들이 매우 밀접하게 맞물려 있는데, 저에게 익숙한 기존의 모놀리식 아키텍처가 아닌 마이크로서비스 아키텍처를 준비하게 되면서 여러 가지 발생할 수 있는 문제들에 대해 학습할 수 있었습니다.그 중 동시성 제어 문제가 가장 관심이 갔는데요, 오늘의 주제는 이 부분에 대해서 다루고자 합니다.비관적 락 VS 낙관적 락 비관적 락(Pessimistic Locking) 개념과 특징비관적 락은 데이터 충돌이 빈번하게 발생하는 환경에서 데이터 일관성을 유지하기 위해 유용하게 사용할 수 있습니다. 데이터에 대해 Lock을 미리 걸어 트랜잭션이 종료되어 명시적으로 Lock이 ..
코딩 컨벤션이 중요한 이유일관된 형식과 스타일을 유지하게 해주어 가독성이 향상되고, 개발 생산성이 증가합니다.코드는 시간이 지남에 따라 변경되고 확장되기 마련입니다. 일관된 코드 스타일을 유지하면 다른 개발자가 코드를 수정하거나 업데이트 하는 경우 쉽게 접근 할 수 있습니다.어느 컨벤션에 따라야 할까?코딩 컨벤션은 사실 정답이 정해져 있는 것이 아니며, 기업마다 다르고 심지어 팀 단위로도 다르기도 한다. 따라서 사람들이 많이 사용하는 코딩 컨벤션인 구글의 코딩 컨벤션을 적용해보기로 하였으며,일관성을 유지하는 것이 중요합니다.자바에서 쉽게 코딩 컨벤션을 적용하는 방법대부분의 IDE에서는 Auto Formatting을 지원하고 있습니다.vscode에서 eslint와 prettier를 사용하듯 자바를 사용할 ..
서론우선 지금 진행중인 프로젝트에서 하나의 서비스에 두 개의 엔티티에 대해서 로그인을 진행해야 하는 상황이 생겼습니다.기존에 작성했던 회원 엔티티에 대해서는 로그인이 제대로 작동했지만 상담사 엔티티는 회원 엔티티가 다르게 작성되어 기존에 작성한 코드로는 상담사 로그인을 할 수 없었습니다.따라서 여러 방법을 시도하여 방법을 물색했고, 수 많은 에러를 본 후 결국 성공했던 방법을 공유하고자 합니다. 이러한 방법으로 해결은 할 수 있구나 하는 관점에서 봐주시면 감사하겠습니다.결론 (해결 방법)각각의 엔티티에 대한 @Configuration을 하나의 Security Config에 @Bean으로 등록한다. 이 과정에서 공통적으로 사용하는 PasswordEncoder 같은 bean들은 최상위에 한번만 정의합니다.@..
서론Spring JPA를 학습하면서 궁금하거나 잘 알지 못했던 부분들을 정리하려고 합니다.1편application.properties vs application.ymlSpring Boot는 크게 application.properties , application.yml 와 같은 파일 형식으로 환경 설정 파일을 구성할 수 있습니다. 결론application.properties는 Key-Value 형식으로 직관적이고 간단하기 때문에 간단한 설정에 용이하며application.yml은 YAML 형식으로 들여쓰기를 통해 계층적인 구조와 중복되는 속성을 표현하기에 용이하다는 특징이 있습니다. application.propertiesKey-Value 형식을 사용합니다.간단하고 직관적인 구조기 때문에 작성 문법을 배울..
프로세스 프로세스는 컴퓨터 시스템에서 실행하는 주체이며 메모리, CPU 같은 자원을 할당받는 주체이다. 운영체제 수업을 듣다보면 운영체제에게 부탁한다, 운영체제가 해준다라는 표현을 자주 듣게 되는데, 이것은 운영체제가 프로세스로서 동작하는 것으로 오해할 수 있다. 하지만 운영체제는 메인 메모리의 어딘가에 코드와 데이터 형태로 존재하고, 현재 실행중인 프로세스가 운영체제 코드를 실행하는 것이다. 다중 프로그래밍 다중 프로그래밍은 Multiprogramming이라고 부르기도 하고 CPU가 여러 개의 프로세스를 병행 실행하는 것을 의미한다. 다중 프로그래밍은 여러 프로세스가 동시에 실행 되는 것과 같은 효과를 주는데 하지만 어느 시점이든 하나의 프로그램만 실행중이며, CPU의 처리 속도가 매우 빠르기 때문이다..
본격적인 운영체제의 학습에 앞서 공부할 내용이다. 컴퓨터 시스템 구조 출처: 이화여자대학교 반효경 CPU CPU의 동작 순서 CPU는 기억장치에 저장되어 있는 프로그램 코드인 명령어를 실행함으로써 프로그램 수행이라는 컴퓨터의 기본적인 기능을 수행하는 장치이다. CPU가 수행하는 세부적인 동작들은 순서는 다음과 같다. 1) 명령어 인출: 기억장치로부터 명령어를 읽어온다. 2) 명령어 해독: 수행해야 할 동작을 결정하기 위하여 명령어를 해독한다. 3) 데이터 인출: 명령어 실행을 위하여 데이터가 필요한 경우에는 기억장치 혹은 입출력 장치로부터 그 데이터를 읽어온다. 4) 데이터 처리: 데이터에 대한 산술적 혹은 논리적 연산을 수행한다. 5) 데이터 저장: 수행한 결과를 저장한다. 여기서 1번과 2번은 모든 ..