본문 바로가기

일단고39

@Transactional 애노테이션 : 주의사항 안녕하세요 여러분 일단고입니다! 날씨가 많이 추워져서 이제 긴팔을 입을 정도가 되었으니…. 겨울이 금방오지 않을까… 여러분 감기 조심하셔야 합니다. 지난번에 ‘트랜잭션의 이해’에 대해 배우고 오늘은 Spring boot에서 해당 트랜잭션을 구현하는 @Transactional 애노테이션에 대해서 알아보겠습니다! 트랜잭션의 이해(ACID) 베하! 안녕하세요. 9월이 왔고 확실히 8월 보다는 날씨가 시원해지고 있어 기분이 좋습니다. 때론 춥기도 하네요. 오늘 알아볼 내용은 트랜잭션입니다. 트랜잭션은 모든 it 서비스에서 가장 중요 btcd.tistory.com 1. 트랜잭션 Spring Boot의 @Transactional 애노테이션에 대해 알기 전 트랜잭션에 대해 간단히 알아봅시다. 트랜잭션은 데이터베이스 .. 2023. 10. 13.
[Mybatis] #{}과 ${}의 차이 안녕하세요 여러분 일단고입니다! 지난번에 이어서 Mybatis에 대해 좀 더 알아보는 시간을 갖겠습니다. 저번 시간에 쿼리문의 결과 값을 객체로 반환받는 방법에 대해 알았다면, 이번엔 쿼리문에 파라미터를 전달할 때 사용되는 설정 : 플레이스 홀더 #{}와 ${}의 차이에 대해서 알아보겠습니다. MyBatis는 데이터베이스와의 상호 작용을 쉽게 만들어주는 자바 퍼시스턴스 프레임워크 중 하나입니다. MyBatis를 사용하면 SQL 쿼리를 정의하고 실행할 때 플레이스 홀더로 #{} 또는 ${}를 사용할 수 있습니다. 이 글에서는 #{}와 ${}의 차이점과 언제 어떤 것을 사용해야 하는지에 대해 알아보겠습니다. #{}: Prepared Statements #{}은 MyBatis의 Prepared Statemen.. 2023. 10. 5.
[Mybatis] resultMap과 resultType 베하! 안녕하세요 여러분 추석이 다가오고 있습니다! 9월은 잘 보내셨나요? 오늘은 Mybatis의 resultMap과 resultType의 차이점에 대해 알아보겠습니다. Mybatis 우선 Mybatis란, 자바 객체와 SQL 결과를 매핑하는 데 사용되는 강력한 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis를 사용하면 SQL 쿼리의 결과를 자바 객체로 변환하거나, 자바 객체를 SQL 파라미터로 전달할 수 있습니다. 이를 가능하게 하는 두 가지 중요한 설정 옵션은 resultMap과 resultType입니다. resultType resultType은 SQL 쿼리의 결과를 단일 자바 객체로 매핑하는 데 사용됩니다. 이 자바 객체는 일반적으로 POJO(Plain Old.. 2023. 9. 27.
MyBatis 성능 개선포인트 베하! 안녕하세요. 추석이 다가 왔습니다! 오늘 알아볼 내용은 MyBatis 사용 시 성능 개선 포인트에 대해서 알려드릴까 합니다. 개선 포인트에 대해 알려드리기 전 먼저 제가 경험했던 부분에 대해 국한된 부분이라 각 환경에 따라 다를 수 있다는 점, 대용량 데이터 배치 처리 환경에서 MySQL을 사용했고 대용량 데이터는 정확히 100만개의 row, 40개 컬럼을 기준으로 메모리 안정화를 주 목적으로 한 작업에서 개선 포인트를 알려드리니 참고 부탁드리겠습니다 ^^ 또한, 저는 대부분의 설정 및 성능 포인트를 setting보다는 java 코드로 구현했습니다. MyBatis란? 먼저 MyBatis 성능 개선 포인트를 알기전 MyBatis에 대해 간략하게 알아볼까요? MyBatis는 자바 어플리케이션과 관계형.. 2023. 9. 27.
트랜잭션의 이해(ACID) 베하! 안녕하세요. 9월이 왔고 확실히 8월 보다는 날씨가 시원해지고 있어 기분이 좋습니다. 때론 춥기도 하네요. 오늘 알아볼 내용은 트랜잭션입니다. 트랜잭션은 모든 it 서비스에서 가장 중요한 역할을 담당하고 있어 반드시 알고 있어야 하는 내용 중 하나입니다. 트랜잭션(Transaction) 트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛이라고 말합니다. 이는 데이터 베이스의 상태(데이터)를 변화시키기 위해 수행하는 **작업의 모음을 하나의 단위를 뜻하게 됩니다.** 결국 트랜잭션은 데이터베이스에서 원자적인(atomic) 작업의 모음이겠죠. ‘원자’는 쪼갤 수 없는 가장 작은 단위를 말하는데 이 원자들(작업 혹은 쿼리)의 모음이 되는 것을 생각해보면 이해가 쉬울 수 있습니다. 데이터 베이스는 DM.. 2023. 9. 15.
웹 소켓이란 베하! 안녕하세요 여러분~ 기쁜 소식입니다. 바람이 시원해졌어요. 저는 여름보다 겨울이 좋아서 기분이 좋네요~~ 오늘 알아볼 내용은 웹 소켓입니다. 웹 소켓이 무엇인지 알고 있나요? 모르는 분들을 위해 오늘도 재미있게 글을 읽어주셨으면 좋겠네요! 서론을 말하자면, 웹 소켓(Web Socket)은 현대 웹 개발에서 중요한 역할을 하는 기술 중 하나입니다. 이 기술은 웹 응용 프로그램에서 실시간 통신을 구현하는 데 사용됩니다. 웹 소켓이 무엇인지, 어떤 상황에서 필요한지, 동작 방식, 그리고 장단점에 대해 설명드릴게요. 웹 소켓이란? 웹 소켓은 양방향 통신을 지원하는 프로토콜로, 클라이언트와 서버 간에 실시간 데이터를 교환할 수 있도록 해줍니다. 이는 HTTP와는 다르게 연결을 유지하고 있어 실시간 업데이트.. 2023. 9. 11.
람다 캡처링(Lambda Capturing) 베하! 안녕하세요 여러분, 일단고입니다. 오늘은 개발하면서 알게된 ‘람다 캡처링’에 대해서 알아보겠습니다. 얼마전 개발을 진행하다 람다식을 사용했는데요. 그때 Variable used in lambda expression should be final or effectively final 오류를 만났습니다. 람다 캡처링이 발생했기 때문인데요. 그래서 람다 캡처링이 무엇인지에 대해 알아보겠습니다. 발생한 오류 Variable used in lambda expression should be final or effectively final 라는 오류로 제가 사용하는 intellij가 알려주고 있습니다. 이 에러를 직역해 보면 람다 표현식에서는 final effectively final 변수만 사용할 수 있다는 .. 2023. 9. 1.
[Vue] watch 속성과 옵션 베하! 여러분 오랜만에 Vue에 대해 알려드릴 일단고팀입니다! Vue 중에서 오늘 알려드릴 키워드는 바로~~ watch 오브젝트입니다!! Watch 속성 watch는 데이터의 변경을 감지해서 원하는 로직을 처리하기에 알맞은 속성입니다. 즉, 데이터 변경에 대한 응답으로 비동기식 또는 시간이 많이 소요되는 조작을 수행하려는 경우에 가장 유용한 속성이 watch입니다. 예시를 들어보겠습니다. yes/no 질문을 물어보세요: {{ answer }} 위 예시는 question이라는 데이터를 입력할 수 있는 input칸이 있고, 해당 input칸에 무언가 작성하면 answer에 ‘입력을 기다리는 중…’ 이라는 값이 들어가게 작성한 예시입니다. 이러한 watch 속성에는 옵션도 존재합니다. 옵션 1 - deep 우.. 2023. 8. 28.