일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 개발자 정규직
- 개발자 인턴
- 식단
- 프로그래머스 코딩테스트
- 자바 암호화 복호화
- 직장인점심구독
- 도커
- 식단일기
- 신입 개발자 자바 면접
- Plating
- 샐러드
- 자바 암호화
- 코딩테스트 연습
- docker image
- 신입 개발자 필수 면접 질문
- Linux
- 개발자 면접
- 신입 개발자 면접
- .dockerignore
- docker
- 개발자 코딩테스트
- 신입 개발자 면접 질문
- 플레이팅
- 개발자 면접 질문
- 신입 개발자 자바 면접 질문
- 셰프의찾아가는구내식당
- 프로그래머스
- 개발자 채용연계형인턴
- 자바 암호화 알고리즘
- 자바 stream
- Today
- Total
목록지식노트 (73)
달리는 두딘
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cuCaYH/btrYKvtBITV/daKXW4uXcgFUhESPTq5Rw0/img.png)
Entity Entity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스 데이터베이스의 테이블에 존재하는 컬럼들을 필드로 가지는 객체 (DB의 테이블과 1:1로 매핑되며, 테이블이 가지지 않는 컬럼을 필드로 가져서는 안 됨) Entity는 데이터베이스 영속성(persistent)의 목적으로 사용되는 객체 → 요청(Request)이나 응답(Response) 값을 전달하는 클래스로 사용하는 것은 좋지 않음 또 많은 서비스 클래스와 비즈니스 로직들이 Entity 클래스를 기준으로 동작하기 때문에 Entity 클래스가 변경되면 여러 클래스에 영향을 줄 수 있음 Entity에서는 setter 메서드의 사용을 지양해야 함 → 변경되지 않는 인스턴스에 대해서도 setter로 접근이 가능해지기 때문에 객체의 일관성,..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cVekIV/btrYKG20IF8/vebvuN5KO5CpMVHjqGzop0/img.png)
Mapping을 할 때 우리는 받고 싶은 데이터를 강제를 함으로써 오류 상황을 줄일 수 있다. 이걸 위해 사용하는 것 중 하나가 MediaTypes이다. 들어오는 데이터와 나가는 데이터를 정하여 처리를 할 수 있다. Consumes Consumes는 들어오는 데이터 타입을 정의할 때 이용한다. 예를 들어서 내가 json타입을 받고 싶다면 아래와 같이 처리가 가능하다. @PostMapping(path = "/pets", consumes = MediaType.APPLICATION_JSON_VALUE) public void addPet(@RequestBody Pet pet) { // ... } 이렇게 처리를 하게되면 해당 uri를 호출하는 쪽에서는 헤더에 보내는 데이터가 json이라는 것을 명시해야 한다. C..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c5H0ot/btrYsA3hXjI/qmOZXo3LKTcKFlEmqwEHUk/img.png)
1. compareTo() 함수 A.compareTo(B)는 문자열, 숫자 등 두개의 객체 A와 B의 크기를 비교하는 함수입니다. A.compareTo(B)의 결과 값으로 결과 값으로 0, 양수, 음수가 리턴될 수 있으며, 아래와 같은 의미를 갖고 있습니다. 0 : A와 B가 같다 음수 : A가 B보다 작다 양수 : A가 B보다 크다 2. 두개의 문자열 비교 아래와 같이 compareTo()를 이용하여 문자열의 크기를 비교할 수 있습니다. 알파벳의 사전적인 순서로 크기를 비교합니다. public class Example { public static void main(String[] args) { String str1 = "Hello"; String str2 = "Hello"; String str3 = "..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/tcfVg/btrX4k8B9BU/Er4JpIcBngU7L0kU4yAi40/img.png)
MQ(Message Queue)란? 최신 클라우드 아키텍처에서는 애플리케이션이 좀 더 쉽게 개발, 배포 및 유지 관리할 수 있도록 더 작고 독립적인 모듈로 구성한다. MQ는 이러한 분산 애플리케이션을 위한 통신 및 조정 기능을 제공한다. MQ는 각 모듈 애플리케이션의 코딩을 상당히 간소화하면서 동시에 성능, 안정성 및 확장성을 개선할 수 있도록 한다. MQ를 사용하면 시스템의 서로 다른 부분이 통신하고 비동기식으로 작업을 처리할 수 있다. MQ는 메시지를 임시로 저장하는 간단한 버퍼를 제공하고, 메시지를 전송 및 수신하기 위해 소프트웨어 구성 요소가 queue에 연결하도록 허용하는 엔드포인트를 제공한다. 메시지는 보통 크기가 작으며, 요청, 오류 메시지 또는 평범한 정보가 될 수 있다. 메시지를 전송하려..
Vuex란? Vue.js프레임 워크에 사용할 수 있는 상태관리 패턴 Vuex를 사용했을 때 장점 해당 어플리케이션의 모든 컴포넌트에 대한 중앙 집중식 저장소 역할 어플리케이션의 상태에 대해 예측이 가능 Vuex의 데이터 흐름은 아래와 같다. Vuex에서 상태관리를 위한 요소는 4가지가 있다. 상태(State) - 공통으로 사용할 변수를 정의한다. - 컴포넌트 간 동일한 Data를 사용할 수 있다. 변이(Mutations) - State의 동기적 변이를 담당, Vuex저장소에서 State를 변경할수 있는 유일한 방법이다. - 일반적으로 직접 호출할 수 없으며, Action에서 commit('함수명', '전달인자')으로 통해서만 실행할 수 있다. 액션(Actions) - 비동기적 작업이 포함되어 있으며, M..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHfNHT/btrTsdF8QQf/HUUhLq1fwff6wURNIRWts1/img.png)
MySQL 데이터베이스 파티셔닝 1. 개념 논리적인 데이터 element들을 다수의 entity로 쪼개는 행위이며, 큰 테이블이나 인덱스를 관리하기 쉬운 Partition이라는 작은 단위로 물리적으로 분할하는 것을 말합니다. 2. 성능 특정 DML과 Query의 성능을 향상시키고, 주로 데이터가 실시간으로 쌓이는 데이터베이스 환경에서 효율적이다. 특히 Full Scan에서 데이터의 접근 범위를 줄여 성능 향상을 가져올 수 있습니다. 물리적인 파티셔닝으로 인해 전체 데이터의 훼손 가능성이 줄어들며, 각 파티션 별로 독립적으로 백업하고 복구할 수 있습니다. 다만, 테이블 간 Join이 일어날 경우 비용이 증가하며 테이블과 인덱스를 별도로 파티셔닝 할 수는 없습니다. 3. 종류 기본적으로 파티셔닝은 수평 분할..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdu2Nu/btrRaE7tnIE/feOORuW3BpFBh0XHQvSvUK/img.jpg)
선언한 0을 읽지 못 하는 오류 작업 중 또 다시 문제가 발생하였다. 이번에 발생한 문제는 [렌더 중 오류 :"TypeError : 정의되지 않은 속성 '0'을 읽을 수 없습니다.]라는 오류로 선언했던 0을 랜더했을 때, 읽을 수 없다는 오류다. 사실 로직은 별문제가 없으며, 실행도 잘되지만 console에서는 빨간색으로 엄청난 오류를 뿜어낸다. 데이터에 배열을 넣고, 그 배열을 사용하기 위해 [0]을 자주 사용하는 편인데, 그럴 때마다 단골손님 처럼 발생하는 오류 일단 해당 오류가 왜 일어나는지에 대해 이해해 보자왜 읽지 못 하는 걸까? 먼저 코드를 확인해 보자 해당 로직대로 서버를 실행하면, 로직 자체는 정상적으로 실행이 된다. 하지만 [Vue warn]는 console에는 오류가 뜬다. 그 이유는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/y3Ng5/btrQZWfZ3iL/yW6wCSKacBWubr4lqiGkI0/img.png)
Web Proxy 회사의 서비스를 만지다 보면은, 프록시 서버에 대해 알게됩니다. 프록시 개념은 웹 개발을 함에 있어서 중요하기 때문에 이에 대한 개념을 한번 정리해봅니다. Proxy 서버란? Proxy : 대리 혹은 중계의 의미 Proxy Server : 클라이언트의 요청을 받아서 중계하는 서버 다음의 그림처럼 이해할 수 있습니다. Proxy 서버 목적 익명성을 통해 보안의 목적으로 사용됩니다. 캐시를 통해 요청 속도를 개선할 수 있습니다. 네트워크 서비스나 콘텐츠 접근 정책을 사용해서 사이트를 차단할 수 있습니다. 사용률을 확인할 수 있습니다. 밖으로 나가는 콘텐츠 검사 등을 할 수도 있습니다. Proxy 서버 캐시 활용 웹 캐시(Web Cache) 또는 HTTP 캐시(HTTP Cache)는 서버 지..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cD3EL0/btrQ1fTchAk/O90x9N0ImlbcfDVFROz9ZK/img.png)
로드 밸런싱 (Load Balancing) 정의 네트워크 또는 서버에 가해지는 로드를 분산 해주는 기술 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미 Load Balancing의 필요성 ? 로드밸런싱은 여러 대의 서버를 두고 서비스를 제공하는 분산 처리 시스템에서 필요한 기술이다. 서비스의 제공 초기 단계라면 적은 수의 클라이언트로 인해 서버 한 대로 요청에 응답하는 것이 가능하다. 하지만 사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하게 된다. 증가한 트래픽에 대처할 수 있는 방법은 크게 2가지이다. 1) Scale-up : 서버 자체의 성능을 확장하는 것. 비유하자면 CPU가 i3인 컴퓨터를 i7으로 업그레이드하는 것..
computed(연산 프로퍼티) 1. computed를 사용하는 이유 템플렛안에 기술하는 것이 더 편리하지만 코드가 길어지면 길어질 수록 점점더 보기 싫어지고 복잡해진다(유지보수가 어려워짐)아래와 같이 심플한 코드는 괜찮겠지만 이게 점점 길어진다면? 생각만 해도 끔찍하다 {{ message.split('').reverse().join('') }} 템플릿에서 사용할만한 복잡한 로직은 computed에서 사용하도록 하자 아래의 예시를 보면 코드의 수는 늘어났지만 html의 코드는 깔끔하고 더 명확하게 된것을 알 수 있다. 또한 computed로 만든 덕분에 다른 곳에서도 자유롭게 메소드를 사용할 수 있게 되었다(재사용성) {{ reversedMessage }} var vm = new Vue({ el: '#e..