1. 사용자 생성 및 설정ALTER SESSION SET "_ORACLE_SCRIPT" = true;Oracle DB에서는 사용자 명에 C##을 붙여야하는 것이 규칙이기에 붙이지 않으면 에러위 설정을 해줘야 일반적인 이름으로 사용자를 생성 가능하다. CREATE USER 사용자명 IDENTIFIED BY 패스워드 DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;계정 생성 쿼리문 GRANT CONNECT, RESOURCE TO 사용자명;사용자에게 권한 부여하는 쿼리문계정 생성 후 권한을 부여해줘야 기능 수행이 가능 (DB 접속, 생성, ...)2. 함수SELECT EMP_ID, NVL(SALARY,0) FROM EMPLOYEE;NVL(컬럼명,값) : 해당 컬럼이 N..
변수(Variable)기본 자료형 데이터 크기 byte, boolean = 1bytechar, short = 2byteint, float = 4bytelong, double = 8byteUTF-8 인코딩 방식에서 String 문자열은 문자 종류에 따라 데이터 크기가 상이하다.영어/숫자 1byte, 한글 3byte자료형의 허용 데이터 범위를 넘어서 오버플로우가 발생하면 최소값인 음수 값부터 다시 순환된다.별도의 예외는 발생하지 않는다.데이터 범위가 큰 자료형을 작은 범위의 자료형으로 형변환 시 데이터 손실이 발생할 수 있다. 변수 / 메모리 구조Static 영역 : static 예약어가 붙은 필드 / 메소드가 저장되는 공간ex) 클래스 변수Heap 영역 : new 연산자에 의해 동적으로 할당하고 저장되..
[Programmers] 문제 풀이Programmers 기초 문제 Day5, 6코드 처리하기(level 0)문제 설명 :문자열 code가 주어집니다. code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다. mode는 0과 1이 있으며, idx를 0 부터 code의 길이 - 1 까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다.mode가 0일 때 - code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. - code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다.mode가 1일 때 - code[idx]가 "1"이 아니면 idx가 홀수일..
Spring Security OAuth2 클라이언트 JWT예제 목표구현 방식인증 : 네이버/구글 소셜 로그인 (코드 방식) 후 JWT 발급인가 : JWT를 통한 경로별 접근 권한인증 정보 DB 저장 후 추가 정보 기입 버전 및 의존성Spring boot 3.xxSpring Security 6.2.2OAuth2 ClientJWT 0.12.3 등 OAuth2.0 코드 방식 인증을 활용하고 JWT는 단일 토큰으로 진행관리를 하지 않고 인증만 받고 사용하는 경우 추가적인 사용자 정보나 어떠한 사용자가 우리의 서비스를 활용하는지 확인할 수 없기에 소셜 로그인을 통해 인증 받은 데이터는 DB에 저장을 한 뒤 관리해야 한다. 예제에서 사용되는 JWT는 2가지백엔드 소셜 로그인 제공 서비스(구글, 네이버) OAut..
[Programmers] 문제 풀이Programmers 기초 문제 Day3, 4, level 1 문제들더 크게 합치기 (level0)문제 설명: 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.12 ⊕ 3 = 123 3 ⊕ 12 = 312양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.제한사항: 1 ≤ a, b //처음 코드class Solution { public int solution(int a, int b) { int answer = 0; String abStr =..
[Programmers] 문제 풀이Programmers 기초 문제 Day1, Day2 문제 풀이대소문자 바꿔서 출력하기(level 0)문제 설명 :영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.제한사항 :1 ≤ str의 길이 ≤ 20str은 알파벳으로 이루어진 문자열입니다.//처음 코드import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a = sc.next(); int aLen = a..
알고리즘 문제풀이 사이트 : Baekjoon 약 350문제 해결티어 골드2교재 : Do it! 알고리즘 코딩테스트 자바편문제점 : 문제풀이 사이트에서 많은 문제를 풀어봤지만 티어와 해결한 문제 수에 비해서 너무 저조한 실력 이전 공부 방식과 문제풀이 문제점IDE를 사용해서 문제를 풀었기에 실전 코딩테스트 환경과 다르다.실전 코딩테스트에서는 IDE에서 제공하는 자동 완성, 자동 import 등..문제 풀이 시 오래 고민하거나 생각하지 않았다.조금만 어려운 문제에 부딫히면 포기하거나 다른 사람들 / 알고리즘 교재 풀이를 보고 이해해서 풀려고 시도-> 그러다보니 나중에는 스스로 생각을 거의 하지 않고 남들 풀이 과정을 보고 배우려고 함 앞으로의 코딩테스트 문제풀이 목표IDE를 사용하지 않고 최대한 실전 코딩테..
모니터링 메트릭 활용메트릭 등록 - 예제 만들기공통으로 사용되는 기술 메트릭(CPU, 메모리 사용량, 쓰레드...)은 이미 등록되어 있기에 사용해서 모니터링 할 수 있다.비지니스에 특화된 부분들(재고량, 취소수...)과 관련된 비지니스 메트릭이 있으면 비지니스와 관련된 문제들을 빠르게 인지할 수 있다.비지니스 메트릭은 직접 등록하고 확인해야 한다. 비지니스 메트릭을 위한 예제와 정의주문수 / 취소수상품 주문 시 주문수가 증가상품 취소 시 주문수는 유지되지만 취소수가 증가재고 수량상품 주문 시 재고 수량 감소상품 주문 취소 시 재고 수량 증가재고 물량이 들어오면 재고 수량 증가주문수, 취소수는 계속 증가하기에 카운터를 사용재고 수량은 증가하거나 감소하므로 게이지를 사용 public interface Ord..
마이크로미터, 프로메테우스, 그라파나마이크로미터기존에는 사용하던 모니터링 툴을 변경하면 코드까지 모두 변경해야하는 문제가 발생했다.이런 문제를 해결하는 것이 마이크로미터라는 라이브러리이다.개발자는 마이크로미터 표준 측정 방식만 알고 있으면 변환해서 전달해준다. 마이크로미터 : 애플리케이션 메트릭 파사드라고 불리며 애플리케이션의 메트릭(측정 지표)을 마이크로미터가 정한 표준 방법을 모아서 제공해준다.추상화를 통해서 구현체를 쉽게 갈아끼울 수 있도록 해뒀다.스프링 부트 액츄에이터는 마이크로미터를 기본으로 내장해서 사용한다.개발자는 마이크로미터가 정한 표준 방법으로 메트릭을 전달하고 모니터링 툴에 맞는 구현체를 선택하면 된다.모니터링 툴이 변경되어도 구현체만 변경하면 된다.메트릭 확인하기스프링 부트는 마이크로..
액츄에이터프로덕션 준비 기능프로덕션 준비 기능 : 운영 환경에서 서비스할 때 필요한 기능들프로덕션을 운영에 배포할 때 준비해야 하는 비 기능적 요소들을 의미지표(metric), 추적(trace), 감사(auditing), 모니터링ex) 애플리케이션이 살아있는지, 로그 정보는 정상 출력되는지, 커넥션 풀 사용 현황 등.. 엑츄에이터 : 프로덕션 준비 기능을 편리하게 사용할 수 있도록 스프링 부트가 제공하는 기능마이크로미터, 프로메테우스, 그라파나 같은 모니터링 시스템과 쉽게 연동하는 기능도 제공액츄에이터 시작implementation 'org.springframework.boot:spring-boot-starter-actuator' //actuator 추가build.gradle 의존성 추가액츄에이터가 제공..