본문 바로가기

전체 글

(175)
[Linux] CentOS 7 Git Server 구축하기 CentOS 7에 Git을 설치해서 remote repository로 사용하는 예제를 포스팅하겠습니다. (CentOS 7이 설치되어있지 않다면 다음 링크를 참고해주세요.) 2019/12/24 - [IT/Linux] - [Linux] VMware에 CentOS 7 설치 방법 1. Git 서버 Git 설치 # yum install git # git --version git을 설치하고 버전을 확인한다. Git Directory 및 저장소 생성 mkdir -p /opt/git/project.git git init --bare /opt/git/project.git/ git directory를 생성한다. (-p 는 상위 디렉토리도 함께 생성하는 옵션) 그리고 해당 디렉토리를 git 환경으로 초기화한다. Git 계정..
[Spring Boot] Spring Security 적용하기 Spring Security 란? Spring Security는 스프링 기반의 어플리케이션 보안을 담당하는 프레임워크입니다. Spring Security를 사용하면 사용자 인증, 권한, 보안처리를 간단하지만 강력하게 구현 할 수 있습니다. Spring Boot + Hibernate + SpringSecurity + thymeleaf + mariadb를 이용해 간단한 회원 가입 및 로그인 기능을 구현해보겠습니다. pom.xml ... 2.1.9.RELEASE ... org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat provided org.springframework.boot s..
[Spring Boot] Spring Security의 동작 Spring Security 란? Spring Security는 스프링 기반의 어플리케이션 보안을 담당하는 프레임워크이다. Spring Security를 사용하면 사용자 인증, 권한, 보안처리를 간단하지만 강력하게 구현 할 수 있다. Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 동작한다. Spring Security를 이해하기 위해서는 먼저 보안관련 용어를 숙지해야 한다. 접근 주체(Principal) 보안 시스템이 작동되고 있는 애플리케이션에 접근하는 유저 인증(Authentication) 접근한 유저를 식별하고, 애플리케이션에 접근할 수 있는지 검사 인가(Authorize) 인증된 유저가 애플리케이션의 기능을 이용할 수 있는지 검사 SecurityFilterChain 일반적으로..
[Spring Boot] 선언적 트랜잭션 @Transactional 트랜잭션이란? 데이터베이스의 상태를 변경시키는 작업 또는 한번에 수행되어야하는 연산들을 의미한다. 트랜잭션 작업이 끝나면 Commit 또는 Rollback 되어야한다. 트랜잭션의 성질 원자성(Atomicity) 한 트랜잭션 내에서 실행한 작업들은 하나의 단위로 처리합니다 즉, 모두 성공 또는 모두 실패 일관성(Consistency) 트랜잭션은 일관성 있는 데이터베이스 상태를 유지한다. 격리성(Isolation) 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않도록 격리해야한다. 영속성(Durability) 트랜잭션을 성공적으로 처리되면 결과가 항상 저장되어야한다. @Transactional 스프링에서 지원하는 선언적 트랜잭션이다.. xml 또는 Javaconfig를 통해 설정 할 수 있다. Spring..
[Excel] 두 열을 비교해 같으면 특정 데이터를 삽입하는 함수 A열의 Name과 E열의 Name값을 비교해서 같으면 B열에 F열에 있는 Score값을 채우는 예제입니다 일일이 수동으로 할 수 있지만, 행이 수백개라면 수동으로 하기에는 한계가 있겠죠? 이때 사용하는 함수가 바로 INDEX & MATCH 함수입니다. =INDEX(필요한 열 범위, MATCH(비교 열, 비교 열 범위, 0),1) MATCH 함수의 3번째 인자 값 옵션 비교 열과 비교 열 범위가 0 : 일치 1 : 보다작음 -1 : 보다큼 열 범위를 표현하려면 ":" 명령어를 사용해야합니다. 예를 들어서 "B:B" 는 B열의 전체를 의미합니다. =INDEX(F:F, MATCH(A2, E:E, 0), 1) "F열을 필요한 값으로 지정하고, A2열과 E열 범위 검색 중 같으면 커서가 위치한 곳에 F값을 넣어주..
[JPA] 영속성 컨텍스트 목표 JPA를 활용하기 위해 가장 중요한 개념인 영속성 컨텍스트의 기능 이해하기 Entity의 생명 주기 이해하기 영속성 컨텍스트(Persistent Context) 영속성 컨텍스트란 엔티티를 관리하고 영속화시키는 환경을 의미합니다. 영속성 컨텍스트가 지원하는 기능은 다음과 같습니다. 지연로딩 동일성 보장 1차 캐시 변경 감지 트랜잭션을 지원하는 쓰기 지연 Entity Manager와 Entity Manager Factory Entity Manager는 엔티티를 조회하거나 등록, 수정, 삭제 시키기 위해 DB에 접근할 수 있는 객체입니다. EntityManagerFactory는 Entity Manager를 생성합니다. 객체 생성 비용이 상당히 크기 때문에 한번만 생성하여 애플리케이션 전체에서 사용합니다...
[Spring Boot] Hibernate Open Session In View Spring Boot에서 Hibernate 테스트를 하고 있던 도중 예기치못한 상황을 마주했습니다. 영속성이 끝났다고 생각되는 시점에서 프록시 객체를 조회하면 LazyInitializationException - No Session에러가 발생해야 하는데 Select Query가 실행되는 것이었습니다. 웹 검색을 통해 다음과 같은 사실을 알았습니다. Open Session In View Transaction이 종료된 후에도 Controller의 Session이 close되지 않았기 때문에, 영속 객체는 Persistence 상태를 유지할 수 있으며, Session이 열려있고 Persistence 상태이기 때문에 프록시 객체에 대한 Lazy Loading을 수행할 수 있게 됩니다. 출처: https://ki..
[데이터베이스] ERD 표기법 설명 1. ERD(Entity Relationship Diagram)란? 개체 속성과 개체 간 관계를 도표로 표현한 것을 의미한다. 2. ERD 관계 표현법 1) 일대 일 (식별 관계) 주민과 상세 주소 간 관계를 표현한 ERD 이다. 상세 주소 테이블은 person_id를 기본키로 사용하고 있고, person_id를 통해 person 테이블을 참조 하고 있다. 한명의 주민은 한개의 상세 주소를 가질 수 있다. 상세 주소는 주민 id가 없다면 존재 할 수 없다. (식별 관계) 주민 (주인 테이블) , 상세 주소 (자식 테이블) 부모테이블의 id를 저장하는 테이블은 자식 테이블이 되고, 데이터를 제공하는 테이블은 부모 테이블이 된다. 2) 일대 다 (참조 필수) 부서와 회사원 간 관계를 표현한 ERD이다. 회사..

반응형