Backend

Backend/Spring

[Springboot] SpringBoot Security에서 CORS 전체 허용

전체 코드 ## SecurityConfig.java @Override protected void configure(HttpSecurity http) throws Exception { http .cors() .configurationSource(corsConfigurationSource()) .and() .sessionManagement() ... .csrf() .disable() .formLogin() .disable() .httpBasic() .disable() .exceptionHandling() ... .authorizeRequests() ... .oauth2Login() ... .successHandler(oAuth2AuthenticationSuccessHandler) .failureHandler..

Backend/Database

[DB] SQL문/정규화,비정규화,반정규화

DML (Data Manipulation Language) 데이터 조작어 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정, 삭제하는 역할의 언어. 데이터베이스 사용자가 질의어를 통해 저장된 데이터를 실질적으로 처리하는데 사용. DML은 타겟 테이블을 메모리 버퍼 위에 올려두고 변경을 수행하기 때문에 실시간으로 테이블에 반영되지 않아 Commit 명령어를 통해 트랜잭션을 종료해야 변경 사항이 테이블에 반영된다. 따라서 DML에 의한 데이터 변동을 Commit하지 않았다면 Rollback으로 다시 되돌릴 수 있다. select 테이블에서 조건에 맞는 튜플 검색 select 컬럼 from 테이블 where 조건 order by 컬럼 ASE/DESC limit 개수 insert 새로운 튜플 삽입 inser..

Backend/JPA

ORM이란? JPA, Hibernate란?

ORM (Object Relation Mapping) 객체 관계 매핑. 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체는 객체대로, DB는 DB대로 설계하면 ORM이 알아서 매핑해준다. JPA: 기술 명세. API. Hibernate: 자바 언어를 위한 객체 관계 매핑 프레임워크. jpa를 구현한 실체 구현체라고 보면 된다. JPA (Java Persistence API) 자바 플랫폼 SE와 자바 플랫폼 EE를 사용하는 응용프로그램에서 관계형 데이터베이스의 관리를 표현하는 자바 API이다. 기존에 EJB에서 제공되던 엔터티 빈(Entity Bean)을 대체하는 기술이다. 구성 요소 JPA는 아래의 세 가지 영역으로 구성된다 javax.persist..

Backend/Docker

[Kubernetes] Kubernetes (K8s)란?

컨테이너 오케스트레이션 컨테이너의 배포, 관리, 확장, 네트워킹을 자동화하는 것. 재설계할 필요 없이 각기 다른 환경 전반에 동일한 애플리케이션을 배포하는 데에도 도움이 된다. Kubernetes 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템으로, 오픈소스 플랫폼이다. 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 쉽게 확장할 수 있다. 쿠버네티스는 또한 크고, 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다. 기본 개념 쿠버네티스에서 가장 중요한 것은 desired state 라는 개념이다. 쉽게 말해 사용자가 원하는 서비스, 네트워크 상태를 의미 한다. 얼마나 많은 컨..

Backend/Docker

Container와 VM 비교

컨테이너와 가상머신 비교 요약 가상 머신(VM)은 서버 하드웨어를 가상화(또는 직접 관리할 필요성을 제거)하는 반면, 컨테이너는 서버의 운영 체제를 가상화한다. Docker는 컨테이너를 위한 운영 체제(또는 런타임)이다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공한다. 가상머신 Host: 가상 시스템 호스트 서버이며 처리 능력, 메모리, 디스크 및 네트워크 I/O 등과 같은 컴퓨팅 리소스를 제공하는 기본 하드웨어. GuestOS: 운영 체제 및 애플리케이션 소프트웨어의 완전히 별개의 독립적 인스턴스. 호스트 VM에 상주하고 해당 서버의 컴퓨팅 리소스에서 공유하는 가상 워크로드. Hypervisor:..

Backend/Docker

Docker란

Docker 란? 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트. Docker는 컨테이너를 위한 운영 체제(또는 런타임)이다. 컨테이너를 실행하려는 각 서버에 Docker Engine이 설치되어 컨테이너를 구축, 시작 또는 중단하는 데 사용할 수 있는 간단한 명령 세트를 제공한다. 구조 도커는 클라이언트-서버 아키텍처를 사용한다. Docker 클라이언트는 Docker 데몬과 REST API를 사용하여 UNIX 소켓 또는 네트워크 인터페이스를 통해 통신한다. Docker 데몬은 Docker 컨테이너를 빌드, 실행 및 배포하는 무거운 작업을 수행한다. 도커 데몬 Docker API 요청을 수신하고 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Dock..

Backend/Database

mysql, mariaDb 계정 생성 및 권한 부여

mysql, mariaDB에 모두 동일하게 동작하는 명령어 입니다. 왜 동일하게 동작할까? 계정 생성 create user '[userid]'@'[host]' identified by '[password]'; userid에는 사용하고자 하는 계정의 id를 적어주면 된다. host는 db에 접근하기 위해 이 계정을 사용할 수 있는 호스트 정보를 적어주면 된다. 내 로컬 호스트에서만 사용하고 싶다면 @'localhost', 모든 호스트에서 접근을 허용하려면 @'%'로 적어준다. 생성된 계정 확인 show databases; use mysql; select host, user, password from user; 맨 아래 행에 방금 만든 계정을 확인할 수 있다. 계정 삭제 drop user '[userid]'..

Backend/Database

[mySQL] mysqldump, mysql dump 파일 생성

1. 프롬프트를 연다 2. mysql.exe가 설치되어 있는 경로로 이동 (나의 경우는 C:\Program Files\MySQL\MySQL Workbench 8.0 이었음) 3. mysqldump -uroot -p 테이블명 > 파일명.sql 친다. 만약 액세스가 거부되었다는 문구가 나온다면? 덤프 파일을 해당 경로에 저장할 수 없다는 뜻이다. 그래서 mysqldump -uroot -p 테이블명 > c:\sqldump\파일명.sql 처럼 파일 저장 경로를 다른 곳으로 바꾸고 진행하면 된다. 비밀번호까지 치고 나면 해당 경로에 덤프파일이 생성되어 있을 것이다.

Backend/Spring

[Spring] CORS, 프레임워크와 라이브러리의 차이점, Builder 패턴

질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/blob/main/spring/README.md [Spring] CORS (Cross-origin resource sharing, 교차 출처 리소스 공유) https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-CORS-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%F0%9F%91%8F 웹 브라우저에서 특정한 도메인 간(cross-domain) 요청(특히 Ajax 요청)은 같은 출처에서만 리소스를 공유할 수 있다는 규칙을 가진 동일-출처 보안 정책(Same-Origin Policy)에 의해 기본적..

Backend/Spring

[Spring] Spring에서 Swagger2 사용하기

현재 나온 Swagger는 3.0.0까지 있지만 3.0.0은 어떻게 하는지 모르겠어서 2.6.1 기준으로 작성합니다.... 부트 말고 그냥 spring framework 기준입니다. [springboot 버전->] (참고) 프로젝트 구성입니다 Swagger에 Book 관련된 컨트롤러를 등록해 보겠습니다. 설정 추가 1. pom.xml 프로퍼티 추가 안하고 그냥 {jackson-databind-version} 부분에 바로 2.13.2.2 적어도 됩니다. 더보기 2.13.2.2 io.springfox springfox-swagger2 2.6.1 io.springfox springfox-swagger-ui 2.6.1 2. servlet-context.xml 프로젝트 구성을 보면서 경로를 잘 설정해 줍니다! 더..

얌얌념념
'Backend' 카테고리의 글 목록 (2 Page)