본문 바로가기

분류 전체보기

(111)
[Git] Git Stash 알아보기 🤔 문제 상황 branch 단위로 코드를 작성하고 있는데 다른 브랜치에서 작성했던 코드가 에러가 났다. 처음에는 일일이 작성하던 로직을 우선 커밋하고 문제 되는 코드를 해결하고, 다시 commit 했던 브랜치에 코드를 작성했었다. 그리고 작업하던 브랜치로 돌아와서 push 하고 merge 하려고 하였으나 충돌이 발생했다. 너무 불편했다. 심지어 작업하던 브랜치는 commit 하지 않으면 다른 브랜치로 이동도 불가했다. 불편함을 해소하고자 찾아보니 GitStash라는 명령어가 있길래 글을 적어본다. 🔍 Git Stash? branch 단위로 작업하다가 아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있는 명령어라고 한다. 그 말은 즉, 임시 저장 해놓았다가 나중에 다시 꺼내와서 작업할 수 있는 명령어..
[Git] .gitignore 특정 파일 or 폴더 무시하기 메일을 보는데 메일에 찝찝한 내용의 메일이 왔다..!? ‘GitGuardian은 귀하의 GitHub 계정 내에 노출된 다음 SMTP 자격 증명을 감지했습니다.’라는 메일이 한통 와 있었다. 앞 전에도 오픈 API 사용하면서 비슷한 메일을 받은 적이 있었는데 이번에 해결하고 기억하고자 글을 써놓아야겠다. 해결 방법은 여러 가지가 있었지만 나는 우선 해결한 방식으로 글을 써보려고 한다. .gitignore 파일에 무시할 파일 or 폴더를 작성해 주자. 예시) - 파일 무시 application-security.yml test.txt - 전체 무시 *.text *.yml - 폴더 무시 test/ 아래와 같은 순서로 터미널에 입력하면 된다. 1. git add . 2. git commit -m "ignore ..
[Spring Boot] 스웨거(Swagger) 알아보기 ⚙️ 개발 환경 IDE: IntelliJ JDK: 11 Spring: SpringBoot 2.7.1 + Gradle 🔎 스웨거(Swagger) 란? RESTful API 문서를 자동으로 생성하고 관리하기 위한 도구이다. 프로젝트에 대해서 프론트엔드 개발자와 문서를 통하여 스펙을 명확하게 전달하고 관리하는 데 사용한다. 💻 스웨거(Swagger) 적용 1. 스웨거를 사용하기 위해서는 build.gradle 의존성을 추가해 주어야 한다. dependencies { implementation 'io.springfox:springfox-swagger-ui:3.0.0' implementation 'io.springfox:springfox-boot-starter:3.0.0' } 2. Config 만들어주기 pack..
[Spring Boot] 스프링의 핵심 가이드 (개발에 앞서 알면 좋은 기초 지식) 🔍 서버 간 통신 어떤 포털 사이트를 하나의 서비스 단위로 개발한다고 가정하면, 개발에 보수적인 입장을 취할 수밖에 없고, 서비스 자체의 규모도 커지기 때문에 서비스를 구동하는 데 걸리는 시간도 길어진다. 이 같은 문제를 해결하기 위해 나온 것이 마이크로서비스 아키텍처(MSA)이다. 마이크로서비스 아키텍처는 서비스 규모를 작게 나누어 구성한 아키텍처를 뜻한다. 서비스 기능별로 구분해서 독립적인 애플리케이션을 개발하게 되면 각 서비스 간에 통신해야 하는 경우가 발생한다. 서버 간 통신은 한 서버가 다른 서버에 통신을 요청하는 것을 의미하며, 한 대는 서버, 다른 한 대는 클라이언트가 되는 구조이다. 몇 가지 프로토콜에 의해 다양한 통신 방식을 적용할 수 있지만 가장 많이 사용되는 방식은 HTTP/HTTPS..
[Spring Boot] 스프링 부트 알아보기 🔍 Spring Boot 스프링 부트는 자바 기반의 오픈 소스 프레임워크인 스프링(Spring)을 기반으로 한, 웹 애플리케이션과 마이크로서비스를 빠르고 쉽게 개발하고 실행할 수 있도록 도와주는 도구입니다. 스프링 프레임워크는 기능이 강력하고 확장성이 뛰어난 프레임워크이지만, 초기에 설정과 환경 구축이 복잡하다는 단점이 있었습니다. 이러한 단점을 보완하기 위해 스프링 프레임워크를 기반으로 하는 스프링 부트가 등장하게 되었다. 💡 SpringFramwork 핵심 📌 제어 역전 (IoC : Inversion of Control) 스프링에서는 프로그램의 흐름을 프레임워크가 주도한다. 객체의 생성부터 생명주기 관리를 컨테이너가 도맡아서 한다. 즉, 제어권이 컨테이너로 넘어가게 되고, 이것을 제어권의 흐름이 바뀌..
[Java] JDBC(Java DataBase Connectivity) 알아보기 🔍 JDBC 란? Java DataBase Connectivity 약자로, 자바 프로그램에서 데이터베이스에 접속하고 SQL 문을 실행하기 위한 API(응용 프로그래밍 인터페이스)이다. JDBC를 사용하면 다양한 데이터베이스 관리 시스템(DBMS)에 접속하여 데이터베이스와 상호작용할 수 있습니다. JDBC는 데이터베이스에 대한 연결, SQL 문 실행, 결과 처리 등 다양한 기능을 제공하여 자바 애플리케이션과 데이터베이스 간의 효율적인 통신을 도와준다. 🔍 JDBC의 구조 JDBC를 이용해서 DB에 연결하기까지의 흐름은 다음과 같다. 사용자가 자바 애플리케이션에서 JDBC API를 이용해 DB에 접근하고자 한다. 하지만 JDBC API 자체는 인터페이스이므로 실제로 메서드들을 사용하기 위해서는 구현체가 필요..
[Spring Boot] @RequestParam & @PathVariable 알아보기 🔍 @RequestParam 이란? @RequestParam은 Spring MVC에서 사용되는 어노테이션으로, HTTP 요청에서 파라미터 값을 가져오는 데 사용된다. 주로 URL 쿼리 파라미터(parameter)를 읽어오는 데에 사용된다. 클라이언트가 입력한 데이터들이 URL을 통해서 전달된다. @RequestParam()에 4가지의 파라미터를 가지고 있다. ❓ 파라미터 종류 1. defaultValue - 값이 설정되지 않을 때 기본으로 설정할 값 2. name - URL에서 바인딩할 요청 파라미터의 이름 3. value - name의 별칭 4. required - 필수 값인지 설정하는 값 💡 URL 예시 GET /api/books? category=thriller&author=John+Doe 💻 코드..
[JPA] ORM (Object-Relational Mapping) 알아보기 🔍 ORM 이란? 객체 관계 매핑(Object-Relational Mapping)의 약어이다. 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터를 자동으로 연결해 주는 기술이다. 🤔 ORM 사용 이유 객체 지향 프로그래밍은 클래스를 사용하고, 데이터베이스는 테이블을 사용하여 객체 모델과 데이터 베이스 간에 불일치가 발생할 수 있다. 이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치의 문제를 해결해 준다. 📌 객체-관계 간의 불일치 1. 세분성 (Granularity) - 경우에 따라서 데이터베이스에 있는 테이블 수보다 더 많은 클래스를 가진 모델이 생길 수 있다. 2. 상속성 (Inheritance) - RDBMS는 객체지향 프로그래밍 언어의 특징인 상속 개념이 ..