분류 전체보기278 Concurrency Issue and Thread-safety 자원 공유 시 발생하는 문제인 동시성 문제(concurrency issue)에 대해 알아본다. 여러 스레드 및 애플리케이션에서 하나의 자원을 동시에 사용하려고 하면 경쟁 상태(race condition)가 발생한다. 이를 동시성 문제라고 하고 이런 상황이 발생되지 않는 성질을 스레드 안전성(thread-safety)라고 한다. 이를 달성하기 위한 방법에 대해 살펴보려고 한다. Java API를 이용한 해결 방안 - synchronized - 메서드나 코드 블록에 synchronized 예약어를 사용하여 락을 걺 - 하나의 프로세스에서만 락이 가능하고 여러 프로세스 또는 앱에서 접근 시 사용 불가 - 따라서, 여러 애플리케이션 혹은 서버가 데이터에 접근해야 하는 실무 환경에서는 거의 사용되지 않음 Data.. 2024. 4. 6. 스프링 국제화(Internationalization, I18N) 스프링 웹 MVC는 국제화를 단순화하도록 지원해 준다. 국제화를 위해서는 LocaleResolver, MessageSource, LocaleChangeInterceptor의 빈 등록이 필요하다. LocaleResolver는 사용자의 로케일을 얻는다. AcceptHeaderLocaleResolver - 요청의 Accept-Language 헤더 상의 로케일을 반환한다. SessionLocaleResolver - 세션에 저장된 로케일을 반환한다. FixedLocaleResolver - 고정된 기본 로케일을 반환한다. MessageSource는 현재 로케일에 맞는 메시지를 가져온다. ResourceBundleMessageSource - 특정 빈 이름으로 자원 번들에 접근하는 MessageSource 구현체 Re.. 2024. 4. 2. Querydsl 주요 내용 정리 Querydsl을 사용하면 컴파일 시점에 SQL 오류를 잡을 수 있음 Q클래스(타입)를 직접 생성(new)하거나 이미 생성돼 있는 객체를 사용하면 됨 cf) Q클래스는 메타모델 클래스라고도 함. 이는 Criteria API나 Querydsl에서 보편적으로 쓰이는 용어. 보통은 생성된 객체 사용하고, 같은 테이블을 조인해야 하는 경우에만 직접 작성 사용 방법(단건 조회) JPAQueryFactory queryFactory; // 직접 생성하거나 스프링을 통해 주입 queryFactory.select(Q타입).from(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFactory.selectFrom(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFa.. 2024. 3. 27. 리눅스 백업 관련 명령어 tar 파일을 모아 아카이브 파일 생성(archive)하거나 아카이브 파일에서 원래 파일 추출(extract) tar -cvf archive.tar directory # 전체 백업 tar -xvf archive.tar # 전체 백업 복원 tar -g snapshot -cvf archive0.tar directory # 증분 백업(최초 백업, 레벨 0 백업) tar -g snapshot -cvf archive1.tar directory # 증분 백업 # 증분 백업 복원. 백업한 순서대로 복원 tar -xvf archive0.tar tar -xvf archive1.tar cpio 아카이브로 파일 복사하거나 아카이브에서 파일을 추출. 하나의 파일로 아카이브하기 위한 목적의 tar와 다르게 하나의 디렉터리를 다.. 2024. 3. 25. 이전 1 2 3 4 5 6 7 8 ··· 70 다음 728x90