본문 바로가기

All23

CORS, CSRF CORS Cross Origin Resource Sharing - 웹페이지의 리소스가 다른 도메인(다른 출처)의 요청(공유)에 대한 허용/비허용 정책 출처(Origin) Protocol Host Path Query String Fragment 브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. cross-origin 요청을 하려면 서버의 동의가 필요하다. 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절한다. 이런 메커니즘은 HTTP-header를 이용해서 가능한 것인데 이것을 CORS라고 한다. cross-origin (다음 중 한가지라도 다른 경우를 뜻한다.) 프로토콜 ex) http vs https 도메인 ex) domain.com .. 2024. 3. 4.
<div>, <span>, <p>, id, class, className 그룹화 요소 division : 분할하다 요소는 블록 레벨 요소이며, 인라인 요소와 텍스트를 포함하고 블록 레벨 요소를 포함할 수 있다. 블록 레벨 요소의 그룹화를 위해 사용한다. div는 전체적인 레이아웃을 잡을 때 사용한다. span : 폭, 너비 요소는 인라인 요소이며 인라인 요소와 텍스트를 포함하지만 블록 레벨 요소를 포함할 수 없다. 인라인 요소나 텍스트의 그룹화를 위해 사용한다. span은 텍스트 스타일 등 특정 부분에 스타일을 지정할 때 사용한다. 와 의 차이점 div와 div 사이에는 줄 바꿈이 생기고, span과 span 사이에는 줄 바꿈이 생기지 않는다. paragraph : 단락, 절 한 개의 가로 공간(Block)을 만드는 태그이다. 자체적으로 margin값을 가지고 있다. 속성 i.. 2024. 3. 3.
비즈니스 로직(Buisness Logic) 스프링부트 블로그 개발 프로젝트를 진행하면서 비즈니스 로직을 Controller와 Service 중 어디에 작성해야 할지 고민이 되었다. 그래서 구글링을 하면서 알게 된 것과 내 생각을 적어본다. 비즈니스 로직이란? 어떤 프로그램에서 request의 처리나 특정한 기능 수행을 위해 데이터를 처리하는 실질적인 로직을 뜻한다. 쉽게 말해, 사용자의 요구사항을 해결하기 위한 실질적인 코드이다. 실제 MVC 패턴에서는 비즈니스 로직이 Service Layer로 제한되어 담겨있고 실질적인 데이터 처리는 모두 Service Layer에서 일어난다. 기본 웹 어플리케이션 계층 구조 Controller : 웹 MVC의 컨트롤러 역할 Service : 핵심 비즈니스 로직 구현 Repository : DB에 접근, 도메인.. 2024. 2. 29.
RequiredArgsConstructor @RequiredArgsConstructor // RequiredArgsConstructor는 final(필수 필드,값)에 대해서 생성자 만드는 역할 public class AuthServiceImplement implements AuthService { private final UserRepository userRepository; } @RequiredArgsConstructor public class AuthServiceImplement implements AuthService { // implement란? - 인터페이스의 구현체 // 필드를 통한 의존성 주입 (인스턴스를 만드는 것이 아닌 외부에서 의존성 주입) @Autowired(Bean으로 등록되어 있는 것을 자동으로 주입) private Use.. 2024. 2. 28.
Java 클래스 Integer 클래스 정수를 활용하여 수행 가능한 다양한 메서드 및 상수 제공 int num1 = 10, num2 = 20; // 여러 값을 받았을 때 큰 값 추출 Integer.max() // 2진수 추출 Integer.toBinaryString() // 8진수 추출 Integer.toOctalString() // 16진수 추출 Interger.toHexString() Character 클래스 문자 데이터에 대한 다양한 처리를 위한 상수 및 메서드 제공 char ch = 'A'; // isXXX()메서드 : 특정 대상인지 여부 판별 // 대문자 여부 Character.isUpperCase(ch) // 대문자로 변환 Character.toUpperCase(ch) // 소문자 여부 Character.isL.. 2024. 2. 27.
GitHub 잔디 누락 해결 방법 원인 다양한 원인이 있겠지만 본인은 데스크탑에서 주로 작업을 하다가 노트북으로 작업을 하니 VSC에 등록된 Local 환경 email이 GitHub email과 달라서 잔디가 안 심어졌다... 작업 전 꼭 읽어보기!! # 여러 개의 파일을 한 번에 수정하고 싶어도 꼭 한 개씩 작업하는 것을 추천합니다. (2-2부터 2-7까지 13번 반복했습니다.😫) # 항상 급하더라도 침착함 유지..! 해결방법 (git bash로 작업했습니다.) 1. Local 환경 name, email 설정 확인 및 변경 # 1-1 git 설정 리스트 확인 git config --list # 1-2 user.name과 user.email을 GitHub에 등록된 정보와 동일하게 변경 git config --global user.name.. 2024. 2. 22.
Changes, Staged Changes, Discard Changes Visual Studio Code(VSC)에서 작업 후 깃허브로 Git add, Git Commit, Git Push를 해야 할 때가 있다. 파일 작업 후에 VSC의 기능인 Source Control에서 변경된(작업한)파일을 아래와 같이 한눈에 볼 수 있다. Changes에 있는 파일을 그대로 놔둔 후 Commit Message를 적고 Commit을 하면 Changes에 있는 모든 파일이 Commit 된다. 하지만! 파일마다 Commit Message를 다르게 적고 싶을 때가 있다. 그때 필요한 기능이 바로 Stage Changes이다. Commit 하고 싶은 Changes에 있는 파일에 커서를 갖다 대면 + 모양이 보인다. 해당 파일의 +를 누르면 해당 파일이 Staged Changes로 이동한다. 원.. 2024. 2. 19.
DDL, DML, DCL, TCL DDL(Data Definition Language) - 데이터 정의어 테이블과 같은 데이터의 구조를 정의하는 언어로써 데이터의 전체의 골격을 결정하고 데이터베이스, 테이블 등을 생성하는 역할을 한다. - SCHEMA, DOMAIN, TABLE, VIEW, INDEX를 정의하거나 변경 또는 삭제할 때 사용한다. - 데이터베이스 관리자나 설계자가 사용한다. 종류 역할 CREATE 데이터베이스, 테이블 등 생성 ALTER 테이블 수정 DROP 데이터베이스, 테이블 삭제 TRUNCATE 테이블 초기화 RENAME 데이터베이스 객체 이름 변경 DML(Data Manipulation Language) - 데이터 조작어 정의된 데이터베이스에 입력된 데이터를 수정하거나 삭제하는 등의 역할을 한다. - SELECT :.. 2024. 2. 17.