내꺼! 21

though, although, even though, even if, despite, in spite of, nevertheless

though와 although는 동일하나 구어체에서는 though를 많이 씀. (위치의 차이도 있음) even though : 그럼에도 불구하고 even if : 그럴지 모르지만서도 불구하고 극복의 느낌이나 선호의 느낌이 있음. despite 와 in spite of 는 전치사여서 뒤에 명사가 오며 더 강조효과가 있다. nevertheless는 but의 역할을 한다. (앞에도 좋지만~ 그럼에도 불구하고가 앞에도 좋지만 뒤에도 좋다~ 또는 앞에걸 인정하지만 뒤에가 그럼에도 불구하고 좋다~)

카테고리 없음 2024.04.12

Spring boot profile(AWS Secret Manager, Log4j2)

build 또는 run 할 때, local,dev,prod 환경으로 진행 할 수 있다. gradle implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap:3.0.3' implementation 'org.springframework.cloud:spring-cloud-starter-aws-secrets-manager-config:2.2.6.RELEASE' implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1' implementation group: 'org.apache.logging.log4j', name: 'log4j-core', ..

개발/Spring 2022.04.06

Spring boot Data JPA Hikari Master/Slave (Write,Read Only) 사용하기.

DATA JPA를 사용할 때, read only와 write db를 따로 구성해서 서버 성능을 올리고 싶을때 사용한다. import java.util.HashMap; import java.util.Map; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import ..

개발/Spring 2022.04.06

Spring boot&React Cookie 설정 SameSite Cookie 변경된 크롬 80 쿠키 정책

이전에 쿠키 설정하던게 쿠키 정책 변경으로 갑자기 작동하지 않았다. 왜 안되는지는 검색해보면 아주 잘 나와있다(귀찮아서 아님.. 잘 설명할 자신이 없기에,,) 다만, 쿠키 domain을 설정할 때, .이 2개 들어가야 한다는 조항은 없어진듯 하다. spring boot 와 react에서 적용하는 방법에 대해 기술한다. # cors cors.allowed-origins=http://localhost:3000 cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS cors.allowed-headers=* cors.exposed-headers=Set-Cookie cors.max-age=3600 #domain mypage.domain=localhost properties에 이렇게..

개발/Spring 2022.04.06

Part.2 Spring boot 갯수 제한 이벤트 구현(Redis 이용) Redisson, Transaction, Sync(lock) 유저가 많이 몰릴때.

Part.1 에서 싱크를 걸었기 때문에 유저가 많이 몰릴경우 속도가 많이 느려진다. 그래서 Lock 영역에서 막는 것은 Redis로 처리하고 db insert 처리는 thread 로 처리한다. import java.time.LocalDateTime; import java.util.concurrent.TimeUnit; import org.redisson.api.RBucket; import org.redisson.api.RTransaction; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annot..

개발/Spring 2022.04.06

Spring @RequestParam @RequestBody @ModelAttribute 차이

1. @RequestParam 1개의 HTT 요청 파라미터를 받기 위해서 사용한다. 예제 @GetMapping("/api/foos") @ResponseBody public String getFoos(@RequestParam String id) { return "ID: " + id; } @RequestParam을 이용해서 id 쿼리 매개변수를 추출한다. 속성 1. name 위의 예제에서는 변수 이름과 매개변수 이름이 동일한데, 이를 다르게 설정할 수도 있다. @PostMapping("/api/foos") @ResponseBody public String addFoo(@RequestParam(name = "id") String fooId, @RequestParam String name) { return "I..

개발/Spring 2022.03.20

Part.1 Spring boot 갯수 제한 이벤트 구현(Redis 이용) Redisson, Transaction, Sync(lock) 유저가 많이 몰릴때.

갯수 제한 이벤트시 순삭당하는 경우가 있습니다. 멀티 쓰레드 환경에서 sync하고 atomic하게 구현해야 정확하게 갯수에 맞춰서 사용자에게 서비스를 제공할 수 있습니다. 그러한 check를 db를 사용하기에는 너무 느리기에 redis를 사용하여 구현하였습니다. 일반 Spring boot에서 사용하는 Jedis 와 Lettuce는 lock 구현이 안되어 있어 redisson을 사용해야 합니다. 정확히는 스핀락을 사용하지 않는 pub/sub 기반으로 사용하려고 redisson을 사용합니다. gradle implementation 'org.redisson:redisson-spring-boot-starter:3.16.8' application.properties # Redis spring.redis.host=..

개발/Spring 2022.03.19