It's going to be one day 🍀

안녕하세요! 매일 매일 공부하려고 노력하는 백엔드 개발자 지망생의 공부 흔적입니다.

Back-End 58

[Docker] 가상화

가상화란? 하나의 컴퓨터를 마치 여러 개인 것처럼 쪼개서 사용하는 것 ex) 하나의 운영체제에 Docker를 이용하여 2개의 앱을 실행시킨 것을 표현. 각각의 앱은 컨테이너라는 가상 공간에서 서로의 영역을 침범하지 않고 독립적으로 실행중임. 개발자가 Docker를 사용하는 이유는? - 내가 만든 가상환경을 공유할 수 있음. 본인이 개발자이고 docker container에서 A라는 앱을 개발하는 중이었을 때 내가 만든 A 앱을 누군가에게 공유하려면? -> 컨테이너는 '이미지'라는 것으로 저장할 수 있는데 쉽게 설명하자면 사진을 찍는 것과 비슷한 개념임. 지금까지 내가 개발한 결과물을 사진찍듯이 이미지로 저장해두면 누군가가 사용할 수 있음. 이렇게 docker를 사용하면 환경(ex. 운영체제)에 구애받지 ..

Back-End/Docker 2024.04.15

[DBMS] 데이터 모델링

개념적 모델링 비즈니스 요구 사항을 파악하고, 이를 데이터 모델로 표현하는 단계. 논리적 모델링 개념적 모델을 기반으로 데이터의 구조와 관계를 구체화하는 단계. 1. 각 테이블의 필드 정보 2. 테이블 간의 관계 (1:1, 1:N, N:M) 위의 예시에서 member와 order는 1:N 관계. 한 명의 회원이 여러 개의 주문을 할 수 있다는 의미. member와 order 테이블 양쪽에 모두 member_id 필드가 존재하고 두 테이블의 관계는 member_id라는 key로 맺어져 있음을 알 수 있음. order와 item은 1:1 관계. 하나의 상품만 주문이 가능하다는 의미. item과 order 테이블 양쪽에 item_id 필드가 존재하고 두 테이블은 item_id 필드로 관계가 맺어짐을 알 수 있..

Back-End/DBMS 2024.03.22

[Spring] 테스트 코드 개념

HTTP 통신에서 쿠키/세션을 활용하는 이유 - HTTP 통신은 한번 연결했다가 끊어지면 저장된 내용이 사라짐(connectionless, stateless). 이것을 보완하기 위해 쿠키 또는 세션을 사용함. 인증에 사용되는 정보 - 쿠키 : 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일 -> 브라우저가 종료되어도 인증이 유지된다는 특징이 있음. - 세션 : https://interconnection.tistory.com/74 쿠키와 세션 개념 노션 페이지(아래 내용과 동일) 개요 쿠키와 세션은 개발자 말고도 인터넷 사용자라면 누구나 많이 들어본 단어입니다. 하지만 개념에 대해서는 많은 사람들이 헷갈려 하기에 쉽고 간단하게 정 interconnection.tistory.com..

Back-End/Spring 2024.03.20

[Spring] 스프링 시큐리티 블로그 만들기

스프링 시큐리티 스프링 시큐리티(Spring security)는 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링의 하위 프레임워크임. 인증, 권한 부여, 접근 제어, 암호화, 세션관리 등 다양한 보안 기능을 제공함. 인증(Authentication) : 사용자의 신원을 확인하는 과정 인가(Authorization) : 사이트의 특정 부분에 접근할 수 있는지 권한을 확인하여 접근을 제어하는 과정 스프링 시큐리티를 사용하면 보안 관련 옵션을 제공받을 수 있고 어노테이션 설정만으로 CSRF 공격, 세션고정 공격 등 개발자가 보안 관련 개발을 해야 하는 부담을 크게 줄여준다. - CSRF 공격 : 사용자의 권한을 가지고 특정 동작을 수행하도록 유도하는 공격 - 세션 고정 공격 : 사용자의..

Back-End/Spring 2024.03.19

[Spring] 필터와 인터셉터

