Anything 30

Spring 로그인 수동 테스트시 회원가입 반복 작업 최소화

Spring boot 프로젝트에서 로그인 기능을 구현할 때, H2와 같은 메모리 DB를 사용할 경우 특성상 서버가 종료되고 다시 실행되면 DB 내에 회원 정보가 초기화된다. 이 때, 서버를 종료하고 다시 수동 테스트를 할 때마다 회원가입을 통해 DB에 회원정보를 넣는 것을 반복해야하는 문제가 발생한다. Spring boot 공식 문서를 확인해보면, Initialize a Database Using Hibernate라는 부분이 있다. 문서 하위에, In addition, a file named import.sql in the root of the classpath is executed on startup if Hibernate creates the schema from scratch. 클래스패스의 루트 위..

Anything 2021.07.06

[AWS] Windows에서 AWS Linux SSH 연결

맥OS나 Linux OS의 경우 SSH 클라이언트를 통해 접근할 수 있다. Windows는 기본으로 제공하지 않기 때문에 SSH client를 다운받거나, PuTTy를 이용해 접근할 수 있다. 1. 생성된 인스턴스 정보에서 퍼블릭 DNS 확인 먼저 인스턴스를 우클릭하여 [연결] 클릭 인스턴스 연결에서 SSH 클라이언트를 이용한 방법을 본다. 항목을 살펴보면 1. SSH 클라이언트는 PuTTy를 사용한다. 2. 프라이빗 키 파일은 확장자명을 pem으로 가진 파일을 인스턴스 생성 시 다운받을 수 있다. (관리 주의) 3. 퍼블릭 DNS를 제공한다. (나중에 접속할 때 필요하다.) 2. PuTTygen을 통해 프라이빗 키 생성 AWS에서 pem 확장자를 가진 프라이빗 키는 PuTTy에서 바로 사용할 수 없다...

Anything 2021.06.17

[Anything] GCP에서 웹 서비스 배포

개발된 웹 애플리케이션을 GCP나 AWS에서 배포할 때 github를 통해 관리되고 있는 프로젝트를 가져와 빌드 후 배포한다. 1. github에서 프로젝트 가져오기 git clone {github_repos}.git 2. gradle 프로젝트 빌드 프로젝트 디렉터리 내에 접근하고, 먼저 gradlew의 권한을 변경한다. (실행 권한 부여) cd {project_directory} chmod 755 gradlew 프로젝트 빌드를 시도한다. ./gradlew build 3. jar 파일을 통해 서비스 배포 프로젝트 디렉터리 내에 build/libs에 jar파일 저장되어있다. java -jar {파일}.jar 위 명령어를 통해 서비스 배포. SSH를 나오면 중단되는데 아래의 명령어로 실행하면 백그라운드로 실..

Anything 2021.06.16

[Java] Windows에서 Gradle 프로젝트 생성하기

Gradle 설치 Gradle 홈페이지에서 원하는 버전을 다운받는다. Gradle | Releases Find binaries and reference documentation for current and past versions of Gradle. gradle.org binary-only를 받아 원하는 디렉터리에 압축해제해 다운로드 받았다. Gradle을 설치할 디렉터리에 압축해제한다. {Gradle 설치 경로}\gradle-{version}\bin 을 환경변수에 추가한다. 환경변수 편집은 [고급 시스템 설정]-[환경변수] 이후 명령 프롬프트 (CMD) 에서 gradle -v 을 통해 설치를 확인한다. Gradle 프로젝트 생성 프로젝트를 생성할 디렉터리를 만들고, gradle init 를 사용한다. ..

Anything 2021.05.29

[Network] 네트워크

네트워크? 구성요소 측면 여러 호스트들, 종단 시스템(end system)들이 통신 링크(케이블), 패킷 스위치(라우터, 스위치) 등을 통하여 연결되어 이루어진 네트워크. 종단 시스템은 ISP (Internet Service Provider)를 통해서 인터넷에 접속한다. 인터넷의 구성요소 (종단 시스템, 패킷 스위치 등)은 인터넷에서 정보 송수신을 제어하는 여러 프로토콜(protocol, 규약)을 수행한다. 서비스 측면 애플리케이션에 서비스를 제공하는 인프라 구조. 프로토콜이란 무엇인가? 통신하는 둘 이상의 원격 개체가 포함된 인터넷에서의 모든 활동은 프로토콜이 제어한다. 프로토콜은 교환되는 메시지 포맷과 순서를 정의하고, 뿐만 아니라 메시지의 송수신과 다른 이벤트에 따른 행동들을 정의한다. 네트워크 가..

Anything 2021.05.13

[Javascript] Ajax

Ajax는 Asynchronous Javascript And Xml의 약자로, 비동기적 자바스크립트와 XML을 말한다. HTTP는 기본적으로 클라이언트의 Request와 서버의 Response 이후 연결을 끊도록 설계되었다. 내용을 갱신하려면, Request와 Response를 통해 모든 내용을 다시 가져오게 된다. 이는 자원 낭비, 비효율적이다. Ajax는 전체가 아닌 필요한 부분만 갱신하도록 XMLHttpRequest 객체를 통해 요청한다. JSON이나 XML 형태로 최소한의 필요한 데이터만 받아서 갱신하게 된다. 훨씬 효율적이다. Javascript는 웹 브라우저에서 동작하는 언어로 서버와 통신하는 기능이 없었지만, Ajax를 통해 가능하다. 그대로 사용하려면 코드가 길어지는데, jQuery를 사용..

Anything 2021.04.20

[DB] 커넥션 풀 (Connection Pool)

DB 커넥션 풀이란 서버와 DB서버 간의 통신 사이에 Pool이라는 공간에 Connection 객체를 두어 관리하는 것. DB 커넥션 풀이 없을 때 JDBC에서 서버와 DB 서버가 통신할 때 순서는 다음과 같다. 1. DriverManager를 통해 Connection 객체를 생성 2. Connection 객체로부터 쿼리를 수행하기 위한 PreparedStatement 객체 생성 3. executeQuery를 수행해 ResultSet 객체를 받아서 데이터를 처리 4. 처리가 완료되면 사용된 리소스 close 하여 반환 DB 서버에 대한 물리적 접근이 많아진다. (사용되는 객체들의 생성과 반환의 반복) 비용과 시간의 문제, 네트워크 부담의 문제가 생긴다. DB 커넥션 풀을 사용하면 이러한 문제를 DB Co..

Anything 2021.04.15

[Basic] RESTful API

REST (Representational State Transfer) 아키텍처의 제약조건을 준수하는 API 웹 장점을 최대한 활용할 수 있는 아키텍쳐로 REST를 발표했다. 구성 자원 (Resource) - URI 행위 (Verb) - HTTP Method 표현 (Representations) 특징 1) Uniform : URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍쳐 스타일 2) Stateless : 작업을 위한 상태 정보를 따로 저장하고 관리하지 않는다. 세션이나 쿠키를 별도로 저장하거나 관리하지 않음. API 서버는 단순히 요청만 처리한다. 3) Cacheable : HTTP 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로, 캐싱 기능을 사용..

Anything 2021.04.12
반응형