https://velog.io/@tlsgks48/IT%EC%9A%A9%EC%96%B4-IT%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%97%85%EB%AC%B4-%EC%9A%A9%EC%96%B4-%EC%95%8C%EC%95%84%EB%B3%B4%E
데이터 베이스 시스템에서 데이터를 기억할 때의 최소 단위가상 기억 장치에서 가상 어드레스(virtual address) 구조를 실현하기 위해 운영 체제에 의해서 어떤 바이트 수 단위로 분할되는 가상 기억 영역컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는
'제공한다'는 뜻을 가진 'serve'에 사람이라는 뜻을 나타내는 'er'을 붙인 단어'클라이언트의 요청을 받으면 서비스, 데이터를 제공하는 컴퓨터 혹은 프로그램사용자 클라우드 서비스서비스 소프트웨어, 클라우드 환경에서 운영되는 어플리케이션개발자 클라우드 서비스운영을
참고사이트절차B의 공개키와 개인키 생성B의 공개키는 공개하고 개인키는 개인이 소유A는 B의 공개키로 메시지를 암호화B는 자신의 개인키로 메시지 복호화(B의 개인키를 모르는 제 3자는 메시지 복호 불가능)공격 유형 1\. 전사적 공격에 취약 sol. 키의 크기를 크
🎈 인프라란?데이터를 주고받기 위한 물리적 장비자체적으로 보유하고 있는 서버에 직접 설치하고 운영하는 방식하드웨어와 소프트웨어를 각각 구입하고 특정 공간에 직접 인프라 환경을 구성필요한 IT 자원만을 선택해 인터넷을 통해 ‘서비스’ 방식으로 구입해 사용하는 방식하드웨
컴퓨터의 주요 저장장치내부에 플래터(디스크)를 여러 개 두고 데이터를 저장하는 용도로 쓰임가격이 저렴하고 장기 보존이 가능넉넉한 저장공간으로 사용가능속도가 느리며 소비전력이 큼소음과 발열이 있음반도체를 이용하여 데이터를 저장하는 방식저전력으로 빠르고 소음이 없음HDD보
자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크SQL쿼리들을 한 구성파일(xml)에 구성하여 프로그램 코드와 SQL문을 분리할 수 있음데이터소스(DataSource) 기능과 트랜잭션 처리 기능을 제
builder() 함수를 통해 객체를 생성할 수 있는 빌더를 얻고,값 세팅 후 build()를 통해 빌더를 작동 시켜 객체를 생성매개변수가 많아지면 코드를 읽기 어렵고, 어떤 순서로 매개변수 넣어야하는지 헷갈림하나의 객체를 만들기 위해 메소드 여러개를 호출해야 함객체가
Optional에 대하여 Object를 리턴하는데 null일 가능성이 있다면 Optional로 래핑하는 것을 권장 매핑 함수의 적용 결과가 null인 경우 빈 Optional을 반환(메소드를 체이닝했을 때 중간에 null이 있어도 빈 Optional로 계속해서 이어나갈
@Slf4j 어노테이션 추가 후, log.error()를 통해 오류 메시지 전송
데이터의 송수신이나 처리가 실행된 후에 그 사실을 사후에 증명함으로써 사실 부인을 방지하는 보안 기술대칭형 암호화 방식신뢰할 수 있는 제3 신뢰 기관(TTP)을 통해 부인 방지 기능을 실현비대칭형 암호화 방식디지털 서명 기술을 응용public, private key를
일정 시간마다 코드를 실행시킬 수 있음스레드(sleep)을 이용하면 제대로 관리하지 못할 경우 exception이 날 수 있음Scheduled, Async 어노테이션을 추가(사용할 클래스는 bean이여야함)스케줄러를 비동기적으로 실행해 PUSH를 보장할 수 있음다음 스
객체지향에서 피해야할 것은 지나치게 큰 의존도를 만드는 것spring 초기 버전: xml파일에 Bean 명세를 적어 사용순환참조가 되는 경우 빌드과정에서는 알 수 없음final 사용 불가능set하지 않을 경우 NullPointException 발생순환참조가 되는 경우
암호화된 암호문을 복호화 할 수 있는 알고리즘을 의미대칭키(비공개키)와 비대칭키(공개키)비대칭형 암호를 이용해서 대칭형 암호의 키를 배송하고 실제 암호문은 대칭형 암호를 사용하는 경우가 많음대칭키(비공개키) 방식암복호화에 서로 동일한 키가 사용되는 암호화 방식속도가 빠
서로 다른 클래스의 값을 한번에 복사하게 도와주는 라이브러리DTO와 Entity를 변환할 때 Getter, Setter을 이용할 경우 번거롭기 때문에 사용MatchingStrategies.STANDARD(default)source와 destination 속성과 지능적으
🤣 에러나서 변경 안될 때$ git config --global --replace-all user.name "Kimdb".은 전체업로드, 이 외에는 파일명 기입
암호화, 복호화 기능을 제공대칭키 알고리즘혼돈(confusion)암호문으로부터 키를 알아낼 수 없게 하는 성질키의 비트 하나만 바꿔도 암호문 전체가 바뀌도록 하는 성질확산(diffusion)암호문으로부터 원문을 알아낼 수 없게 하는 성질원문의 비트를 하나만 바꿔도 암호
해시 함수에 문자열 입력값을 넣어서 특정한 값으로 추출하는 것A -> 해시 함수 -> AlphaB -> 해시 함수 -> BravoC -> 해시 함수 -> Cycle임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수입력값을 해싱했을 때 출력값은 일정하다는 것을
88byte(영대소문자+특수+숫자)서비스를 연계하여 서로 다른 인터넷 서비스 간에도 동일한 사용자인지 구분을 가능하게 해주는 정보CI = 주민번호 + @공식으로 지정된 본인확인 인증기관(주민번호 관리-나이스, KCB 등)에 인증을 받고 각 사이트는 CI와 DI값을 받음
각 개발자마다 설치된 서버 환경을 local 환경이라고 함ex) MySQL 등의 DB, Tomcat, Eclipse와 같은 개발 툴, 컴파일러 등개발 환경을 표준화 하는 방법은 여러가지가 있지만, 전체 개발 환경 (JDK,Eclipse,library)을 zip파일 형태
하드웨어컴퓨터의 주변 장치와 연결하기 위한 연결단 (물리적 통로)소프트웨어네트워크 서비스나 특정 프로세스를 식별하는 논리적 단위 (논리적 통로)호스트 내부적으로 프로세스가 할당받는 고유한 값NIC(Network Interface Card) 이더넷 카드 및 네트워크 어
'제공한다'는 뜻을 가진 'serve'에 사람이라는 뜻을 나타내는 'er'을 붙인 단어클라이언트의 요청을 받으면 서비스, 데이터를 제공하는 컴퓨터 혹은 프로그램사용자 클라우드 서비스서비스 소프트웨어, 클라우드 환경에서 운영되는 어플리케이션개발자 클라우드 서비스운영을 위
.sh파일로 시작과 종료를 제어shutdonw.sh 는 톰캣을 종료할 때 사용톰캣을 종료, 시작할 때 매번 /tomcat/bin으로 가서 명령을 날리지 않고서버가 재시작되어도 자동으로 톰캣이 올라올 수 있게 해줌CATALINA_HOME = 톰캣 위치를 정확하게 지정해줘
참고getter, setter가 필요하므로 Data 어노테이션으로 대체@Configuration 적용이 필요함@ConfigurationProperties의 prefix에 그룹변수명 기입PropertySource에 yml을 read할 수 있는 factory가 없기 때문에
danbi@naver.com -> danbi@gmail.com 으로 메일 발송 시naver 메일 서버를 거친 후 gmail 서버를 거쳐서 전달됨메일 프로토콜의 종류전자 메일 전송을 위한 표준 프로토콜.클라이언트트가 서버에 이메일을 전달하는데 사용된다.서버에서 이메일을
read를 통해서 불러올 데이터를 복호화write를 통해서 저장할 데이터를 암호화병렬 작업 시 여러 개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA 라이브러리각기 다른 Thread를 생성해서 작업을 처리하고, 처리가 완료되면 해당 Thread를 제거하는 작업을
참고사이트Date는 안전하지 않은 Null 처리, 불안전한 스레드 처리, 메서드의 부재 등 다양한 문제가 있음0: 값이 동일한 경우 0보다 작은 값: 호출한 Date(date1) 객체가 이전 날짜인 경우 0보다 큰 값: 이후 날짜인 경우 true: 호출한 Date
편지를 쓰고 동네에 있는 우체통에 해당 편지를 넣는다.우체통: SMTP 서버웹 상에서 메일을 주고 받기 위해 이용되는 프로토콜(규약)클라이언트 측에서 메일 서버로 메일을 보낼 때 사용클라이언트가 이메일을 보내면 바로 상대편의 컴퓨터로 메일을 송신하는 것이 아니라,중간에
참고 사이트 = tistory-AreYou준비컴퓨터는 두 가지 상태(2진수의 0과 1)만 이해하고 사용할 수 있다.대개 1은 전원 on, 0은 전원 off 상태로 표현컴퓨터에서 사용하는 가장 작은 데이터 단위데이터를 처리, 저장, 전송 할 때 사용컴퓨터는 일반적으로
프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 전송 계층으로 데이터를 전달해야 함전송 계층과 응용 프로그램 사이의 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결해줌프로토콜, IP, Port 3요소로 정의됨소켓 생성서버바인딩 (ip, port번호 설정)li
참고사이트 - velog
pwd: 현재 위치 확인배포위치: /var/lib/tomcat9/webapps권한 부여 필요$ sudo chown 계정명:계정명 폴더명 -Rhttp://ip주소:포트번호/war파일이름/fuser을 통해 pid번호 검색pid 번호를 이용해 프로세스 종료
메인 클래스에 붙어있는 @SpringBootApplication 어노테이션은 @Configuration, @EnableAutoConfiguration, @ComponentScan 3가지를 합친 것@Configuration: 해당 클래스가 설정 파일임을 알려주는 용도@E
JAVA를 사용하여 Log를 남기는 도구자바 기반의 로깅 유틸리티로 Apache에서 만든 오픈소스 라이브러리log4j의 설정은 log4j.properties / log4j.xml 로 설정Log컴퓨터가 언제, 무슨 일을, 어떻게 했는지 남겨 놓은 기록default 레벨은
쿼리문이 실행되면 아래와 같이 쿼리문에 ?가 생기며 파싱파싱된 쿼리문은 재활용(캐싱)되기 때문에 효율적변수에 작은 따옴표(')를 자동으로 붙여 쿼리가 수행됨변수 양쪽에 따옴표가 붙기 때문에 value가 아닌 곳에선 사용 불가 (SQLSyntaxErrorException
파일 내용이 아닌, 파일 자체(껍데기)를 다룸파일 스트림을 열기 전에 실제 파일에 대한 정보를 확인할 수 있고, 파일 자체를 삭제하거나 이름을 변경하는 등의 작업을 수행할 수 있음new File(File parent, String child) : 상위 주소와 파일
Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크Principal을 아이디로, Credential을 비밀번호로 사용하는 Credential 기반의 인증 방식을 사용Principal(접근 주체): 보호받는 Resource에
SSL/TLS에 가장 많이 사용되는 공개키 암호화 알고리즘소인수분해 문제에 기반하여 알고리즘이 만들어졌음암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘큰 정수의 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있음R
위 코드와 같이 Query Method에 언더바가 있는 경우 아래 코드와 같이 연관관계 매핑이 이루어져있을 수 있음JPA에서 지원하는 Query Method 자체에서 언더바가 JOIN 기능을 가지는게 아니라Like 테이블에 user_key라는 필드를 가지고 있을 경우를
공개 키 인증방식의 형식을 정의하는 표준인증서디지털 서명으로 내용 변경과 위장 행위를 검출하고, 부인을 방지할 수 있음버전(version)인증서의 형식 버전인증서를 이용하는 응용프로그램의 사용 정보시리얼 번호(serial number)사용자가 인증서를 구별하기 위한 번
원래 웹에서의 데이터는 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송되었음암호화 기반 인터넷 보안 프로토콜개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 1995년에 개발전달되는 모든 데이터를 암호화하고 특정한 유형의 사이버 공격도 차단
CertificateFactory지정된 타입의 CertificateFactory 객체를 작성해, 지정된 프로바이더를 구현 (SPI 객체)지정된 인증서 유형을 구현하는 인증서 팩토리 객체를 반환파일 읽기입력 스트림(inStream) 로 읽힌 데이터로 증명서를 생성여러 인
인증에 필요한 정보들을 암호화시킨 JSON 토큰인증(authentication) 또는 인가(authorization) 정보를 서버와 클라이언트 간에 안전하게 주고 받기 위해서 사용JSON 데이터를 Base64 URL-safe Encode 를 통해 인코딩하여 직렬화한 것
\[JAVA] jjwt library 사용방법 - JWT(Java Web Token)-밤둘레
token 같은 response가 항상 바뀌는 값은 일일히 api 별로 request 값을 수정해주기 번거롭다이 같은 경우에 response 값을 바로 변수로 저장할 수 있는 방법을 사용하는 것이 편리하다!jsonData.data의 data는 json key값을 기입하
사이트 간 요청 위조권한을 가진 유저가 스스로 시스템에 있는 정보를 탈취하거나 망가뜨리도록 조종하는 것CSRF방어의 핵심은 XSS차단 + 비정상적인 루트를 통한 CUD를 막는데 있음로그인시 auth token 값을 생성(세션에 보관)화면 단에선 해당 토큰을 빼내어 hi
변수의 타입을 변환하여 출력/저장할 때 사용AttributeConverter 를 구현엔티티의 컬럼 타입, 데이터베이스의 컬럼 타입을 입력 받음해당 컬럼에 직접 어노테이션 주기엔티티에 어노테이션 주기아래와 같은 경우에 MailTypeEnum 타입인 필드에 전부 Conve
주어진 명령어를 통해 한정적인 쿼리만 생성 가능컴파일 시 오류를 발견할 수 있음사용자가 원하는 쿼리를 자유롭게 생성할 수 있음문법 오류가 있는 경우에도 컴파일 시 오류를 잡을 수 없고 런타임 때 확인 가능개행이 포함되어 복잡한 쿼리의 경우 문법이 복잡해짐java 1.8
사전적 의미: 대신, 대리보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 할 때 중간에서 대리로 중계하는 것클라이언트가 서버를 직접 접근하지 못하기 때문에 접근 가능한 사이트를 제한할 수 있으므로 보안을 향상할 수 있음클라이언트에서 리소스를 요
Nginx란? 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server로 활용 Reverse Proxy Server로 활용하여
tomcat 오류가 발생하는 경우위 경로에서 로그 파일(catalina.out) 확인이 가능하다.위 경로로 접속한 후 하기 명령어를 실행하면 로그파일 확인이 가능하다.Navigator의 Users And Privileges -> Add Account 클릭Name과 Pa
mysql 설정 파일 열기ip address 변경기존 bind-address(127.0.0.1)을 0.0.0.0으로 변경 후 :wq로 저장 후 종료MySQL 접속기존 사용자 목록 확인사용자 계정 추가MySQL 종료 후 root 계정으로 재로그인생성한 계정에 권한 부여해
예를 들어 USER라는 대문자로 된 테이블을 만든 후,Spring에서 @Entity(name="USER")로 명시해주었으나아래와 같이 table을 찾지 못하는 문제가 발생했다.Spring에서 Hibernate 기본 설정에 의해 대소문자를 구별하지 않아 발생하는 문제며,
API 엔드포인트로 인입된 데이터를 가공 및 바인딩 할 때 사용하는 객체http body 또는 url 파라미터로 넘어오는 데이터들은, @ReqeustBody와 @RequestParam 등으로 바인딩 할 수 있지만,http 헤더, 쿠키, 세션 등으로 전달되는 데이터인 경
Log4j
비지니스 로직 등의 핵심 기능 (Core Concerns)들과 로깅, 보안 , 트랜잭션 처리 등 핵심 기능을 도와주는 부가기능 (Cross-cutting Concerns)으로 분리해서 모듈화 하는 것핵심기능, 비즈니스 로직으로만 구성되어 있음로깅, 보안 등의 기능을 하
Client로부터 들어오는 요청( HttpRequest )을 Controller의 Handler로 도달하기 전에 가로채거나Controller로 부터 보내는 응답( HttpResponse )을 가로채는 역할HandlerInterceptor에서 가로채어 원하는 추가적인 로
프로그래밍에서 예외 처리는 아주 중요하면서도 아주 어렵다.과하다할 만큼 상세하고 다양하게 예외를 잡아 처리해준다면, 클라이언트도 그렇고 서버도 그렇고 더 안정적인 프로그램이 될 수 있게 도와준다.메서드 내에서 예외 상황을 예측해서 처리하는 try-catch문을 이용하는
Form Data를 어느 method에 넣느냐에 따라 쿼리파라미터의 위치가 다르다get: urlpost: body요청 -> 필터 -> 디스패처 서블릿 -> 인터셉터 -> 컨트롤러로 값을 바인딩 하는 과정에서 Interceptor에서 getInputStream() 을 호
개발, 운영 서버를 구분하기 위해 profile을 설정하며,아래와 같이 4가지의 host가 있음활성화할 profile 설정profile이 (?)일 경우 하위 항목들의 profile과 그룹을 정의설정을 통해 어플리케이션을 실행할 때 profile을 포함하여 실행할 수 있
logback을 사용하여 SQL문이 실행되었을 때 자동으로 log 남기기logback과 log4jdbc 추가수정 전수정 후하기 설정 추가 후 appender 자유롭게 설정스프링 부트(Spring Boot) - Logback을 이용해서 SQL 쿼리 로그 출력하기 \[Ma
기존 log 에서 yml문의 변수 ON, OFF 값에 따라 log level을 조정하기로 했다logback이든 log4j든 사용하고 있는 프로젝트라는 가정 하에우선 build.gradle에 의존성을 주입시켜준다(if문 사용 가능하게 해주는 dependency)설정 파일
이전 포스터 - 필드에 부여하는 방법AOP 포스터자세한 설정법은 위 링크 참조Around에 어노테이션으로 선언했던 interface 경로 설정어노테이션 선언할 때 변수를 선언해줬으니 매개변수 부여 필요ProceedingJoinPoint의 getSignature 메소드를
커스텀 어노테이션, Exception Handler 등을 이용해서컨트롤러가 아닌 외부에서 Exception이 발생하는 경우response 데이터를 보낼 수 없이 오류가 발생해 자동으로 오류데이터가 전송되었다!내가 원하는 response 값을 커스터마이징해서 보내고 싶은
Java의 Entity 생성 중 ID(primary key)는 @GeneratedValue로 식별자값을 자동으로 생성시켜주는 옵션을 설정할 수 있다배울 때 MySQL은 IDENTITY를 쓰면 된다고 해서 무작정 썼는데드디어 찾아봤다hibernate.dialect에 설정
Log - (1) Log4jLog - (2) LogbackLog - (3) Log4jdbc+Logback을 이용한 SQL 로그 남기기Log - (4) log 설정 xml 파일에서 if문 사용하기정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는