전체 글

지식 공유를 지향하며 기록하는 주니어 백엔드 개발자의 블로그 입니다.
안녕하세요 오늘은 스프링 시큐리티 Config 설정 중에서 만난 오류에 대해서 알아보려고 합니다. csrf()' is deprecated since version 6.1 and marked for removal 위 오류는 Spring Security 에서 config 설정을 할 때 일어난 오류 입니다. 기존에 csrf 방어는 디폴트로 활성화가 되어 있지만, 공부를 하는 입장에서는 비활성화 상태로 하기 위해서코드를 작성하다가 오류가 생겼습니다. Deprecated 는 이제 과거 코드이고, 지원하지 않는다고 하여 Spring Security 문서를 보니 함수형으로 바꿔서 쓰라고 친절하게 예시 코드가 보여 주었습니다. Spring Security 에서 래퍼런스 문서입니다.기존에는 위 처럼 메소드 체이닝 방식을..
· IT/회고
나는 올해 2월에 회사에 입사를한, 0년차 개발자이다. 여러 기업을 자기소개서 항목을 보다가 이런 몇가지 공통적인 질문이 있었다.(다는 아님, 제가 본 회사 중에서 여러 군데 이러한 질문이 있었음) ✅ 어떠한 개발자가 되고싶으신가요?✅ 개발자로써의 최종 목표가 있으신가요? 라는 질문을 봤을 때 생각보다 당황스러웠다. 이 질문에 뭐라고 답변을 해야할지 감이 잡히질 않았다. 현재 개발자가 되었고, 내가 원하는 기술 스택인 Java,SpringBoot, Jpa 를 사용하면서 개발자로 일을 하고 있으면서도이러한 질문에 대한 명확한 답변이 나오지 않아 살짝 나 자신이 한심해지는? 현자타임이 살짝 있었다. 과거로 돌아가서 내 개발자를 꿈꾸고서 처음 목표는 SI,SM 이 아닌 자체 서비스를 운영하는 회사에 입사하는 ..
· DB/JPA
안녕하세요👋오늘은 제가 개발시 느꼈던 에러와 불편함에 대한 해결책을 이야기 해보려고 합니다. 해결 방법이 급하게 궁금하신분은 맨 아래에 해결 방법이 나와 있습니다ㅎㅎ ✅ 서론제 개발 환경은 Intellj, Java17, SpringBoot3.2, MySQL8.0 입니다 (참고 해주세요) 저는 항상 DB 툴을 통해서 미리 ERD 를 통해 DB 설계 후 , DB에 알맞게 Entity 를 구현하였습니다. 그리고 실무라고 생각하고 개발을 진행하였기에 application.yml 에서 JPA 설정은 spring: jpa: show-sql: true properties: format_sql: true dialect: org.hibernate.dialect.MySQL8Diale..
· Java/Java
안녕하세요 👐오늘은 성능측정도구 JMH 에 대한 이야기를 해보려고 합니다.  서론제가 JMH 를 알게 된 계기는 자바에서 Stream 과 일반 for loop 에 대한 성능 측정을 해보고둘에 대한 차이를 알아보다가 자연스럽게 알게 되었습니다. JMH 라이브러리는 간단하고, 어노테이션 기반 방식을 지원하며, 안정적으로 자바 프로그램 또는 JVM 메모리를 사용하는모든 언어를 대상으로  벤치마크를 구현할 수 있습니다.  벤치마크라는 단어가 생소 했습니다. 맨처음엔 mysql workbench 랑 헷갈렸었죠..😅 벤치마크는 컴퓨터 시스템, 소프트웨어, 하드웨어, 디바이스 등으 성능을 측정하고 비교하기 위해 사용되는 표준화된 테스트 입니다.이 테스트는 일반적으로 속도,처리량,응답시간,성능 과 같은 측면을 측정..
· Java/Java
안녕하세요🤚오늘은 Stream API 를 공부하며 궁금했던 내용에 대해서 이야기 해보려고 합니다. 서론요즘 모던 자바 인 액션 책에 푹 빠져있어, 매일 매일 책을 읽으며 새로운 지식들을 쌓아가고 있습니다.아직 응애 개발자인, 3개월차 개발자가 보기엔 어려운 내용이 많지만, 새로운 내용이 많아서 처음부터 시작하는 거 같은 신기한 기분을 느끼고 흥미로워서 재밌습니다. 스트림은 자바 8부터 새롭게 생긴 문법으로 기존의 자바 문법들 보다 더 좋을 것이라고 생각했습니다. 그래서 아직 사용이 자연스럽지 않음에도 연습할 필요성을 느껴서 책을 사서 공부를 하는 중입니다. 모던 자바 인 액션은 자바8 이후 새로운 문법에 대해서 이야기하는 책으로대표적으로 Lambda, Stream, Optional 등 새로운 문법들을 ..
· DB/Redis
안녕하세요✋오늘은 Redis 데이터 타입에 대하여 설명을 해보겠습니다. Redis 는 Key/Value 구조을 저장을 지원하는 NoSQL 데이터 베이스 입니다. Key는 Redis data에 접근할 수 있는 식별자이며Key 에는 binary, text를 사용할 수 있습니다. 하나의 Key 에는 최대 512MB 까지 저장할 수 있다. 이제 Redis 의 DataType 에 대하여 알아보겠습니다. 대표적으로 Key/Value(Data type) 에는 1) Strings2) Lists3) Sets4) Sorted sets5) Hashes6) Geospatial7) Bitmap Java 컬렉션 프레임 워크에도 비슷한 자료구조가 있습니다. 그리고 위에 있는 데이터 타입들은 자바 컬렉션 프레임워크랑 거의 유사하다고..
안녕하세요👋오늘은 프로젝트에서 로그 메시지에 대한 내용을 수정하기 위한 작업을 해볼 예정입니다. 로그 메세지를 왜 수정해야 할까요? 이미 스프링부트 환경에서는 자동으로 로그메세지도 제공해주고,Error 면 Error, Info 면 Info 알아서 나오지 않나요? 라는 생각을 할 수 있습니다. 하지만 로그도 하나의 코드라는 생각으로 스프링에서 제공해주는 일반적인 로그가 아닌내가 알아보기 편한, 즉 가독성(=읽기 편한) 로그를 만들어주는 것 또한 중요하다고 생각합니다.  실질적으로 서비스를 운영하면, 다양한 환경에서 Error 및 Info 로그를 체크해야 할 일이 많습니다. 그 로그들을 편리함,가독성, 팀원 과 공통적인 설정, 여러가지 보안적인 부분 프로젝트 스펙을 클라이언트와 맞추기 위해서 로그 스펙을 ..
안녕하세요✋오늘은 JWT Token에 대해서 간단하게 알아보려고 합니다. JWT Token은 보통 로그인 로직을 짤 때 많이 활용하고는 합니다.Spring Security에서 JWT 를 사용하기 위해서 공부를 해보았고아래 내용을 보면서 기본 개념이랑 어떻게 활용하는지에 대해서 더 알아보겠습니다.  📌 기본 개념JWT(JSON Web Token) 은 웹 표준으로써 데이터의 JSON 객체를 사용하여 가볍고 자가 수용적인 방식으로 정보를 안전하게 전달할 수 있도록 전달할 수 있도록 설계된 토큰 기반의 인증 방식입니다. 토큰이라는 개념이 생소할 수도 있습니다. 일단 내용을 쭉 읽으시면서 자연스럽게 알 수 있습니다. JWT는 URL, HTTP Header, Cookie, HTML Form..
· Java/Java
안녕하세요 🤚 오늘은 모던 자바인 액션 책에 있는 스트림API 활용하는 실전 문제를 직접 풀어보며 Stream API에 대한 이해도를 높여보고자 합니다. 위 과정은 모던 자바 인 액션 에 있는 챕터에 실전문제중 하나 이며, 자세한 내용은 책을 참고해주시면 감사하겠습니다. 문제를 보기전에 아래 코드는 사전에 작성을 해둬야하는 코드 입니다 public class Trader { private final String name; private final String city; public Trader (String name, String city) { this.name = name; this.city = city; } public String getName () { return name; } public Str..
· Java/Java
안녕하세요✋오늘은 Java 에서 제네릭 에대해 알아보겠습니다. 제가 간단하게 알았던 제네릭 타입은 그냥List list = new ArrayList();List linkedList = new LinkedList(); 안에 들어가는 타입을 미리 결정하는게 제네릭 타입 이구나 정도로 알고 있었습니다. 그러다가 저 리스트에 String이 아닌 객체가 들어올수도 있고, Integer, Double 등 다른값이 들어올수도 있는 상황을 생각해 봤습니다.  즉 나중에 저 List 안에 String 도 들어갈수도 있고, Integer 도 들어갈 수 있는즉, 재사용성이 가능한 코드를 어떻게 하면 만들 수 있을까?라는 고민을 해봤고, 그에 대한 해답은 바로 제네릭 을 잘 이해하고 사용하자 였습니다.  고민 1)어떠한 타입..
Hyeonq / Log
현규 공부방