SpringBoot
[mybais 에러] applicationContext.getResource, .getResources 차이
package MyFirstBoard.configuration; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.SqlSessionTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProper..
[Lombok] Lombok 안될 때(@Data, @Getter, @Setter)
간단한 로그인 서비스를 만들고 있었는데 다음과 같은 코드에서 에러가 났다. public Member login(String loginId, String password) { return memberRepository.findByLoginId(loginId) .filter(member -> member.getPassword().equals(password)) .orElse(null); } error: cannot find symbol .filter(member -> member.getPassword().equals(password)) ^ symbol: method getPassword() location: variable member of type Member 문제가 없었다. 처음에는 Optional에 f..
[Transaction] File저장과 DB저장을 함께 Transaction 하고 싶다.
@Service @Slf4j public class BoardServiceImpl implements BoardService{ //....중략 @Override public void insertBoard(BoardDto board, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception { boardMapper.insertBoard(board); List list = fileUtils.parseFileInfo(board.getBoardIdx(), multipartHttpServletRequest); if (CollectionUtils.isEmpty(list) == false){ boardMapper.insertBoardFileL..
[Transaction] Transaction과 try catch를 같이 사용하면 어떻게 될까?
Transaction 처리와 try catch를 같이 쓴다면 어떻게 될까 내가 파일 저장과 관련된 부분에 대해 오류가 생겨 찾아보던 중 아래의 글을 찾게 되었고, 굉장히 도움이 된다고 생각해서 정리 해 놓았다. https://okky.kr/articles/1231694 Transaction 처리 Transaction 처리는 간단하게 말해, 한번에 이루어져야하는 작업의 묶음이다. 즉 전체가 완료되던가 전체가 실패해야 한다. 일부 작업의 성공은 허용 하지 않는다. @Transactional public void unitOfWork() { aService.doA(); bService.doB(); cService.doC(); } 위와 같은 메서드가 있을 때, 순차 적으로 처리하다가 doB() 에서 예외가 발생한..

[스프링 AOP] 스프링 AOP 쉽게 설명, 적용 방법
시작 자 어떤 메서드 하나에 실행시간을 재는 코드를 만드려고 한다. 그래서 그 메서드 안에 시간을 재는 코드를 추가시켰다고 해보자. 그렇다면 아래와 같은 문제점이 예상될 수 있다. 클래스 안에 핵심 로직과 부가적인 로직이 뒤섞이게 된다. 다른 메서드에도 적용할 경우 코드가 계속해서 반복된다. 많은 메서드에 적용하려고 하면 말도 안되는 시간이 필요하고, 메서드도 더러워지고, 유지 보수하기가 난처하다. 이럴 때 AOP을 알면 보다 쉽게 접근이 가능하다. AOP를 쉽게 설명해주겠다🍝 자 우리는 토마토 스파게티, 올리브 스파게티, 까르보나라를 만드는 법에 대한 강의 영상을 찍으려고 한다. 그런데 세개는 모두 조리법이 다르지만, 모두 똑같이 면을 만드는 방법이 포함되어 있다. 그렇다 보니 나중에 다른 스파게티를 ..
[Log4JDBC] 쿼리 로그 정렬하기
기존 쿼리 로그에 대한 문제점💢 기존 로그에서 쿼리에 대한 로그 표시가 굉장히 가독성이 떨어진다는 것을 알 수 있다. 아래는 내가 이전 게시물에서 이어서 LogBack만 설정하고 표시한 로그 중 일부이다 2022-11-03 14:05:44,719 DEBUG [com.example.boardPractice.board.mapper.BoardMapper.checkLogin] ==> Preparing: SELECT user_id, user_pw, user_nickname FROM member_table WHERE user_id = ? AND user_pw = ? 2022-11-03 14:05:44,720 DEBUG [com.example.boardPractice.board.mapper.BoardMapper.ch..
[LogBack] logback-spring.xml 설정 실수
첫번째 실수 파일명 잘못입력 두번째 실수 를 로 잘못입력 인텔리제이에서 자동완성이 지원되니 실수하지 않도록 조심 또 조심
[LogBack] LogBack이란? 개요, 사용방법, 설명
로그(Log) 시스템 로그는 사용자가 직접 볼수는 없지만, 프로그램의 개발 및 유지보수, 에러 확인 등 전반에 걸쳐 사용된다. 로그(log)는 기존의 Debugger나 println에 비해 다음과 같은 장점이 있다. 상황별 Level을 지정해서 Level별 메시지 선택가능 응용프로그램의 실행에 대한 흐름과 에러 확인 가능 프레임 워크를 이용하여 간단하고 쉬운 사용환경 조성 모듈별로 유연하게 메시지 출력 가능 자유로운 출력 위치 및 다양한 출력 형식 지원 대표적인 로킹 프레임 워크 slf4j log4j logback log4j2 참조 : https://minkwon4.tistory.com/161 slf4j란? Simple Logging Facade For Java의 약자 logger의 추상체 다른 로깅 프..