- string
- springboot
- 스프링
- AWS
- Django
- 자바
- join
- 프로그래머스
- 문자열
- static
- hibernate
- select
- PYTHON
- 데이터베이스
- 1차원 배열
- 스프링부트
- Docker
- spring boot
- java
- spring security 6
- mysql
- jpa
- ORM
- sql
- nginx
- DI
- spring
- @transactional
- SSL
- spring mvc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록Java & Kotlin (86)
개발하는 자몽
@Embeddable, @Embedded`@Embeddable` 애노테이션이 있는 클래스는 기본 생성자가 필요함임베디드 타입은 값 타입에 속하는데, 이러한 값 타입은 여러 엔티티에서 공유하면 side effect를 일으킬 수 있다.따라서 불변 객체(Immutable Object)로 설정하여 이러한 문제를 방지하는 것이 좋다.`@Embeddable` 클래스에 수정자(setter)를 생성하지 않고 생성자만 두어, 생성자로만 값을 설정하게 한다수정자가 없으므로 해당 임베디드 값 타입을 필드로 갖고 있는(@Embedded) 엔티티에서는 특정 값만 수정하는 것이 불가능. 객체를 새로 생성해야 함. public static void main(String args[]) { Address address = new..
`new Integer(int)`는 새로운 객체 인스턴스를 매번 생성한다. `Integer.valueOf(int)`은 지정된 `int` 값을 나타내는 `Integer` 인스턴스를 반환한다.새로운 `Integer` 인스턴스가 필요한 경우가 아니라면, 일반적으로 생성자 `Integer(int)` 보다 해당 메서드를 우선적으로 사용하는 것이 메모리 측면에서 권장된다. 이는 자주 요청되는 값을 캐싱하여 더 나은 공간 및 시간 성능을 제공할 가능성이 높기 때문이다. 다음은 예시 코드다.public static void main(String[] args) { Integer a = new Integer(10); Integer b = new Integer(10); System.out.p..
상황`Required reuqest body is missing`라는 문구와 함께 `HttpMessageNotReadableException` 타입의 에러가 발생했다. `Controller`에 존재하는 메서드에서 `request body`를 인식하지 못하는 것으로 확인했다.@RestControllerpublic class RestController { @PostMapping("/aaa") public ResponseEntity aaa(@RequestBody @Valid final RequestDto dto) { ... return ResponseEntity.status(HttpStatus.CREATED).build(); } ...}해당 메서드에 `@RequestBody..
프로젝트를 진행하면서 Java 환경에서 Python 프로그램을 실행해야 할 일이 생겼다. 해본 적이 없어서 할 수 있는지가 걱정이었는데 역시 안될 건 없다. 종류일단 외부 프로그램을 실행할 때 쓰이는 방법들을 찾아보았다.JSR-233 Scripting EngineJythonProcessBuilderApache Common Exec(thrid-party lib)ZT Process ExecutorHTTP (python server) JSR-233 Scripting EngineJava 6 부터 지원set of scripting APIs`CLASSPATH`에 `Jython`이 있어야 함Jython의 경우 파이썬 라이브러리를 한정적으로 사용하게 됨 Jython자바 코드에 파이썬 코드를 직접적으로 임베딩할 수 있음..
JPA 데이터베이스 스키마 자동 생성개발 서버에서는 가급적 `none`테스트 서버와 스테이징 서버에 `validate` 정도는 괜찮은 듯. 그래도 가급적 `none`을 권장. 혼자 개발하는 환경에서는 `validate` 정도는 괜찮지만, 여러 명이 함께 개발하는 곳에서는 `none`.실제 운영서버에서는 아예 `none`. 수많은 데이터가 있는 운영 서버에서 `ALTER` 쿼리 등을 잘못 입력하면 시스템이 중단 상태가 될 수도 있음. 그래서 가급적 작성한 쿼리가 잘 동작하는지 테스트 서버에서 확인해봐야 함.운영 서버에 스크립트를 반영할 때 가급적이면 쿼리를 다듬어서 넘긴다. 필드와 컬럼 매핑`@Column`의 `unique=true` 제약 조건은 잘 사용하지 않는다. 사용 시 제약 조건 이름이 랜덤 생성되..
이 글은 아래 강의를 바탕으로 공부한 내용을 정리하는 글입니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 | 김영한 - 인프런김영한 | JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., 실무에서도www.inflearn.com 🔖목차🔖영속성 컨텍스트엔티티의 상태1차 캐시엔티티 등록 - 쓰기 지연변경 감지(Dirty Checking)SUMMARY 영속성 컨텍스트엔티티를 영구 저장하는 환경논리적 개념, 눈에 보이지 않음`EntityManager`를 통해서 접근`EntityManager`는 엔티티를 조작하고 데이터베이스와의 통신을 수행하는 인터페이스. 엔티티의 영..
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. 아래 포스팅들을 먼저 보면 좋습니다.Spring Security 6 - Architecture → Security Exception 처리하기[Spring Security] 토큰 기반 로그인/로그아웃 구현하기 이 글의 목표는 Spring Security에서 토큰 기반 인증을 진행할 때 발생한 예외를 `@RestControllerAdvice`로 처리하는 것입니다. 시큐리티 예외 처리 구현Spring Security에서 예외 처리는 다음과 같은 아키텍처로 이루어진다. FilterChainSpring Security는 `FilterChain`으로 구성되어 있으며, 각 필터는 요청을 처리하거나..
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. 지난 포스팅에서 이어집니다.[Spring Security]토큰 기반 로그인/로그아웃 구현하기 역할과 권한사용자의 역할(role)과 권한(permission/authority)을 구현하여 기능 접근에 제약을 둘 수 있다. 만일 권한이 없는 기능에 접근하면 403 Forbidden이 발생한다. 역할 및 권한 구현 시 다음과 같은 것들을 고려해야 한다. 한 역할은 여러 개의 권한을 가질 수 있다.여러 명의 사용자는 여러 개의 역할을 가질 수 있다. → 다대다 관계역할을 하나의 Entity로 두어 구현할 수 있지만, 이 경우에 고려할 것이 많아진다. 다대다 관계 매핑 → `@ManyToMany`중..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ddBRTq/btsHPQ2WBB4/KB2mLAcZYIB45FR4KZXgsK/img.png)
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. Notice 24.07.06 로그인 구현 부분 `JwtAuthenticationFilter` 잘못된 내용 수정 Spring Security Authentication ArchitectureSpring Security를 기반으로 보안 관련 기능을 구현하기 위해서는 위의 그림을 이해해야 한다. 아래는 로그인을 예시로 한 Spring Security 인증 과정이다. 1. 사용자가 로그인 정보와 함께 인증을 요청한다. 2. `AuthenticationFilter`가 요청을 가로채어 인증에 사용될 UsernamePasswordAuthenticationToken 객체를 생성한다....public ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wjYCr/btsHQ9UqTqn/o5h8RM8HWFWc9C6irrKijk/img.png)
Spring Security 6 - Architecture 공식 문서를 번역했습니다. 필요에 의해 설명을 추가한 부분도 있습니다. Architecture :: Spring SecurityThe Security Filters are inserted into the FilterChainProxy with the SecurityFilterChain API. Those filters can be used for a number of different purposes, like authentication, authorization, exploit protection, and more. The filters are executed in a specdocs.spring.io 🔖목차🔖Spring Security..