필터와 인터셉터의 흐름 클라이언트의 요청이 처리되는 순서 : HTTP 요청 → 필터 → 인터셉터 → Controller → 인터셉터 → 필터 → 응답 -> 클라이언트의 요청을 필터가 먼저 처리하고 인터셉터가 그 다음에 처리함을 알 수 있음. 필터 스프링의 Dispatcher Servlet에 요청이 전달되기 전/후에 실행됨. WAS(서블릿 컨테이너)에서 실행되므로 스프링의 범위 밖에서 처리가 된다는 특징이 있음. 필터를 사용하기 위해서는 Filter 인터페이스를 구현해야함. public interface Filter { public default void init(FilterConfig filterConfig) throws ServletException {} public void doFilter(Servl..

Back-End/Spring 2024.03.18

[AWS] 클라우드 서버 사용/배포해보기

클라우드 서버란? 인터넷을 통해 서버 / 스토리지 / 데이터베이스 / 네트워크 / 소프트웨어 / 모니터링 등의 컴퓨팅 서비스를 제공하는 것 AWS란? 아마존에서 제공해주는 (Amazon Web Services) 클라우드 서비스 - 다양한 IT 기업들이 AWS를 활용하여 서버 운영을 함. - AWS를 활용해서 서비스 전반적인 인프라 구성을 AWS에 맡길 수 있음. 클라우드의 형태 Infrastructure as a Service (laaS) : 물리적 하드웨어만 구성된 컴퓨터 구입. - OS설치, 인터넷 이용환경 구성, 게임 프로그램 구입 및 설치 등은 본인이 직접 해야 함 - ex) AWS의 EC2, S3 등 Platform as a Service (PaaS) : OS 및 기본적인 인터넷 통신이 가능하도..

Back-End/AWS 2024.03.14

[Spring] Thymeleaf를 이용해서 블로그 화면 구성하기

DispatcherServlet의 처리 과정 1. HTTP 요청이 들어오면, 2. HandlerMapping을 통해 적합한 컨트롤러와 메소드를 찾고, 3. 컨트롤러로 위임할 핸들러 어댑터를 찾아서 실행함. 4. 핸들러 어댑터가 컨트롤러로 요청을 위임하고, 5. 컨트롤러에는 -> service -> repositry ... 개발자가 구현한 로직에 대한 결과를 모델(ModelAndView)로 가져옴. 6. View 정보가 있을 경우, DispatcherServlet이 적절한 VeiwResolver를 찾아 호출함. 7. ViewResolver는 View를 찾아서 반환해줌. 8. 해당 View는 전달받은 model값으로 화면 랜더링을 하고, 9. HTTP 응답을 (HTML로) 반환함. @Controller @R..

Back-End/Spring 2024.03.13

[Spring] JPA로 CRUD 블로그 만들기 실습 정리

오늘은 JPA로 CRUD를 진행하며 블로그 만들기 실습을 진행했다. 수요일부터 비슷한 내용을 계속 반복하니까 드디어 비로소 좀 이해가 된 것 같다. 아직 완벽하게 이해하진 못했지만, 계속 복습하면 완벽하게 익힐 수 있을 거라구 생각한다.. 1단계 : 프로젝트 새로 생성하기 (의존성 추가하기) 먼저 새로운 프로젝트를 생성했다. 화면에 보이는 의존성들을 추가해주었다. 2단계 : 엔티티 구성하기 JPA로 쿼리를 작성하고 데이터베이스와 연결해주었다. create table if not exists article ( id BIGINT AUTO_INCREMENT primary key, title varchar(255) not null, content varchar(255) not null ); INSERT INTO..

Back-End/Spring 2024.03.12

[Spring] API와 REST API/MyBatis 블로그 만들기 실습 정리

API : (Application Programming Interface) : 프로그램간에 상호작용하기 위한 매개체 API는 클라이언트의 요청을 서버에 잘 전달하고, 서버의 결과물을 클라이언트에게 잘 돌려주는 역할을 한다, -> HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 하기 위한 인터페이스 REST API : 이해하기 쉬운 URL로 설계를 한 API 장점) - URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다. - 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리된다. - HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다. 단점) - GET, POST와 같은 방식의 개수에 제한이 있다. REST API를 사용하는 방법 규칙1 : URL에는 동사..

Back-End/Spring 2024.03.11