분류 전체보기

Synonym DB의 객체는 각자 고유한 이름이 할당되어 있다. ALIAS처럼 동의어를 만드는것이 바로 시노님이다. ALIAS는 1회성인 반면 시노님(Synonym)은 영구적이다. 보통 다른 유저의 객체를 참조할 때 많이 사용을 한다. 다른 유저의 객체를 사용할때 유저의 이름과 객체의 실제이름을 사용하는데(계정명.객체명) 그 두개를 감춤으로써 데이터베이스의 보안을 개선하기위해 사용되어진다. 시노님에는 PUBLIC과 PRIVATE타입이 있다. PUBLIC은 모든 사용자가 접근할 수 있고 PRIVATE는 특정사용자에게만 참조가 가능하다. Synonym 선언 CREATE [OR REPLACE] [PUBLIC] SYNONYM '[스키마명].[시노님명]' FOR '스키마명.대상오브젝트형' OR REPLACE : ..
1. 제어 역전 (IoC) 일반적인 자바 개발의 경우 객체를 사용하기 위해 아래 코드처럼 작성하게됨. @RestController public class NoDIController { private MyService service = new MyServiceImpl(); @GetMapping("/no-di/hello") public String getHello() { return service.getHello(); } } 하지만 IoC을 특징으로 하는 스프링은 기존 자바 개발 방식과 다르게 동작함 IoC를 적용한 환경에서는 사용할 객체를 직접생성하지 않음 객체의 생명주기 관리를 외부에 위임 (외부 = 스프링컨테이너, IoC컨테이너) 객체 관리를 컨테이너에 맡김 = 제어권이 넘어감 = 제어 역전 제어 역전..
해당 내용은 INFCON2023의 다시보기를 보고 요약하였습니다. [무료] 인프콘 2023 다시보기 - 인프런 | 강의 성장하는 IT인들의 축제, 인프콘 2023에서 진행된 오프닝 및 발표 세션을 영상으로 다시 보실 수 있습니다., ✅ 확인해주세요 이 콘텐츠는 2023년 8월 15일 화요일 진행된 인프콘 2023 다시보기 녹화 www.inflearn.com 리팩토링 필요성 분리되지 않은 서비스 레이어 동일한 쿼리 중복 사용 분리되지 않은 서비스 레이어가 문제 테스트하기 어려움 확장성 저하 비즈니스 로직 + 데이터 접근 혼재 이를 해결하기 위해 서비스레이어에서 DB접근을 담당하는 영속성 레이어를 분리하기로 함. 동일한 쿼리 중복 사용 동일한 SELECT 를 사용하는 문장은 VIEW를 사용해서 최적화를 수행..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제는 단순한데 자바 문자열에 익숙하지 않아 꽤 헤멘 문제이다. 처음에는 정규식을 이용해서 해당 문자가 영문인지 판단하였는데 나중에 찾아보니 Character.isLetter() 로 간단하게 판별할 수 있는 것을 알게되었다. import java.util.*; import java.io.*; class Solution { public int solution(String str1, Str..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 구현은 어렵지 않다. 백준의 배열돌리기 문제를 풀 수 있다면 해당 문제도 쉽게 풀 수 있다. 단순 구현하면 다음과 같다. import java.util.*; class Solution { static int[][] arr; public int[] solution(int rows, int columns, int[][] queries) { int[] answer = new int[queri..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 해당 문제를 처음 보았을 때 이해하기 어려웠는데 아래 두 입력케이스를 보면 이해할 수 있다. {{2},{2,1},{2,1,3},{2,1,3,4}} --> [2, 1, 3, 4] {{1,2,3},{2,1},{1,2,4,3},{2}} --> [2, 1, 3, 4] 두 케이스를 보면 결과가 같은데 2번째 케이스를 1번째 케이스처럼 원소의 개수대로 튜플을 크기순으로 정렬하고 보면 {{2},{2..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 자바에서는 substring 메서드를 이용해서 문자열을 자를 수 있다. 문자열을 1부터 n/2크기까지 자르고 첫번째로 자른 문자열 이후부터 첫번째 문자열과 비교하면서 일치하면 압축하면된다. 코드는 다음과 같이 작성하였다. import java.util.*; class Solution { public int solution(String s) { int answer = s.length();..
1. 스프링 부트 등장 배경 기본 스프링에서 필요한 모듈을 추가하다 보면 설정이 복잡해 지는 문제가 생긴다. 이러한 문제를 해결하기 위해 등장한 것이 스프링 부트이다. 2.스프링 부트의 특징 1.의존성 관리 스프링 프레임워크에서 각 모듈의 의존성을 직접 설정하고, 호환되는 버전을 명시해야 동작한다. 즉, 애플리케이션에서 사용하는 스프링 프레임워크나 라이브러리 버전을 올리는 상황에서 연관된 다른 라이브러리 버전도 고려해야함. 스프링부트에서 이 불편함을 해소하기 위해 'spring-boot-starter'라는 의존성을 제공한다. 각 라이브러리 기능과 관련해서 자주 사용되고 서로 호환되는 버전의 모듈 조합을 제공한다. 2. 자동설정 스프링 부투는 스프링 프레임워크의 기능을 사용하기 위한 자동설정을 지원한다. ..
사실 그날 바로 후기를 작성해야 했는데 그 당시에 쓰기도 귀찮았기도 했고 억지로 글을 쓰면 더 글을 쓰고 싶지 않기에 미루게 되었다. 휴대폰 갤러리를 오늘 살펴보니까 그 때의 기억이 나서 인프콘 후기를 작성해 보려고 한다. 일기 형식이니 퇴고를 거치지 않겠다. 한번 참여해 보자 난 이전에 컨퍼런스를 가본적이 없다. 가고 싶은 생각이 없었기도 했다. 크게 3가지로 나눌 수 있는데 첫번째 공간제약이다. 이전에 지방에 거주했던 나는 서울로 가기 귀찮았다. 행사장까지 이동시간으로 다시보기를 시청하면 되는게 아닌가? 시간을 효율적?으로 쓰고싶었다. 두번째는 나는 외부활동을 좋아하지 않는다. 컨퍼런스 같은 대형 행사에 참여해 본적 없으니 가서 혼자서 뭘 하지 막연한 생각도 들고 같이갈 사람이 없었다. 세번째 가본적..
· Infra/Docker
Docker file 생성 FROM node COPY . . NODE : 시스템이나 도커허브에 존재하는 이미지 이름 COPY 첫번째 경로 : 컨테이너 외부경로, 이미지의 외부경로로 이미지로 복사되어야 할 파일들이 있는 경로 두번째 경로 : 내부경로, 파일을 저장하는 이미지의 내부경로 여기에 '.'을 넣으면, 이는 도커에게 기본적으로 Dockerfile이 포함된 동일한 폴더임을 알리는 것이다. 하지만 Dockerfile은 제외된다. 첫 번째 '.'은 이 프로젝트의 모든 폴더, 하위 폴더 및 파일을 복사해야 한다고 도커에게 알리는 것이다. 두 번째 '.'은 그 파일을 저장해야 하는 이미지 내부의 경로다. 모든 이미지와 이미지를 기반으로 생성된 모든 컨테이너에는 로컬 머신의 파일 시스템에서 완전히 분리된 자체..
White Asher
'분류 전체보기' 카테고리의 글 목록 (2 Page)