전체 글
-
DB 버전관리 (Migration)내일배움캠프 Spring 심화 1기/TIL 2024. 8. 5. 19:40
DB 버전관리관계형 데이터베이스에 대한 변경 및 버전 제어를 의미합니다. 스키마 마이그레이션은 해당 DB의 스키마를 최신 버전으로 업데이트 하거나 이전 버전으로 되돌릴 필요가 있을 때마다 DB에서 수행됩니다. 버전관리를 해야하는 이유대부분의 프로젝트는 local, dev, prod 등 다수의 환경을 가지고 있습니다. 그러다보니 DB의 수정이 발생할 경우 각각의 환경에 수정된 DB가 반영이 되지 않을 경우 문제가 발생할 수 있습니다. 그래서 한 프로젝트의 변경된 DB 이력을 확인하고 모든 환경에서 동일한 DB환경을 구성하기 위해 DB 버전관리가 필요합니다. 또한 협업시에 작업자간 동일한 DB환경을 구성하기 어려워 동일한 DB환경을 구성하기 위해 필요합니다.DB 스키마에 문제가 발생했을때 변경된 DB 이력이..
-
도커(Docker)내일배움캠프 Spring 심화 1기/TIL 2024. 8. 2. 18:13
도커도커는 어플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플렛폼입니다. 도커는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. 도커를 사용하면 환경에 구애받지 않고 어플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다. 도커를 사용해야 하는 이유도커를 사용하면 코드를 전달이 쉬워지고, 어플리케이션 운영을 표준화하고, 리소스 사용률을 높여 비용을 절감할 수 있습니다. 도커를 사용하면 어디서나 안정적으로 실행할 수 있는 단일 객체를 확보하게 됩니다. 또한 도커는 가상화에서 사실상 표준의 위치해 있어 사용할 수 있는..
-
Spring Cloud내일배움캠프 Spring 심화 1기/TIL 2024. 8. 1. 21:46
Spring Cloud스프링 클라우드는 마이크로서비스의 개발, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있도록 지원하는 스프링부트 기반의 프레임워크입니다.스프링 클라우드는 분산 시스템에서 필요한 다양한 기능들을 추상화하여 제공하고 있으며, 마이크로서비스 아키텍처를 구현할 때 유용하게 사용됩니다. 특징구성 관리스프링 클라우드는 어플리케이션의 구성을 중앙에서 관리할 수 있는 기능을 제공합니다. 이는 개발, 테스트, 프로덕션 등 다양한 환경에서 어플리케이션 설정을 일관되게 유지할 수 있게 해주며, 구성 변경 사항을 빠르게 적용할 수 있도록 돕습니다. 이를 통해 개발자는 설정 변경으로 인한 문제를 최소화하고, 더 집중적으로 어플리케이션 개발에 착수할 수 있습니다.서비스 발견MSA에서 서비스간의 통신은 중..
-
MSA내일배움캠프 Spring 심화 1기/TIL 2024. 7. 31. 17:20
MSA(MicroService Architecture)마이크로서비스는 특정 작업을 수행하는 작고 독립적인 서비스입니다. 소프트웨어 아키텍처의 맥락에서 사용 될 때 마이크로서비스는 독립적으로 배포 및 확장할 수 있는 서비스 입니다. 특징비즈니스 역량을 중심으로 구성됩니다.독립적으로 배치될 수 있습니다.다양한 프로그래밍 언어로 작성될 수 있으며, 다양한 데이터 저장소를 사용할 수 있습니다.일반적으로 이러한 서비스는 규모가 작으며 대부분 서비스의 코드는 1000줄 미만입니다.작동 방식마이크로서비스 아키텍처는 관심사 분리의 원칙에 기반합니다. 즉, 각 마이크로서비스는 단일 책임을 가져야 하며 자체 포함되어야 합니다. 이를 통해 각 서비스를 다른 서비스와 독립적으로 개발, 배포 및 확장할 수 있습니다. 각 마이크..
-
스레드 제어카테고리 없음 2022. 10. 17. 09:40
스레드 제어스레드 객체를 생성하고 start() 메소드를 호출하면 곧바로 스레드가 실행되는 것이 아니라 실행 대기 상태가 됩니다. 그래서 스레드를 실행하려면 실행 대기 상태인 스레드를 cpu가 run()메소드로 실행해야 합니다. 스레드가 실행된 상태를 실행 상태 라고 하며 실행 상태에서 run()메소드가 모두 실행되면 스레드가 멈추게 되고 이 상태를 종료 상태라고 합니다. 또한 실행 상태는 run()메소드를 실행 도중에 일시정지 상태나 실행 대기 상태로 돌아갈 수 있습니다. 일시정지 상태가 되었을 때는 바로 실행 상태로 돌아갈 수 없고 실행 대기 상태를 거쳐야만 실행 상태로 갈 수 있습니다. 스레드 상태 제어스레드의 상태를 제어하는 것을 스레드 상태 제어라고 합니다. 이를 제어하기 위한 여러가지 스레드..
-
JAVA 인터페이스카테고리 없음 2022. 10. 10. 03:05
인터페이스 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 합니다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킵니다. 그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됩니다. 인터페이스를 사용하는 이유는 개발 코드를 수정하지 않고 객체를 변경할 수 있도록 하기 위해서 사용합니다. 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있습니다. 따라서 개발 코드 측면에서는 코드 변경없이 실행 내용과 리턴값을 다양화할 수 있다는 장점을 가지게 됩니다. 클래스는 필드, 생성자, 메소드를 구성 멤버로 가지는데 비해 인터페이스는 상수 필드와 추상..
-
항해99 3주차 WIL카테고리 없음 2022. 10. 9. 23:40
이번주차는 spring boot를 사용하여 게시글 작성,조회,삭제 하는 API를 작성하는 것이 과제였습니다. 물론 과제는 학습자료와 구글링 등으로 빠르게 완성하였지만 각각의 기능과 의미, 사용법들은 아직 잘 모르는 상태였습니다. 그래서 과제를 제출하고 남은시간을 통해 spring 강의도 찾아듣고 책도 구매하여 읽다보니 어느정도는 그것들이 어떤 의미인지를 알게 되었습니다. 그러나 다음주차 과제를 위해 학습자료를 읽어보니 아직 배울게 한참 남았다는 것을 다시 느꼈습니다. 그래서 다음주차의 목표는 Spring Security와 JWT로그인 API구현 AOP 등이 뭔지 이해하고 사용할 수 있도록 하는것입니다. 다음주차도 열심히 공부하여 과제를 성공적으로 제출할 수 있도록 노력하겠습니다. 또한 이번주 항해99의 ..