• git repo가 아닌 디렉토리를 remote repo와 병합하면서 git repo로 만들기

    리모트에 있는 git 서버에 repogitory가 있는데 이것과 git 리포지토리가 아닌 디렉토리를 병합해야 하는 경우에 어떻게 하는지 알아본다. 예를들면 이런 경우이다. A가 프로젝트를 만들고 틀을 짠뒤에 전체 소스를 하드카피를 해서 B에게 전달한다. 서로 각자 개발을 진행하다가 형상 관리가 필요해서 A가 본인 소스를 git repository로 만들고 remote에도 bare repository를 만들어서 upstream으로 사용한다....


  • Spring-boot가 아닌 프로젝트를 Spring-boot-test로 테스트하기

    Spring을 사용하는 라이브러리를 구현하고 spring-boot-test 로 테스트하고자 한다. 문제는 스프링부트 테스트를 만들어도 정상적으로 DI를 받을 수가 없다. 아래와 같이 컴포넌트를 만들고 테스트를 한번 만들어보자. package cothe.springboottestfornormalproject.sample; import org.springframework.stereotype.Component; @Component public class User { private String name; public User() { this.name = "default"; } public String getName() { return name; }...


  • Spring Security로 Security 서비스 구축하기 4

    계층구조 Role 우리가 정의한 Role은 부모 Role을 가지질 수 있는 계층적인 구조이다. 따라서 부모가 가지고 있는 Permission 이 그대로 상속되고, 권한 체크할 때 부모가 가진 Permission도 모두 검증해봐야 한다. 그러기 전에 먼저, JPA의 JpaRepository interface가 계층적인 구조에서 잘 동작하는지 검증해보자. RoleRepositoryTest.java package cothe.security.core.repositories; @RunWith(SpringRunner.class) @SpringBootTest public class RoleRepositoryTest { @Autowired...


  • Cloud Native Java 따라하기 5(설정서버에 보안적용)

    git 저장소에 HTTP 기본 인증과 같은 보안 처리가 되어 있으면 서버에 인증 정보가 있어야 접근이 가능하다. spring.cloud.config.server.git.username spring.cloud.config.server.git.passwaord 마찬가지로 서버 자체에 보안설정이 되어 있으면 클라이언트에 인증 정보가 있어야 접근이 가능하다. 서버 보안을 설정하는 가장 간단한 방법은 설정 서버에 스프링 시큐리티를 의존 관계로 추가하고, 클라이언트에서 인증 정보와 함께 요청하는 것이다. spring.security.user.name...


  • Cloud Native Java 따라하기 4(스프링 클라우드 설정 클라이언트)

    스프링 클라우드 설정 클라이언트 스프링 클라우드 기반 서비스는 실행할 때 src/main/resources/bootstrap.properties(또는 yml) 파일을 찾는다. 애플리케이션 이름은 spring.application.name 속성에 지정한다. bootstrap 파일은 application.properties 파일보다 먼저 로딩된다. 클라우드 설정 서버는 클라이언트의 spring.application.name 에 설정된 이름으로 설정파일을 찾는다. 여기서는 config-client 으로 설정했다. 설정서버에 저장된 application.properties 파일은 모든 설정 클라이언트에서 참조할 수 있다. 클라이언트...