기록하며 성장한다 - 개발, 회고

개발 이슈 해결 4

[ 개발 이슈 해결 ] @Transactional 어노테이션이 있는데, 정상적으로 롤백이 이루어지지 않았던 문제점 해결

1.1. 문제점 필자의 회사는 빅데이터 회사이고, 빅데이터 솔루션을 개발할 때에 Java 와 Spring 을 통해 개발을 진행한다. 이 때 Spring 을 사용 할 때 회사 자체내에서 유지보수를 용이하게 하기 위한 자체 프레임워크를 개발해 두었는데, 해당 프레임워크를 활용하여 개발하는 것이 방침이다. @Override @Transactional public Object mainService(String serviceId, String serviceDtlOpt, Map inputParamMap) throws CustomCommonException { switch (serviceDtlOpt) { case "A": return aMethod(serviceId, inputParamMap); case "B": r..

[ 개발 이슈 해결 ] Redis 이상한 문자가 key로 저장되는 문제 해결

이슈 Redis에 Key를 저장 시 이상한 문자와 함께 16진수의 숫자가 저장되는 문제가 발생 해결 Config를 통해 해결 함. @Bean public RedisTemplate redisTemplate() { RedisTemplate redisTemplate = new RedisTemplate(); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueS..

[ 개발 이슈 해결 ] 멀티스레드 테스트 중 오류 발생

이슈 멀티스레드 환경에서 게시판 조회수가 어떻게 올라가는지를 테스트 하였음. 그 때 Exception in thread "pool-1-thread-14" org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query 오류 발생 해결 Service에 @Transactional 을 추가하지 않아서 발생한 오류 특히, native Query는 JPA와 다르게 자동으로 트랜잭션 처리가 안됨. 그래서 꼭 붙여줘야 함.

[ 개발 이슈 해결 ] application.properties 작성하는 민감 정보가 github에 올라가지 않게 하는 방법

이슈 application.properties 에는 DB정보나 Redis 정보등이 들어간다. 해당 정보가 그대로 github에 올라가면 안되기 때문에, 이걸 관리해주는 방법이 필요하다. 해결 1. application-aws.properties 라는 properties를 만든다. 2. application-aws.properties 에 DB나 Redis 등의 민감 정보를 입력한다. 3. application.properties에는 spring.profiles.include = aws 만 작성한다. 4. .gitignore에 ### IntelliJ IDEA ### 아래에 applicatoin-aws.properties 을 작성한다.