본문 바로가기

Computer Science/Spring8

Spring DB 연결관련 오류 해결 ( MariaDB ) * MariaDB 권한 부여- 새로운 Spring 프로젝트를 생성하고 DB를 연결할때마다 진행해줘야하는 과정이다.- MAC 기준으로 설치되어있는 터미널 어플리케이션을 실행해서 진행합시다.- InteliJ든 다른 IDE를 사용해도 IDE 내에서 생성하는것이 아니라 CLI ( Command Line Interface ) 에서 계정 생성, 권한 부여 후에IDE 에서 Connection 해주는 것이다.- 간단하게 계정생성 과정과 권한 부여 Command 를 정리해 보겠다. 참고로 MariaDB 설치는 별도로 진행해야 한다. 1) MariaDB 계정 생성CREATE USER '아이디'@'%' IDENTIFIED BY '비밀번호';CREATE USER '아이디'@'localhost' IDENTIFIED BY '비밀.. 2024. 12. 21.
Spring 에서 o.s.b.d.LoggingFailureAnalysisReporter 에러 처리하기 결론 : yml 파일에 포트 번호를 추가해주면 해결된다. spring: application: name: BoardTestserver: port: 80 ++ 1024번 이상부터는 아무번호로 지정해줘도 상관없다. 다만 보통 80번을 많이 사용한다고 한다. 2024. 12. 21.
WebApplication 이해 웹 어플리케이션 : 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 프로그램. 웹 서버, 웹 어플리케이션 서버모든 것이 HTTP - 과거 초기의 웹 어플리케이션은 Client - Server 컴퓨팅 환경에서의 각 응용 소프트웨어마다 UI를 가지고 있었으며, 사용자 PC마다 따로 설치했어야 했다.- 현재는 HTTP 라는 통일된 프로토콜을 사용하지만, 과거에는 회사마다 독자적인 통신 프로토콜을 사용했었기 때문이다.- 대개 독자적인 규격을 가지는 것은 회사입장에서 매우 큰 이득이지만, Web 에서 만큼은 매우 큰 비용을 초래하여 생산성이 떨어진다는 문제가 발생함.- HTTP 프로토콜의 정립으로 인해 웹 어플리케이션을 제공하는 기업의 유지 비용이 줄었다. * 웹 서버 (Web Server)- H.. 2024. 12. 18.
Spring과 Spring boot * Spring의 특징 1. DI (Dipendency Injection) : Spring 프레임워크에 의존성을 주입하면서 객체 간 결합을 느슨하게 하여 코드의 재사용성 증가 및, 단위 테스트 용이하다.2. IOC (Inversion Of Control) : 의존성 주입의 한 형태로, 객체의 생성 및 생명 주기를 제어하는 책임을 개발자가 아닌 프레임워크에 위임한흔 것을 말한다. 개발자는 객체의 구체적인 구현에 의존하지 않고 객체의 인터페이스에만 의존할 수 있다. 이는 코드의 재사용성과 유지보수성을 향상 시킬 수 있다. - Spring은 IoC를 구현하는 다양한 방법을 제공하는게 가장 일반적인 방법은 컨테이너에 객체를 등록하고 컨테이너에서 객체를 주입하는 방법이다. 컨테이너는 객체의 생명주기를 관리하고, .. 2024. 12. 18.
Spring 트래픽 처리 방법 * intro - 추후에 트래픽 문제를 해결하기 위해서 SpringBoot를 사용했을때 처리하는 방법을 알아두면 추후에 유용할것 같아서 미리 작성한다. 1. 로드밸런싱 (Load Balancing)- 로드밸런싱은 여러 서버 ( 혹은 인스턴스 ) 로 트래픽을 균등하게 배분하여 특정 서버에 과도한 부하가 몰리지 않도록 하는 핵심적인 기법.- Spring Cloud Gateway 나 Zuul( Netflix OSS) 같은 API Gateway를 사용해 트래픽을 마이크로서비스 아키텍처에 유연하게 분배.- 컨테이너 오케스트레이션 도구 사용시 ReplicaSet 및 HPA 를 통해 가용 인스턴스 자동 스케일링. ( 어려움 ) 스케일링 - 수평 스케일링 : 애플리케이션 인스턴스 늘려서 요청 처리 능력 증대. - 수직.. 2024. 12. 10.
동기 방식으로 외부 서비스를 호출할 때 외부 서비스 장애가 나면 어떻게 조치할 수 있을까. * intro - 외부 서비스 장애로 인해 응답이 오래 걸린다고 했을 때 외부 API 응답으로 대기하는 자원들이 운영 서버 내부에 쌓이면 성능에 악영향을 줌. 이를 해결하기 위한 가장 기본적인 방법은 time out을 설정하는 것. * HTTP 커넥션 풀이란?Clientd와 Server간에 지속적으로 유지할 수 있는 HTTP 연결들을 재사용하기 위한 메커니즘 또는 관리 방식입니다. 일반적으로 애플리케이션이 서버와 통신할 때, 매 요청마다 새로운 TCP 연결을 맺고 HTTP 요청을 전송한 뒤, 응답을 받고나서 연결을 종료하는 과정을 반복하면 다음과 같은 비효율이 발생.  1. 연결 설정 오버헤드:TCP 핸드셰이크(3-way handshake), TLS 핸드셰이크(HTTPS의 경우) 등 연결을 맺는 과정은 .. 2024. 12. 10.