목록전체보기 (232)
거인의 코딩일지
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/y4FVl/btsvMTpaaTt/w38S46Bw4qYiVaAryIEBY1/img.png)
import java.util.*; class Solution { public int[] solution(int n) { List list = new ArrayList(); for(int i = 2; i
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c01Z0X/btsxkhWsZPg/YQfzSXlMjA8OgIhv4diDrk/img.png)
Array.prototype.filter() Array인스턴스의 filter() 메서드는 주어진 배열의 일부에 대한 얕은 복사본을 생성하고, 주어진 배열에서 제공된 함수에 의해 구현된 테스트를 통과한 요소로만 필터링 합니다. ex1) 모든 작은 값 걸러 내기 function isBigEnough(value) { return value >= 10; } const filtered = [12, 5, 8, 130, 44].filter(isBigEnough); // 필터링된 값은 [12, 130, 44] ex2) JSON 에서 유효하지 않은 항목 고르기 const arr = [ { id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }, {}, { id: null }..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cIGRaJ/btsxgiIA3Dr/UPULq36DUMiPlO9I0z4BC1/img.png)
Array.prototype.sort() 배열의 요소를 적절한 위치에 정렬한 후 반환 기본 정렬 순서는 유니코드 코드 포인트 //ex) 숫자 배열 sort() 하는 법 [숫자배열].sort((prev, curr) => prev - curr) 역순) [숫자배열].sort((prev, curr) => curr - prev) Array.prototype.from() 유사배열 객체나 반복 가능한 객체를 얕게 복사해 새로운 Array 객체를 생성한다. // ex) Map 에서 배열 만들기 const mapper = new Map ([ [ ' 1 ' , ' a ' ] , [ ' 2 ', ' b ' ] ] ) Array.from(mapper.value()) // [ ' a ', ' b ' ] Array.from(ma..
렌더링이란??? 렌더링이란 서버로부터 HTML 파일을 받아 브라우저에 뿌려주는 과정이다. 브라우저는 서버로부터 HTML 문서를 다운 받는다. 렌더링 엔진은 HTML 문서를 파싱해서 DOM 트리를 만든다. 그 다음, 외부 css 파일과 함께 포함된 스타일 요소를 파싱하여 CSSOM 트리를 만든다. 스타일은 브라우저의 자체 스타일, 사용자 정의 스타일, html 태그에 걸려있는 스타일 순서로 처리되며, 나중에 처리되는 스타일을 따르게 된다. 그러므로 인라인으로 들어가있는 스타일 속성이 우선순위를 가지는 것이다. 다음으로, DOM 트리와 CSSOM을 결합하여 렌더링 트리를 형성한다. 이때, 화면에 드러나지 않는 head 태그나 display 속성에 none 값이 할당된 요소는 렌더 트리에 포함되지 않는다. 다..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dq7Kl6/btsvP9dON8y/bbakVSQU4wEWGxxdDwRIUK/img.png)
class Solution { public int solution(String s) { int answer = 0; String [] arr = s.split(" "); for(int i = 0; i < arr.length; i++){ if(arr[i].equals("Z")){ answer -= Integer.parseInt(arr[i-1]); continue; } answer += Integer.parseInt(arr[i]); } return answer; } } 우선 주어진 문자열을 " " 이런 띄어쓰기 하나로 구별해서 배열로 만들어 준 뒤 그 배열을 반복문을 돌려서, "Z" 와 같을경우 i-1 의 값을 빼주고 나머지 경우에는 answer 에다가 더해주어서 끝냈다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cP1o8U/btsvMJtoHh4/AwCA5HuiifpXa1YeQJCNbK/img.png)
class Solution { public int[] solution(int[] arr, int[][] queries) { int num; for(int i = 0; i < queries.length; i++) { num = arr[queries[i][0]]; arr[queries[i][0]] = arr[queries[i][1]]; arr[queries[i][1]] = num; } return arr; } } 우선 queries 의 [i][1] 의 요소를 저장할 수 있는 int 변수 num 을 생성 해주고, arr[queries[i][0]] = arr[queries[i][1]]arr 의 순서를 queries 의 요소 의 값 처럼 변화시켜주고 그 뒤에 변수 num 에 저장되어있는 숫자를 넣어주었다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b51WFW/btsxp7MEZ1G/0RrKvcNAcoYrimnGuqiCF0/img.png)
객체 환산 연산자란? (...) 식별자 앞에 붙어서 배열 혹은 문자열 등 iterable 한 객체의 요소를 전개 할 수 있는 연산자 const arr = [1, 2, 3, 4, 5]; const str = 'Hello World!'; console.log(...arr); // 1 2 3 4 5 console.log(...str); // H e l l o W o r l d ! 간단하게 배열의 복사 및 합치기도 가능 const arr1 = [1, 2, 3, 4, 5]; let arr2 = arr1; const sArr1 = [1, 2, 3, 4, 5]; let sArr2 = [...sArr1]; arr2[0] = 0; sArr2[0] = 0; console.log(...arr1); // 0 2 3 4 5 c..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bbE5ZQ/btsvlBpsJu8/KdQRrarSGPTa7plQ3P9lK1/img.png)
@CrossOrigin 이란? CORS(cross - origin resource sharing) 웹 페이지에서 제한된 자원을 외부 도메인에서 접근을 허용해주는 매커니즘 서로다른 도메인에서 리소스를 공유하는 방식 기존의 same - origin policy (동일 출처 정책) 와 반대되는 개념 처음 전송되는 리소스의 도메인과 다른 도메인으로 부터 리소슥가 요청 될 경우 해당 리소스는 cross- origin HTTP 요청 ex) http:www.heowc.com 이라는 사이트에서 사용하는 api 가 있는데 해당 api 는 외부에 공개하려는 목적이 아니라 자신들의 사이트에서 사용하기 위해 만들어 졌고 이 api 를 다른 사이트에서 알게되어 허락없이 무단으로 가져가 사용하게 된다면 상당히 곤란하기에 나온것이..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/26kuH/btsxghQz7M8/Tk7Exs0Ur1FDFuoHsZSYVk/img.png)
Query_DSL 이란 ?? 하이버네이트 쿼리 언어(HQL)의 쿼리를 타입에 안전하게 생성 및 관리해주는 프레임 워크 정적타입을 이용하여 SQL 과 같은 쿼리를 생성할 수 있게 해준다. 자바 백엔드 기술은 Spring Boot 와 Spring Data JPA 를 함께 사용한다 . 하지만 복잡한 쿼리, 동적 쿼리를 구현하는데 있어서 한계가 있기에 이러한 문제를 해결 할 수 있는 것이 Query DSL 이다 . 자바 코드로 SQL 문을 작성 할 수 있어 컴파일시에 오류를 발생하여 잘못된 쿼리가 실행되는 것을 방지 할 수 있다. Query DSL 의 장점??? 문자가 아닌 코드로 쿼리를 작성 할 수 있어 컴파일 시점에 문법 오류를 확인 할 수 있다. 인텔리제이와 같은 IDE 의 자동완성 기능의 도움을 받을 수..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/m1iun/btsxgcn9KzF/41gCr8eojjEKoyjNtxnHEk/img.png)
BooleanBuilder 일반적으로 동적 쿼리를 사용할 때 Boolean Builder 를 사용하지만 어떤 쿼리인지 바로 예측이 가지 않는다는 단점이 존재한다 BooleanExpression 의 member.age.eq(xx) 등의 표현식을 모아서 사용할 수 있도록 해준다 BooleanExpression member.age.eq(xx) 과 같은 표현식을 의미한다 null 반환시 자동으로 조건절에서 제거된다 단!!! 모든 조건이 null 발생시 전체 엔티티를 불러오게 되므로 오류를 발생할 수 있다. // ex) BooleanBuilder @Override public List findBynamicQuery(String name, String address, String phoneNumber){ Boole..