[스프링] @Controller와 @RestController의 차이를 알고 있나요?개발/Spring&JPA / 2023. 3. 20.안녕하세요😎 백엔드 개발자 제임스입니다 :) 스프링 프레임워크를 사용하여 개발을 한다면, @Controller와 @RestController를 빈번하게 사용하게 됩니다. 가령 프론트엔드 개발자들과 협업을 하기 위해 API를 개발한다면, @RestContoller를 많이 접할 것입니다. 그렇다면 두 어노테이션의 차이를 알고 계신가요? 오늘은 두 어노테이션의 차이에 대해서 알아보도록 하겠습니다. @Controller와 @RestContoller는 무엇인가요? 간단하게 @Controller와 @RestController에 대해서 알아보도록 하겠습니다. 두 어노테이션은 스프링에서 컨틀로러 역할을 수행할 객체에 지정해 주는 어노테이션입니다. 먼저 @Controller는 주로 Spring MVC 컨트롤러에 지정합니..
[스프링 시큐리티] 비인증 사용자를 위한 '익명 사용자' 알아보기개발/Spring&JPA / 2023. 3. 15.안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘 포스팅할 내용은 스프링 시큐리티와 관련된 내용입니다. 제가 프로젝트를 진행하면서 인증과 관련된 기능을 구현하던 중이었습니다. 해당 기능의 요구사항은 인증된 회원과 비인증 회원에게 서로 다른 데이터를 제공하는 역할을 하는 것이었습니다. 따라서 Security Context Holder에 인증 정보가 있는지 체크를 해야 했습니다. 여기서 저는 비인증 회원이라면, Security Context에 당연히 인증 정보가 없을 것이라고 이분법적인 사고를 했습니다. 만약 저의 논리에 따른다면, 비인증 회원의 요청에 해당 메서드는Null을 리턴하겠죠? 하지만 문제는! Null 체크를 진행한다면, Null 이 아닌 결과가 나옵니다. 제 생각과는 완전히 달랐습니다. 위에..
[프로그래밍] 자주 사용하는 정규식 표현 정리개발/Programming / 2023. 3. 8.안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 정규식 표현에 대해서 정리하도록 하겠습니다. 검증을 위해 유용하게 사용하는 정규식인데요. 그중 IP 주소, URL, email, Id, 패스워드, youtube 등, 자주 사용할 표현으로 정리했습니다. 1) IP 주소 IP 주소 (IPv4) ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ IP 주소 (IPv6) ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ IP 주소 (IP..
[IDE] MacOS 터미널(CLI)에서 IntelliJ 바로 실행하기개발/Programming / 2023. 2. 27.안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 MacOS 의 터미널에서 IntelliJ 에디터를 실행하는 방법을 알아보겠습니다. 이전에는 프로젝트를 실행하기 위해 직접 폴더에 들어가서 마우스로 실행했던 적이 많았습니다. 개발자의 입장에서 굉장히 번거로웠습니다. 알아보니 터미널에서 명령어를 통한 방법이 있었습니다. 먼저 간단한 설정을 진행해줘야 합니다. 초기설정 1) IntelliJ(인텔리제이) 에디터 상단의 Tools를 클릭합니다. 2) 'Create Command-line Launcher' 를 클릭합니다. 3) 아래와 같은 창에서 OK를 클릭합니다. 설정 후 설정이 끝나면, 터미널에서 프로젝트의 경로로 이동하고 [idea .] 명령어를 입력합니다. idea .
[스프링 시큐리티] WebSeucrityConfigurerAdapter Deprecated 대처개발/Spring&JPA / 2023. 1. 25.문제 위 그림과 같이 Spring Security 5.7.0-M2 버전부터, WebSecurityConfigurerAdapter가 deprecated 되었습니다. 공식 문서에 따르면, 다른 설정 방식을 권장한다고 합니다. 자세한 내용은 아래에서 확인하겠습니다. Deprecated : 더 이상 사용되지 않는 변경 내용 기존에는 해당 클래스를 상속받아 설정을 오버라이딩 하는 방식이었습니다. 바뀐 방식에서는 SecurityFilterChain 과 WebSecurityCustomizer 를 Bean으로 등록하여 사용합니다. HttpSecurity 구성 비교 (이전 방식) WebSecurityConfigurerAdapter 상속 후, configure 메소드 오버라이딩하여 설정하는 방식 @Configuration..
[DB] 트랜잭션(Transaction)에 대해서 알아보기개발/DB&SQL / 2023. 1. 23.안녕하세요😎 백엔드 개발자 제임스입니다 :) 모두 새해 복 많이 받고, 하는 일 모두 잘되세요! 오늘은 트랜잭션에 대해서 정리하겠습니다. 트랜잭션은 데이터베이스를 다루기 위해 필수로 알아야 할 개념입니다. 기술면접에서도 이와 관련된 질문이 자주 나옵니다. 그만큼 기본적이면서 중요하죠. 이제 자세하게 알아보겠습니다. 트랜잭션(Transaction)이란? 간략한 표현 : Tx 1초당 처리할 수 있는 트랜잭션의 개수 : TPS 트랜잭션은 데이터베이스의 상태를 변경시키기 위해 수행하는 작업의 단위입니다. 또는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위입니다. 여기서 상태를 변경시킨다는 의미는 DML(Data Manipulation Language)에 해당하는 SELECT, INSERT, UPDATE, DEL..