분류 전체보기

메모 & 삽질기록보관소

[데이터베이스] MySQL과 MariaDB의 차이점?

발단 회사의 동료 개발자가 퇴직을 함에 따라, 동료 개발자가 들고 있었던 유지보수 프로젝트 하나가 나에게 넘어왔다. 입사 초, 프로젝트 구축 초기에 잠시 참여해 포인트, 출석체크 기능을 만든 적이 있었던 프로젝트인데 이후에는 별다른 작업에 참여하지 않아 히스토리를 전혀 모르는 상황이었다. 며칠 전, 클라이언트로부터 게시판의 고정글 기능이 제대로 작동하지 않는 것 같다는 문의가 왔다. 우리 회사 고정글 기능은 특정 날짜를 입력하면 그 날짜에 속하는 일자에 고정글이 게시되고, 그 일자 이전 혹은 이후에는 고정글이 내려가도록 되어 있었는데 확인을 해보니 해당 기능이 동작하지 않았다. 회사 cms에 기본적으로 탑재되어 있는 기능인데 왜 동작을 하지 않을까 의문을 가지며 디버깅을 시작했다. 문제의 대략적인 형태 ..

JAVA

[디자인 패턴 - 생성 패턴] 팩토리 메소드 패턴

디자인 패턴이란? 실무에서 개발을 하면서 가장 두려웠던 점 중 하나가 내가 짜고 있는 이 코드가 다른 개발자에게 어떻게 보일까 하는 부분이었던 것 같다. 이 코드가 과연 읽기 좋은 코드일까? 이 코드가 과연 1년 뒤, 2년 뒤 애플리케이션이 확장했을 때도 유연하게 확장될 수 있는 코드일까? 등을 고민하면서 내가 짜고 있는 코드의 질이 어떠한지 항상 두려워하고 고민했던 것 같다. 디자인 패턴은 이러한, 어쩌면 개발자들에게는 태생적이고 본질적일 수 밖에 없는 '잘 짜여진 코드일까'에 대한 불안감을 해소하기 위한 집단적인 노력의 결과물이라고 할 수 있다. 즉, 디자인 패턴은 잘 짜여진 코드가 무엇인가를 고민하고 이 패턴을 구조화한 집단적인 베스트 프렉티스인 것이다. 이러한 의미에서 디자인 패턴은 어쩌면 선대 ..

Spring Framework/스프링 시큐리티

[스프링 시큐리티 무작정 따라하기] 5. 필터(Filter) 이해하기

