분류 전체보기 95

[Google Cloud] DB연결과 배포 - 스프링과 GCP 연동하기 3탄

드디어 스프링 프로젝트 배포의 마지막 단계이다. 1탄에서 생성한 mySQL DB인스턴스를 기억할 것이다. ↓ 이전 글(1탄) [Google Cloud] 구글 클라우드 인스턴스 생성하기 - 스프링과 GCP 연동하기 1탄 구글 클라우드는 Google Cloud Platform (GCP) 라고도 불리우는 구글에서 운영하는 클라우드 서비스이다. 기존 컨테이너를 Google의 관리형 컨테이너 서비스로 이동하기 위한 도구이며 구글 검색과 유튜 hansjour.tistory.com ↓ 이전 글(2탄) [Google Cloud] 구글 클라우드 셋팅 및 접속 - 스프링과 GCP 연동하기 2탄 저번 시간에는 로컬 컴퓨터에서 MySQL용 Cloud SQL에 연결하기 위한 전초과정이었다면 본격적으로 스프링 프로젝트를 배포하기..

Server/클라우드 2024.02.18

[Google Cloud] 구글 클라우드 셋팅 및 접속 - 스프링과 GCP 연동하기 2탄

저번 시간에는 로컬 컴퓨터에서 MySQL용 Cloud SQL에 연결하기 위한 전초과정이었다면 본격적으로 스프링 프로젝트를 배포하기 위해 Google Cloud의 VM을 만들어보자. ↓ 이전 글 [Google Cloud] 구글 클라우드 인스턴스 생성하기 - 스프링과 GCP 연동하기 1탄 구글 클라우드는 Google Cloud Platform (GCP) 라고도 불리우는 구글에서 운영하는 클라우드 서비스이다. 기존 컨테이너를 Google의 관리형 컨테이너 서비스로 이동하기 위한 도구이며 구글 검색과 유튜 hansjour.tistory.com Google Cloud 콘솔 - VM 만들기 1. VM 인스턴스 만들기 e2-micro로 일단 설정해두면 나중에 업그레이드가 가능하다. 부팅디스크-변경 위와 같이 설정하고..

Server/클라우드 2024.02.17

[Google Cloud] 구글 클라우드 인스턴스 생성하기 - 스프링과 GCP 연동하기 1탄

구글 클라우드는 Google Cloud Platform (GCP) 라고도 불리우는 구글에서 운영하는 클라우드 서비스이다. 기존 컨테이너를 Google의 관리형 컨테이너 서비스로 이동하기 위한 도구이며 구글 검색과 유튜브와 같은 서비스를 위해서 구글이 내부적으로 사용하는 클라우드 컴퓨팅 서비스이다. 해당 서비스들은 동일한 Infra 위에서 호스팅을 제공받는 형태라고 볼 수 있다. 클라우드는 aws만 경험해봤는데,구글에서 진행하는 GDSC에 참여하며 구글 클라우드 서비스를 무료로 이용할 수 있는 기회가 생겨서프로젝트의 서버를 GCP와 연동해보기로 했다! 참고로 infa를 논리적 형태로 제공하는 클라우드 기능은 동일하고GCP가 제공하는 서비스는 다음과 같다. 서비스명 내용 컴퓨팅 및 호스팅 (Computing..

Server/클라우드 2024.02.16

[Server] 사용자 인증 방식 종류 / 쿠키,세션,토큰 방식 / 각 특징과 차이점 (feat. JWT토큰)

우리는 보통 서비스에 접근할 때, 사용자 인증을 거친다. 사전에 허가받은 사용자일 수도 있고, 허가받지 않은 사용자일 수도 있다. 시스템의 보안을 위해 접근하는 이가 누군지, 확인하고 인증을 하는 과정을 거치는 것은 필수적이다. 클라이언트 인증을 위한 방식은 여러가지가 있다. 1. 사용자 인증 방식의 종류와 특징 쿠키(Cookie) -클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각 -서버가 클라이언트에게 쿠키를 발급하면, 클라이언트는 이를 저장 -나중에 해당 서버에 요청을 보낼 때마다 쿠키를 함께 전송한다. ≫ 주로 세션 식별자 또는 사용자 설정과 같은 클라이언트 정보를 저장하는 데 사용한다. 웹 사이트에서 로그인하면 클라이언트에게 쿠키가 발급되어 로그인 세션을 유지하는 것을 예로 들 수 있음. 반..

Server 2024.02.08

[Java] 자바 상속 구현 / extends, implements의 차이? / 개념과 사용법 정리

자바는 객체 지향 언어다. 객체 지향 언어 중 가장 큰 특징은 인데, 이러한 상속을 구현하는 형태를 간단히 정리하고자 한다. (객체 지향 언어에 대한 개념은 아래 글을 참고하면 좋다.) [JAVA] 객체 지향 언어(Object-Oriented Programming, OOP) 란? 자바는 객체 지향 언어(Object-Oriented Programming, OOP)이다. 객체 지향 언어(Object-Oriented Programming, OOP) 란? 현실 세계의 개체를 프로그램으로 표현하고 이러한 개체 간의 상호 작용을 통해 소프트웨어 hansjour.tistory.com 1. extends와 implements 개념 설명 자바에서 클래스와 인터페이스 간의 관계를 나타내는 방식이다. 1) extends :..

