Back-end
-
Spring-Cloud-Config서버Back-end/Spring 2021. 12. 17. 22:42
문제 무중단 배포를 하려고 하면 로드 밸런서 하나에 서버가 최소 2개 이상은 필요로합니다. 그렇다면 저희는 서버를 4개 운영하고 있습니다. 하나하나 설정파일을 Git Pull해서 서버중단 후 배포해야할까요? 물론 이러한 불편함은 감수할 수 있지만 큰 문제점이 있습니다. 바로 코드와 설정 파일이 서로 의존성을 가지고 있어 설정파일 내용을 바꾸려고 하면 무조건 서버를 끄고 다시 실행해야하는 불편함이 있습니다. 아래 대표적인 예시를 들겠습니다. @Value("${username}") pritvate String username; 위의 @Value어노테이션은 환경설정 파일의 값을 정해놓고 읽어오는 변수입니다. 만약 서버의 admin권한을 가지려면 위의 필드에 값이 꼭 들어가야하는 경우 이름을 계속 필요할 때 바..
-
API (4) - Url Shortener + 42Ouath APIBack-end/나만의 API 2021. 8. 29. 18:37
안녕하세요. 이번에는 Shortner과 42Ouath를 합쳐서 Url을 관리하는 API를 만들어봤습니다. 물론 2개는 이미 만들어봐서 합치면 되는 프로젝트였습니다. 최종적으로 1달 정도 프로젝트를 진행한 것을 정리해보겠습니다. 주요 기능 ※ 42로그인 했을 경우 42계정에 맞는 URL을 서버에서 관리해줍니다. 추가적으로 URL접근 횟수도 기록해주는 기능을 추가했습니다. ※ 로그인 하지 않을 경우는 추가적인 기능은 제공하지 않지만 여러 URL을 생성할 수 있습니다. DB TABLE구성 ID HashValue OriginUrl Name Count BigInteger String String String Integer Project구성 URL을 맵핑해주는 controller JPA Entity역할을 하는 do..
-
Spring(6) - Mock, MockitoBack-end/Spring 2021. 8. 25. 17:02
이번 포스팅은 Short Url API 프로젝트 도중 CI를 이용하려고 테스트 코드를 짜던 중 DB에 접근하고 설정해줘야하는것이 까다로웠습니다. 그래서 이러한 데이터들을 코드에서 바로 지정해 쉽게 테스트를 구성 할 수 없을까? 라는 생각이 들었습니다. 그 때 눈에 들어온 방법이 "Mockito"입니다. Mockito는 Mock을 Java Mock객체를 이용한 테스트를 편하게 해주는 라이브러리입니다. 그럼 자세히 살펴보겠습니다. Mock이란? Mock은 Object입니다. 테스트를 수행 할 경우 "가짜"모듈을 생성하여 테스트의 효율성을 높이는 데사용되는 객체입니다. 그럼 왜 이런 걸 사용할까요? 예를 들어 DB에서 멤버를 꺼내오는 작업이 있다고 합시다. 근데 여기서 DB에서 조회기능을 수행, DB에 있는 ..
-
Java - Serialize(직렬화)Back-end/Java 2021. 8. 24. 09:22
이번 포스팅은 직렬화에 대한 이야기를 해보려고 합니다. 일단 이 부분이 왜 필요하다고 느꼈냐면 Java는 JVM위에서 작동합니다. 그러나 JVM에서 작동하던 객체를 다른 환경으로 옮길려면 어떻게 옮길까요? 컴퓨터는 저희가 코드를 짜듯이 보내면 알 수 없을 것입니다. 그래서 직렬화라는 기법을 이용하여 데이터를 주고 받을 수 있습니다. ❓ 왜 직렬화를 할까? 직렬화는 우리가 휴대전화로 통화를 한다고 생각하면 됩니다. 그때 목소리를 전기적인 신호로 바꿔 상대방에게 전달하고 그것을 받은 상대방은 그것을 해석해 주인에게 전달합니다. 직렬화는 정보를 자유롭게 옮길 수 있다는 큰 장점이 있습니다. 그리고 우리는 데이터를 값 형식 데이터와 참조 형식 데이터로 나눕니다. 참조 형식은 주소값(0x...)을 참조하는데 이러..