일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- gitlab
- IntelliJ
- docker
- spring security
- EUREKA
- GIT
- 비동기
- Java
- SpringBoot
- spring boot
- 자바스크립트
- 스프링
- Spring
- JavaScript
- map()
- map
- JS
- 스프링 클라우드
- 코딩테스트
- STS
- 프로그래머스
- leetcode
- 도커
- 스프링부트
- date
- 자바
- Spring Cloud
- OAuth
- jQuery
- 유레카
- Today
- Total
목록DEV/JS (22)
RATSENO
셋(Set)은 중복을 허용하지 않는 데이터 집합입니다. 이전 포스팅 : 2019/12/04 - [DEV/JS] - [JS]맵(Map)과 셋(Set) -1 [JS]맵(Map)과 셋(Set) -1 ES6에서 새로 도입한 데이터 구조인 맵과 셋에 대해서 알아보겠습니다. 맵은 키와 값을 연결한다는 점에서 객체와 비슷하고, 셋은 중복을 허용하지 않는다는 점만 제외하면 배열과 비슷합니다. 이번 포스팅에서는.. ratseno.tistory.com 에서 사용한 예제를 다시 활용하겠습니다. 이번에는 한 사용자에게 여러 역할을 할당하고 싶다고 가정하겠습니다. 예를 들어 "User" 역할은 모든 사용자에게 할당되지만, 관리자는 "User" 역할과 "Admin" 역할을 동시에 가질 수 있습니다. 하지만 같은 사용자에게 같은 ..
ES6에서 새로 도입한 데이터 구조인 맵과 셋에 대해서 알아보겠습니다. 맵은 키와 값을 연결한다는 점에서 객체와 비슷하고, 셋은 중복을 허용하지 않는다는 점만 제외하면 배열과 비슷합니다. 이번 포스팅에서는 맵(Map)에 대해서 알아보겠습니다. 맵(Map) ES6 이전에는 키와 값을 연결하려면 객체를 사용해야 했습니다. 하지만 객체를 이런 목족으로 사용하면 여러 가지 단점이 생깁니다. 프로토타입 체인 때문에 의도치 않은 연결이 생길 수 있습니다. 객체 안에 연결된 키와 값이 몇 개나 되는지 쉽게 알아낼 수 없습니다. 키는 반드시 문자열이나 심볼이어야 하므로 객체를 키로 써서 값과 연결할 수 없습니다. 객체는 프로퍼티 순서를 전혀 보장하지 않습니다. Map 객체는 위의 단점들을 모두 해결했고, 키와 값을 연..
자바스크립트의 내장 메서드 중에서 가장 강력하고 유용하다고 알려진 map(), reduce() 함수에 대해서 알아보겠습니다. 개발을 하다보면 배열을 다뤄야하는 경우가 굉장히 많습니다. 최근에 filter()메서드를 유용하게 잘 써먹게되면서, 다른 메서드들에 대해서도 알아봐야겠다는 생각이 들었습니다. (ㅠㅠ 반복문으로 해결하려던 과거의 저를 되돌아보게됬습니다.) 함께 map(), reduce() 함수를 알아보도록 하겠습니다.! map() 메서드 arr.map(callback(currentValue[, index[, array]])[, thisArg]) 매개변수 callback : 새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가집니다. -currentValue : 처리할 현재 요소 -index(..
이전 포스팅 : [JS]Promise (프라미스) - 1 에 이어서 이번에는 실무에서 자주 사용될 수 있는 여러 개의 프라미스를 연결해서 사용하는 케이스에 대해서 알아보도록 하겠습니다. 실무에서 개발을 진행하다 보면 화면구성에 필요한 API호출을 순차적으로 해야될 경우들이 자주 있습니다. 화면 구성을 위해서 1번, 2번, 3번 API가 필요할때 2번 API를 호출하기 위해서는 1번 API에서 얻은 값이 필요하고, 3번 API를 호출하기 위해서는 2번 API에서 얻은 값이 필요한 이러한 경우들을 예로 들수 있습니다. 3번 API → 2번 API → 1번 API 3번 API는 2번 API 결과값에 종속적 2번 API는 1번 API 결과값에 종속적 이렇게 순차적으로 호출하기 위해서는 주로 콜백함수를 이용하여 ..
프라미스 프라미스는 콜백의 단점을 해결하려는 시도 속에서 만들어졌습니다. 프로미스는 일반적으로 안전하고 관리하기 쉬운 코드를 만들 수 있게 됩니다. 프라미스가 콜백을 대체하는 것은 아닙니다. 사실 프라미스에서도 콜백을 사용합니다. 프로미스는 콜백을 예측 가능한 패턴으로 사용할 수 있게 하며, 프라미스 없이 콜백만 사용했을 때 나타날 수 있는 엉뚱한 현상이나 찾기 힘든 버그를 상당수 해결할 수 있습니다. 프라미스의 기본 개념은 간단합니다. 프라미스 기반 비동기적 함수를 호출하면 그 함수는 Promise 인스턴스를 반환합니다. 프라미스는 성공(fulfilled)하거나, 실패(rejected)하거나 단 두 가지뿐입니다. 프라미스는 성공 혹은 실패 둘 중 하나만 일어난다고 확신할 수 있습니다. 성공한 프라미스가..
Ajax는 비동기적 자바스크립트와 XML의 약어입니다. AJAX를 통해 서버와 비동기적 통신하면 페이지 전체를 새로 고칠 필요없이 서버에서 데이터를 받아올 수 있습니다. Ajax의 핵심 개념은 간단합니다. 브라우저 자바스크립트에서 HTTP요청을 만들어 서버에 보내고 데이터를 받습니다. 받는 데이터는 보통 JSON 형식입니다. XML로 받을 수도 있지만 JSON이 자바스크립트로 처리하기 훨씬 쉽습니다. 그리고 브라우저에서 받은 데이터를 사용합니다. Ajax를 사용하려면 서버가 필요합니다. 간단하게 node.js로 서버를 만들어 Ajax 서비스를 제공하겠습니다. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's ..
HTML은 계층적이므로 이벤트를 꼭 한곳에서만 처리해야 하는 건 아닙니다. 예를 들어 버튼을 클릭했을 때 물론 버튼 자체에서 이벤트를 처리할 수 있지만, 버튼의 부모에서 처리해도 되고 그 부모의 부모에서 처리해도 되는 식입니다. 여러 요소에서 이벤트를 처리할 수 있다면, 그 이벤트에 응답할 기회는 어떤 순서로 주어지는가 하는 의문이 생깁니다. 기본적으로 두 가지 방법이 있습니다. 하나는 가장 먼 조상부터 시작하는 방법으로, 캡처링(capturing)이라 부릅니다. 밑에서 보여드릴 예제 HTML에서 버튼은 에 들어있고 는 에 들어있습니다. 따라서 도 버튼에서 일어난 이벤트를 '캡처'할 수 있습니다. 다른 방법은 이벤트가 일어난 요소에서 시작해 거슬러 올라가는 방법입니다. 이런 방법을 버블링(bubbling..
자바스크립트 Date 객체에서 제공하는 날짜 형식은 별로 다양하지 않고, 이 형식 중에 원하는것이 없다면 직접 만들어야 합니다. moment.js는 원하는 형식을 쉽게 만들 수 있은 편이므로, 날짜 표시에 유용하게 쓰일 수 있습니다. moment.js의 format 메서드를 써서 날짜를 원하는 형식으로 만들 수 있습니다. 이 메서드는 메타 문자가 포함된 문자열을 받고, 메타 문자는 그에 해당하는 날짜 구성 요소로 변환됩니다. 예를 들어 문자열 YYYY는 네 자리 연도로 바뀝니다. 밑의 예제는 Date 객체의 내장된 메서드와 moment.js 메서드로 날짜 형식을 만든 예제입니다. const d = new Date(Date.UTC(2019, 11, 13)); //d -> Fri Dec 13 2019 09:..
서버에서 브라우저로 날짜를 전송하거나, 반대로 브라우저에서 서버로 날짜를 전송할 때는 조금 복잡할 수 있습니다. 서버와 브라우저가 다른 타임존에 있더라도 사용자는 자신의 타임존을 기준으로 날짜를 보고 싶어 할 겁니다. 다행히 자바스크립트의 Date 인스턴스는 날짜를 저장할 때 UTC를 기준으로 유닉스 타임스탬프를 저장하므로, Date 객체를 그냥 전송해도 일반적으로 안전합니다. 자바스크립트에서 날짜를 전송하는 가장 확실한 방법은 JSON을 사용하는 겁니다. 날짜는 JSON에서 1:1 대칭이 되게끔 파싱할 수 없으므로 JSON 명세에는 날짜에 대한 데이터 타입을 정의하지 않습니다. const before = { d : new D //before -> {d: Wed Nov 13 2019 09:47:06 GM..
날짜 조작에 자주 사용되는 moment.js 라이브러리를 소개하겠습니다. moments.js 타임존을 지원하는 버전과 지원하지 않는 버전 두가지가 있습니다. 타임존 버전은 세계의 타임존 정보를 모두 담고 있어서 꽤 양이 많습니다. 다음 설명은 모두 타임존 버전을 기준을 합니다. 웹 기반 프로젝트를 만들고있다면 cdnjs 같은 CDN을 통해 Moments.js를 불러올수 있습니다. 하지만 저는 직접 파일을 다운받아서 https://momentjs.com/ Moment.js | Home Format Dates moment().format('MMMM Do YYYY, h:mm:ss a'); moment().format('dddd'); moment().format("MMM Do YY"); moment().form..