| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- 실무
- springboot
- transactional
- Adapter
- Spring
- JDBC
- simplejpaRepository
- JPA
- Spring Data JPA
- hexagonal architecture
- Hexagonal
- Layered Architecture
- Transaction
- Today
- Total
List분류 전체보기 (61)
Ezcho
AI 모델 서빙을 위한 B2B, B2C 서비스를 개발하고 있었다.내가 개발한 Gateway는 개별 모델 컨테이너로 Input을 전달하는 역할을 한다. 처음에는 API Key 기반 인증과 접근 제어를 구현하는 데 집중했다. 그런데 클라이언트 요청으로 데모 페이지를 추가 개발하게 되었다.파일 업로드를 포함한 데모 페이지를 공개하자마자 예상보다 많은 공격 시도가 발생했다. SQL 인젝션, XSS, 파일 업로드 조작 등 다양한 패턴이 로그에 기록되었다. 초기에는 단순히 로그를 추적하다가 DB에 Injection Query 데이터가 일부 쓰이는 정도로 끝났지만, 이를 계기로 단순한 요청 라우팅만으로는 부족하다는 점을 알게 되었다. 업로드 파일과 요청 자체를 검증하고 차단하는 로직을 Gateway에 포함시켜야 한다..
https://github.com/Ezcho/hex-user-boilerplate.git GitHub - Ezcho/hex-user-boilerplate: User service based on hexagonal architectureUser service based on hexagonal architecture. Contribute to Ezcho/hex-user-boilerplate development by creating an account on GitHub.github.com Hexagonal Architecture + SpringSecurity를 활용한 유저 CRUD 최근 스타트업에서 개발을 하며 느꼈던게.. REST API를 적용하더라도 어플리케이션 및 서버의 복잡도가 늘어나는 추세였다...
https://gitlab-docs.infograb.net/ee/api/rest/
1. JDBC란? JDBC(Java DataBase Connectivity의 약자)는 Java가 데이터베이스와 통신하기위한 API다. java 어플리케이션에서 JDBC 문법을 통해 데이터베이스에 자동으로 데이터를 CRUD할 수 있다. 왜 그럴까? JDBC API의 전반적인 동작구조는 위와같다. Application 에서작성한 jdbc문법을 jdbcAPI에서 분기, jdbc Driver에서 각 DB환경에 맞게 변환해주는것이다. 즉, H2, Mysql, Oracle, MariaDB... 등 DB마다 환경이 다르고 저장방식도 통신도 전부 다르다. 그래서 API가 각 환경에 맞는 드라이버를 찾아서 연결해주는것이다. 즉 JDBC API는 인터페이스라고 볼 수 있고, 구현은 Driver에서 하는것이다. 더보기 JD..
스프링 IoC 컨테이너가 관리하는 자바 객체를 Bean 이라고 부른다. IoC란? Ioc(제어역전) 전통적인 프로그래밍에서는 개발자가 작성한 프로그램이 외부 라이브러리의 코드를 호출해서 이용 제어역전은 외부라이브러리에서 개발자의 코드를 호출해서 사용한다. (스프링 프레임워크가 사용자의 코드를 호출) 이렇듯 스프링에서는 개발자가 작성한 코드가 외부라이브러리인 스프링에서 실행되는것을 말한다. 스프링의 탄생배경을 살펴보자 EJB(Enterprise JavaBeans)의 문제점: Spring 프레임워크가 탄생한 배경 중 하나는 EJB의 복잡성과 무겁고 느린 개발 프로세스에 대한 반발이었습니다. EJB는 자바 엔터프라이즈 애플리케이션 개발을 위한 표준이었지만, 사용이 어렵고 무겁다는 평가를 받았습니다. Sprin..
이전글 https://ezerocho.tistory.com/62 [OAuth2.0] Spring + OAuth2.0 Kakao 소셜 로그인 구현(1) 이전글 https://ezerocho.tistory.com/61 [OAuth 2.0] OAuth2.0 프로토콜 동작과정 OAuth2.0, Open Authorization 2.0은 인증을 위한 개방형 표준 프로토콜 이다. 흔히들 소셜로그인이라 부르는 카카오톡로그인, Google로 ezerocho.tistory.com 이전글에서 AccessToken과 RefreshToken을 받아오는것까지 구현해보았다. 이제 받아온 AccessToken을 가지고 해당 사용자 정보를 불러온 후, Member 엔티티를 만들고 DB에 저장해보자. 1. Member Entity 구..
이전글 https://ezerocho.tistory.com/61 [OAuth 2.0] OAuth2.0 프로토콜 동작과정 OAuth2.0, Open Authorization 2.0은 인증을 위한 개방형 표준 프로토콜 이다. 흔히들 소셜로그인이라 부르는 카카오톡로그인, Google로그인, 네이버로그인등 타서비스의 계정을 사용해 내가 개발한 서비 ezerocho.tistory.com 1. 카카오 Developers에 내 서비스 추가하기 https://developers.kakao.com/console/app 카카오계정 accounts.kakao.com 위 페이지에 접속하여 로그인을 한 후 애플리케이션을 하나 추가해준다. 그리고 아래 페이지에 따라 웹애플리케이션을 가동시키기 위한 설정들을 해주자. https:/..
OAuth2.0, Open Authorization 2.0은 인증을 위한 개방형 표준 프로토콜 이다. 흔히들 소셜로그인이라 부르는 카카오톡로그인, Google로그인, 네이버로그인등 타서비스의 계정을 사용해 내가 개발한 서비스의 회원으로 등록하는것도, 더 나아가 내가 만든 서비스에서 해당 서비스의 특정 정보를 가져오기 위해서는 소셜로그인이 필요합니다. 예를들어 구글에 로그인 한 후 내 캘린더 정보를 가져온다고 생각해보자. 1차원적 관점으로 바라볼때 데이터를 가져오기위해서는 구글의 아이디와 비밀번호를 내가 만든 서비스에 사용자가 입력하게 한 후 서버에서 구글에 접근한 후 유저에게 전달받은 ID와 PWD를 통해 로그인을 하면 된다. 하지만.. 이 방법이 맞는것일까? 당연히틀렸다. 사용자가 내 서비스에 ID 와..