들어가기 앞서 본 글은 스프링 시큐리티 서적인 Spring Security in Action을 읽고 책 속에 나와 있는 예제를 공부하며 얻은 지식을 바탕으로 적은 글입니다. 이전 글 [스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security [스프링 시큐리티 무작정 따라하기] 2. 회원 관리하기 [스프링 시큐리티 무작정 따라하기] 3. 인증 구현하기 [스프링 시큐리티 무작정 따라하기] 4. 권한 설정하고 인가(authorization) 처리 하기 오늘의 목표 필터(Filter) 이해하기 필터의 복합체, 필터 체인(Filter Chain) 이해하기 스프링 시큐리티의 필터 종류 [실습] 커스텀 필터 등록하고 필터 체인에 추가하기 1. 필터란? 독자분들은 필터라는 단어를 들으시면 어떤 모..

Spring Framework/스프링 시큐리티

[스프링 시큐리티 무작정 따라하기] 4. 권한 설정하고 인가(authorization) 처리 하기

들어가기 앞서 본 글은 스프링 시큐리티 서적인 Spring Security in Action을 읽고 책 속에 나와 있는 예제를 공부하며 얻은 지식을 바탕으로 적은 글입니다. 이전 글 [스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security [스프링 시큐리티 무작정 따라하기] 2. 회원 관리하기 [스프링 시큐리티 무작정 따라하기] 3. 인증 구현하기 오늘의 목표 권한(authority)으로 endpoint로의 접근 제어하기 역할(roles)로 endpoint로의 접근 제어하기 matcher 메소드를 통한 인가(authorization) 구현하기 1. 권한(authority)으로 endpoint로의 접근 제어하기 스프링 시큐리티는 권한을 GrantedAuthority 인터페이스를 통해..

Spring Framework/스프링 시큐리티

[스프링 시큐리티 무작정 따라하기] 3. 인증 구현하기

들어가기 앞서 본 글은 스프링 시큐리티 서적인 Spring Security in Action을 읽고 책 속에 나와 있는 예제를 공부하며 얻은 지식을 바탕으로 적은 글입니다. 이전 글 [스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security [스프링 시큐리티 무작정 따라하기] 2. 회원 관리하기 오늘의 목표 스프링 시큐리티의 인증 메커니즘 중 인증 역할을 수행하는 AuthenticationProvider를 살펴본다 스프링 시큐리티의 인증 메커니즘 중 인증된 회원의 정보를 저장하는 SecurityContext를 살펴본다 스프링 시큐리티의 인증 메터니즘 중 회원의 비밀번호를 암호화하고 복호화하는 PasswordEncoder를 살펴본다. [실습] 회원 인증을 구현해본다. 1. Authen..

Spring Framework/스프링 시큐리티

[스프링 시큐리티 무작정 따라하기] 2. 회원 관리하기

들어가기 앞서 본 글은 스프링 시큐리티 서적인 Spring Security in Action을 읽고 책 속에 나와 있는 예제를 공부하며 얻은 지식을 바탕으로 적은 글입니다. 이전 글 [스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security 오늘의 목표 스프링 시큐리티의 핵심 인증 아키텍처에 대해 이해한다. 스프링 시큐리티의 회원 관리 인터페이스인 UserDetails, GrantedAuthority, UserDetailsService, UserDetailsManager에 대해 이해한다. 스프링 시큐리티의 인증 메커니즘에 따라 커스텀 회원을 생성하고, 이를 메모리와 데이터베이스 상에 저장 및 조회해 본다. 1. 스프링 시큐리티의 인증 아키텍처 스프링 시큐리티의 인증 메커니즘을 이해하..

Spring Framework/스프링 시큐리티

[스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security

들어가기 앞서 본 글은 스프링 시큐리티 서적인 Spring Security in Action을 읽고 책 속에 나와 있는 예제를 공부하며 얻은 지식을 바탕으로 적은 글입니다. 오늘의 목표 스프링 시큐리티가 무엇인지 이해한다. 첫 스프링 시큐리티 프로젝트를 생성해본다. 스프링 시큐리티가 제공하는 기본 인증 과정을 살펴본다. 시리즈의 모든 글 [스프링 시큐리티 무작정 따라하기] 1. Hello Spring Security [스프링 시큐리티 무작정 따라하기] 2. 회원 관리하기 [스프링 시큐리티 무작정 따라하기] 3. 인증 구현하기 [스프링 시큐리티 무작정 따라하기] 4. 권한 설정하고 인가(authorization) 처리 하기 [스프링 시큐리티 무작정 따라하기] 5. 필터(Filter) 이해하기 1. 스프링 ..

메모 & 삽질기록보관소

[strapi] NginX 리버스 프록싱 관련 이슈

먼 옛날 옛날 최근 회사에서 스프링 기반의 애플리케이션 이외의 Headless cms 기반의 애플리케이션에 대해 고민하기 시작하며 회사 개발자 중 유일하게 node.js를 (사용해봤다고 말하는 게 민망하긴 하다만...) 사용해 본 경험이 있는 나를 자연스레 담당 개발자로 두게 되었다. 아직 Headless에 대해 분명하고 명확하게 이해하고 있는 부분은 아니나, 내가 알고 있는 Headless의 요점은 백엔드와 프론트엔드의 분리, 즉 내부 서버 로직이 특정 뷰에 종속되지 않고 api를 이용해 다양한 형태의 클라이언트에게 서비스를 제공할 수 있는 부분이었다. 나는 어디까지나 자바 개발자였기 때문에 node.js 생태계에 대한 이해가 넓지 않았고, 그런 우리가 선택한 서버 구축용 프레임워크가 있었으니, 바로 ..

메모 & 삽질기록보관소

[JPA] 스프링이 엔티티를 인식하지 않는 것 같습니다!

개발환경 JDK 1.8 MySQL 스프링부트 version 2.4.5 발단 JPA를 사용하는 사내 스프링부트 프로젝트를 진행하며 내가 만든 엔티티가 데이터베이스에 반영되지 않는 현상이 발견되었다. 사내 프로젝트는 Mybatis와 JPA를 혼용해 사용하기 때문에 ddl-auto 옵션을 update로 설정해두고 개발을 진행하고 있었는데도 엔티티가 데이터베이스에 반영되지 않았다. 컴파일러가 실행되며 애플리케이션이 구동될 때 어떠한 에러도 발견되지 않았고 서버도 정상적으로 실행되는데... 왜 엔티티가 반영되지 않는거지? 마치... 내가 만든 엔티티가 단 한순간도 존재하지 않았던 것처럼 스프링 프로젝트가 내가 만든 엔티티를 철저히 무시하고 있다는 생각이 들었다. 원인 당시에는 원인을 몰라 정말 많은 시도(라 쓰고..

운영체제

러프한 운영체제 기초 4편 | 가상메모리

시작하기 앞서 이 글은 웹 백엔드 주니어 개발자가 인프런의 그림으로 쉽게 배우는 운영체제 강의를 들으며 공부한 내용을 러프하게 정리한 글입니다. 이전 글 러프한 운영체제 기초 1편: 러프한 운영체제 기초 1편 | 프로세스와 약간의 쓰레드 러프한 운영체제 기초 2편: 러프한 운영체제 기초 2편 | CPU 스케줄링과 교착 상태 러프한 운영체제 기초 3편: 러프한 운영체제 기초 3편 | 메모리 가상메모리 "RAM은 결코 충분하지 않다,"라는 고민에서 시작된 기법으로 물리 메모리 크기의 한계를 극복하기 위해 나온 기술임 컴퓨터에 실제로 가용한 메모리를 추상화하여 사용자들에게 하여금 매우 큰 메모리로 보이게 만드는 기법 가상메모리의 핵심은 프로세스를 메모리에 올릴 때 프로세스 전체를 메모리에 올리는 것이 아니라 ..

석이
'분류 전체보기' 카테고리의 글 목록 (3 Page)