전체 글(154)
-
.let
✔오늘 배운 중요한 🔑 point.let함수는 nullable 타입을 다룰때 ?.let 을 사용해 안전하게 처리할 수 있다.let 함수는 객체의 범위 내에서 안전하게 작업 수행이 가능하다🎯 오늘 배운 내용 .let 함수는 주어진 잭체를 람다 함수의 인자로 전달하고, 람다 함수 내에서 해당 객체를 처리하는 기능을 한다 .let을 사용하지 않았을 때fun main() { val name: String? = "HJP" if (name != null) { val length = name.length println("Name length: $length") } else { println("Name is null") }} .let을 사용했을 때fu..
2024.06.26 -
CDN(Content Delivery Network)
✔오늘 배운 중요한 🔑 point23CDN은 웹 사이트의 성능, 안정성, 보안, 확장성을 높이는 데 필수적인 도구이다 글로벌 사용자에게 콘텐츠를 빠르고 안정적으로 제공하려는 경우, CDN은 매우 유용하다.🎯 오늘 배운 내용 CDN이란?정적 콘텐츠를 전송하는 데 쓰이는, 지리적으로 분산된 서버의 네트워크 CDN이 왜 필요한가?웹 사이트의 콘텐츠는 보통 서버에서 사용자에게 전달되는데, 서버와 사용자의 물리적 거리가 멀면 멀수록 로딩 속도가 느려지기 때문에 CDN을 사용하면 사용자에게 가장 가까운 서버에서 콘텐츠를 전달하기 때문에 로딩 속도가 빨라진다 또한 CDN은 트래픽을 여러 서버에 분산시켜 부하를 나누어주기 때문에 단일 서버에 과도한 부하가 걸리지 않도록 하여 서버 다운타임을 줄이고, 웹 사이트의 가..
2024.06.25 -
CAP 정리
✔오늘 배운 중요한 🔑 point데이터의 일관성, 가용성, 파티션 감내라는 세가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다.대부분의 실제 분산 시스템은 CA를 선택하지 않고 CP 혹은 AP 중 하나를 선택한다🎯 오늘 배운 내용 REDIS 같은 KEY- VALUE 저장소는 많은 데이터를 저장하기 위해 분산 키-값 저장소(distributed key-value store)를 만들 필요가 있다. 분산 시스템을 설계할 때는 CAP 정리의 이해가 필수적이다 CAP 정리데이터의 일관성, 가용성, 파티션 감내라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다 데이터 일관성(Consistency): 모든 클라이언트는 어떤 노드에 접속했느냐에 관계없이 언제나 ..
2024.06.24 -
@Transactional과 롤백
✔오늘 배운 중요한 🔑 pointSpring AOP로 구현된 @Transactional 의 Aspect에서는 PlatfromTransactionalManager를 이용해서 커밋, 롤백 작업을 처리하게 된다.@Transactional(propagation = Propagation.REQUIRES_NEW)를 사용해서 부분 롤백이나, 독릭적인 트랜잭션이 필요한 경우에 적용시킬 수 있다.🎯 오늘 배운 내용 @Transactional 기본 개념트랜잭션은 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이며 하나의 트랜잭션 내에서 수행된 작업은 모두 성공하거나 모두 실패해야한다는 특징을 가진다 @Transactional 동작 방식Spring Transaction Abstraction 에서는 트랜잭션을 처..
2024.06.23 -
@DataJpaTest 를 이용한 통합 테스트 코드 작성하기
✔오늘 배운 중요한 🔑 point단위 테스트는 하나 하나의 메소드들이 제대로 작동하는지에 대한 테스트통합 테스트는 모듈간의 상호작용이 제대로 작동하는지에 대한 테스트테스트 코드 작성 시 함수 이름이나 변수 이름 등은 가독성을 위해서 한글로 작성하기도 함🎯 오늘 배운 내용 단위 테스트와 통합 테스트는 어떻게 다른가? 단위 테스트는 하나 하나의 메소드들이 제대로 작동하는지에 대한 테스트라면통합 테스트는 더 넓은 범위의, 모듈간의 상호작용을 테스트한다. 통합 테스트 package com.example.sampletest.api.serviceimport com.example.sampletest.api.dto.MemberRegisterRequestimport com.example.sampletest.api.d..
2024.06.22 -
@DataJpaTest를 이용해서 단위 테스트 코드 작성하기
✔오늘 배운 중요한 🔑 point테스트 코드 작성시 테스트용 applicaion.yml 파일을 하나 더 생성해줘야한다@DataJpaTest 어노테이션을 사용하면 모든 테스트 메소드에 @Transactional 이 적용되기 때문에 save() 를 하더라도 쓰기지연 SQL 저장소에만 저장이된다.🎯 오늘 배운 내용 테스트 코드 자동화테스트를 수행함으로써 소프트웨어의 결함을 조기에 발견하고 완성도 높은 소프트웨어를 개발하기 위해서 테스트 코드의 작성은 필수적이다. 이러한 테스트를 테스트 코드를 통해서 자동화할 필요가 있다. FIRST 원칙F (Fast)테스트 코드는 빠르게 실행되어야 한다.I (Isolated)테스트는 독립적이어야 한다. 즉, 다른 테스트나 외부 시스템을 의존하면 안된다.R (Repeatab..
2024.06.21