전체 글 109

[Linux/Docker] Docker는 왜 사용할까?

Docker, 컨테이너화 기술의 모든 것Docker는 컨테이너화 기술을 제공해 애플리케이션과 그 의존성을 효율적으로 관리하고 배포하는 데 도움을 주는 플랫폼이다. Docker는 애플리케이션과 그 의존성을 패키징하고 배포하는 데 사용되는 오픈 소스 플랫폼이다. 컨테이너를 사용해 소프트웨어를 격리하고 애플리케이션이 어느 환경에서나 일관되게 실행되도록 보장한다.  컨테이너 (Containor) 란?컨테이너는 애플리케이션과 의존성 등을 함께 패키징해 독립적으로 실행할 수 있는 실행 환경을 제공한다.컨테이너는 호스트 운영 체제의 커널을 공유하면서도, 애플리케이션이 필요로 하는 모든 요소를 포함하고 있어 일관된 실행 환경을 제공한다.  Docker의 장점- 이식성애플리케이션을 컨테이너에 패키징하면 어떤 환경에서도 ..

[SpringBoot] QueryDSL에 대해 알아보고 사용해보자

QueryDSL정적 타입을 이용해 SQL과 같은 쿼리를 코드로 작성할 수 있게 하는 프레임워크이다.자바 애플리케이션에서 타입 안전한 쿼리를 작성할 수 있도록 도와주며 SQL, JPQL, MongoDB 쿼리 등 다양한 쿼리 언어에 대해 타입 안정성을 제공해, 컴파일 타임에 쿼리의 오류를 잡을 수 있다. - 타입 안전한 쿼리QueryDSL은 컴파일 타임에 쿼리의 오류를 검출할 수 있게 해준다. SQL, JPQL, MongoDB 등 다양한 쿼리 언어를 사용해 타입 안전한 쿼리를 작성할 수 있는 방법을 제공한다. 쿼리의 구문 오류가 필드 오류를 코드 작성 시점에서 발견할 수 있기 때문에 런타임 오류를 줄일 수 있다. - Q 클래스QueryDSL은 Entity에 대한 Q 클래스를 생성한다.Q 클래스는 Entity..

Backend/SpringBoot 2024.08.22

[SpringBoot] JUnit을 사용해 테스트 코드를 작성해보자

JUnit을 이용한 테스트 코드 작성JUnit 생명 주기 (Life Cycle) 코드 작성을 통한 어노테이션 동작 확인@Test : 테스트 코드를 포함한 메서드 정의@BeforeAll : 테스트를 시작하기 전에 호출되는 메서드 정의@BeforeEach : 각 테스트 메서드가 실행되기 전 동작하는 메서드 정의@AfterAll : 테스트를 종료하면서 호출되는 메서드 정의@AfterEach : 각 테스트 메서드가 종료되면서 호출되는 메서드 정의 Spring Data JPA 활용하기JPQLJPA Query Language, JPA에서 사용할 수 있는 쿼리를 말한다. - JPQL 쿼리의 기본 구조SELECT p FROM Product p WHERE p.number = ?1;Product : 엔티티 타입p.numb..

Backend/SpringBoot 2024.08.22

[SpringBoot] MariaDB 데이터베이스를 연동해보자

MariaDB 다운로드하기https://mariadb.org/download/?t=mariadb&p=mariadb&r=11.3.2&os=windows&cpu=x86_64&pkg=msi&mirror=blendbyte Download MariaDB Server - MariaDB.orgREST API Release Schedule Reporting Bugs … Continue reading "Download MariaDB Server"mariadb.org → root 비밀번호 설정 후 [Use UTF8 as default server’s character set] 체크 박스 체크→ 기존에 설치했던 MySQL이 포트번호 3306을 쓰고 있어서 발생한 에러 메시지→ 3307로 수정 후 Install MariaDB..

Backend/SpringBoot 2024.08.22

[SpringBoot] 로깅 라이브러리 Logback을 이용해 로그를 확인해보자

로깅(Logging) 애플리케이션이 동작하는 동안 시스템의 상태나 동작 정보를 시간 순으로 기록하는 것디버깅이나 개발 이후 발생한 문제 해결 시 원인 분석할 때 필요한 기능 - resource 하위에 logback xml 파일 업로드 - Logback 설정 후 refresh - Talend API Tester에서 해당 controller로 GET 요청 - IntelliJ에서 로그 확인 - 해당 프로젝트가 있는 경로에서 log 파일로도 확인 가능

Backend/SpringBoot 2024.08.22

[SpringBoot] 다양한 방법으로 POST API를 생성해보자

GET API에서는 URL 경로나 파라미터에 변수를 넣어 요청을 보낸다.POST API에서는 저장하고자하는 리소스나 값을 HTTP 바디에 담아 서버에 전달한다. POST 메서드 구현을 위해 새로운 Controller 클래스를 생성해놓았다.  @RequestMapping을 이용한 POST 메서드 구현→ 브라우저에서 주소를 입력하는 것은 GET 방식이므로 POST API 요청시 다음과 같은 405 에러 발생 - Talend API Tester로 POST 요청 확인하기    @RequestBody를 이용한 POST 메서드 구현일반적으로 POST 형식의 요청은 클라이언트가 서버에 리소스를 저장하는 데 사용한다HTTP Body에 리소스를 담아서 POST 요청JSON 형식으로 값을 주고 받는다 (key:value의..

Backend/SpringBoot 2024.08.22

[SpringBoot] 다양한 방법으로 GET API를 생성해보자

@RequestMapping을 이용한 GET 메서드 구현 - New Spring Boot Project 생성 - 주소창에 입력해서 get 요청 확인 - Talend API Tester로 get 요청 확인  @PathVariable을 이용한 GET 메서드 구현URL 자체에 값을 담아 GET 메서드를 요청하는 방법이다.데이터를 1가지만 전달할 수 있다.   @RequeatParam을 이용한 GET 메서드 구현쿼리 형식으로 GET 메서드를 요청한다.URL에서 ?를 기준으로 {키}={값} 형태로 요청을 전송한다.@RequestVariable과 달리 데이터를 1개가 아닌 여러 개 전송할 수 있다.   DTO 객체를 이용한 GET 메서드 구현DTO 패키지 및 클래스를 생성한다.Lombok 라이브러리를 이용해 Get..

Backend/SpringBoot 2024.08.22

[SpringBoot] Spring 공식 사이트에서 프로젝트 생성하고 웹 사이트에 Hello World 출력해보자

https://start.spring.io/ 인텔리제이 (IntelliJ) 무료 버전은 프로젝트를 외부에서 생성해줘야 한다. (ㅠㅠ)Spring initializr를 이용해 프로젝트 기본 설정과 의존성 설정을 할 수 있고, 파일을 다운로드 받아 압축을 풀어준 뒤 인텔리제이에서 열어주어야 한다.  Controller 패키지와 Controller 클래스 생성하기Controller 패키지를 생성한 다음 Controller 클래스를 생성했다./hello라는 URL에 Request mapping을 해 localhost:8080/hello로 접속하면 "hello world"가 출력되도록 해보았다. 화면에서 문자열을 바로 보여줄 수 있는 RestController 어노테이션을 사용했다.   - HTML 태그를 이용해..

Backend/SpringBoot 2024.08.22