[JAVA] 객체 지향 언어(Object-Oriented Programming, OOP) 란?

자바는 객체 지향 언어(Object-Oriented Programming, OOP)이다. 객체 지향 언어(Object-Oriented Programming, OOP) 란? 현실 세계의 개체를 프로그램으로 표현하고 이러한 개체 간의 상호 작용을 통해 소프트웨어를 개발하는 방법론. 클래스를 사용하여 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶고, 이를 통해 모듈화되고 재사용 가능한 소프트웨어를 구축할 수 있다. -절차적 프로그래밍 방식 => 순서대로만 처리하고 결과를 내는 방식 -구조적 프로그래밍 방식 => 프로그램을 함수단위로 나누고 함수끼리 호출하는 방식으로, 큰 문제를 해결하기 위해 문제를 작은 단위들로 나누어 해결한다. (Top-Down 방식) -객체 지향 프로그래밍 방식 => 구조적 ..

[Spring] 첫 실행시 로그인 화면이 뜨는 경우? / Please sign in

스프링 코드를 작성하고 서버를 돌렸는데 계속해서 이런 창이 떴다. 음.. 찾아보니 Provider 가 문제다, 하는데 내 생각엔 firebase Security 쪽 문제같아서 삽질을 또 했다. 그러다가 해결 방법을 발견! main 실행 코드에 @SpringBootApplication에 다음과 같이 exclude속성을 달아주면 끝이다. @SpringBootApplication(exclude = {SecurityAutoConfiguration.class}) 정상 작동을 확인.

Backend-dev/Spring 2024.02.05

[Spring] @Autowired 사용법? 스프링 빈 의존성 주입과 @RequiredArgsConstructor

의존성(Dependency)이란? A 클래스에서 b함수를 호출하기 위해서 B함수가 필요할 때, 'A클래스는 B클래스의 의존성을 가진다' 고 한다. 스프링 빈을 등록하고 의존성 주입을 할 때 @Autowired를 쓰면 의존성 주입이 편하다. 이렇게 config 파일에서 빈을 등록해주고, 컨트롤러에서 의존성 주입을 해주려는데 밑줄이 뜨면서 사용을 추천하지 않는다고 떴다. @Autowired의 장점은 매우 편리하다는 것. 단점은 -의존성 불분명성: @Autowired를 사용하면 코드가 어디서든 해당 빈을 주입할 수 있으므로 어떤 클래스가 어떤 빈을 주입하는지 명확히 파악하기 어려움 -코드의 복잡성 증가 등이 있다. 대신 사용할 수 있는 방법으로는 -생성자 주입(Constructor Injection) -Set..

Backend-dev/Spring 2024.02.05

[Spring] Firebase 초기 설정 / 스프링 프로젝트에 admin SDK 추가하기

이번에 새로 들어가게 된 프로젝트에서 소셜 로그인 인증 방식을 사용하기로 했다. 스프링부트 OAuth2 보안 설정을 직접 해주는 방법도 있지만, 다양한 소셜 로그인을 진행해야하므로 Firebase를 이용해보자. 먼저 Firebase 콘솔(https://firebase.google.com/?hl=ko) 에 접속해서 Firebase | Google’s Mobile and Web App Development Platform 개발자가 사용자가 좋아할 만한 앱과 게임을 빌드하도록 지원하는 Google의 모바일 및 웹 앱 개발 플랫폼인 Firebase에 대해 알아보세요. firebase.google.com 구글 로그인 후, 프로젝트 생성-Authentication Sign-in-method-새 제공업체 추가 본인은..

Backend-dev/Spring 2024.02.04

[Linux] 리눅스 서버에 패스워드없이 접속하기 / rsa 암호키 방식 / ssh-keygen

들어가기 전, 필자는 이 게시글을 작성하기 위해 며칠을 삽질을 했다.. 혹시 리눅스 서버를 구성할 때 VMWare를 사용해서 구성한 사람이라면 글의 마지막 쯤을 먼저 읽기를 추천한다. 지난 번 윈도우의 커맨드 환경에서 리눅스 서버에 접속하는 방법으로 SSH 프로토콜을 소개했는데, 접속할 때마다 패스워드를 입력해야 하는 번거로움이 있었다. 또 보안에 취약하고 주기적 변경해야 하는 단점이 있다. ssh-keygen은 SSH 접속을 위한 인증 키를 생성, 관리 및 변환한다. 공개 및 개인 키 쌍을 생성하는 형태로, 쉽게 말해 생성하고 서버에 넘겨주면 서버와 클라이언트가 공유하는 한 쌍의 보안키로 이후 원격 시스템에 안전하고 편리하게 로그인하고 인증할 수 있다는 것이다. 우선, 방법은 간단하다. 커맨드 창에서 ..

Server/Linux 2024.02.03