Vue.js: this.$emit으로 하위 컴포넌트에서 상위 컴포넌트로 정보 전달

먼저 상위(부모) 컴포넌트의 이름은 Topic, 하위(자식) 컴포넌트의 이름은 TopicSearch라고 가정합니다.   먼저, 상위 클래스에서 컴포넌트를 삽입할 때 v-on:xxx(약어 @xxx)를 사용해 커스텀 이벤트를 만듭니다. Topic.vue (일부) <template> <div class=”topic”> <TopicSearch v-on:search=”doSearch” v-on:allOrder=”doAllOrder”/> </div> </template> 여기서 search. allOrder 는 나중에 this.$emit에서 사용할 이벤트 이름이며. doSearch, doAllOrder는 상위 컴포넌트에 있는 메소드 이름입니다. 왼쪽이 더보기…

자바스크립트 npm: package.json의 정보 가져와 웹 페이지에 보여주기

자바스크립트 npm으로 만든 프로젝트에서 package.json의 정보 가져와 웹 페이지에 보여주는 방법입니다. package.json을 import문을 사용하여 불러오면 객체로 사용할 수 있습니다. 다른 json 파일도 마찬가지입니다. import React from ‘react’; import Container from ‘@material-ui/core/Container’; import packageJson from ‘./../../package.json’ const Home = () => { const dependencies = packageJson.dependencies const depElements = [] for(let 더보기…

리액트(React): npm(npx)에서 새로운 앱 생성, 컴포넌트 파일 생성

리액트(React) 새로운 앱 생성하는 방법입니다.   리액트 앱 생성 npx create-react-app [앱_이름] 터미널을 열어 생성하고자 하는 폴더의 상위 폴더에 이동한 후 위의 명령어를 터미널에 입력하면 생성이 됩니다. (Node 8.10 혹은 상위 버전 및 npm 5.6 혹은 상위 버전인 경우) 또는 다음 명령어를 입력해 생성할 수 있습니다. npm install -g create-react-app 더보기…

PHP: JSON 스트링을 객체 또는 배열로 변환, explode, str_replace, 대소문자 변경방법

1) JSON을 배열로 변환 객체(stdClass)로 변환하는 방법 $array_data = json_decode($str, false); // 또는 $array_data = json_decode($str); 배열로 변환하는 방법 $array_data = json_decode($str, true);   2) explode 다른 언어의 String.split과 기능이 비슷합니다. 스트링의 경계기호(delimiter) 문자를 기준으로 배열을 생성합니다. $date = “2020-08-25”; // explode(delimiter, string) $exploded = explode(‘-‘, $date); echo $exploded[0]; // 더보기…

스프링 부트(Spring Boot): SPA에서 사용할 수 있는 OAuth2 소셜 로그인 (구글, 페이스북, 깃허브)

원문 바로가기1 바로가기2 원문에서는 프론트엔드 부분을 리액트로 설명하고 있는데, 저는 리액트를 사용하지 않아서 다음 글에서 Vue.js 로 대체해서 올리고, 이 글은 백엔드만 다루겠습니다. 일반 서버 사이드 렌더링에서 구글 로그인 연동하는 방법은 아래를 참조하세요. 스프링 부트(Spring Boot): 구글 로그인 연동 (스프링 부트 스타터의 oauth2-client) 이용 + 네이버   안녕하세요, Spring Boot 더보기…

스프링 부트 + Vue.js 예제: 게임 정보 제공 사이트 (스타라이트 스테이지)

스프링 부트(Spring Boot) + Vue.js 예제: 게임 정보 제공 사이트 (스타라이트 스테이지)   About this site 아이돌마스터 신데렐라 걸즈 스타라이트 스테이지(데레스테) 게임 정보 제공 사이트입니다.   Link http://dere.yoonbumtae.com 사이트는 AWS 프리티어 기간이 만료되어 폐쇄했습니다. 서비스 당시 모습을 영상으로 볼 수 있습니다. Github https://github.com/ayaysir/deretopic   기술 스택   구현 내용 구현 더보기…

자바스크립트: 배경색에 ‘어두움 정도’ 따라 텍스트의 색상 결정하기

출처: 바로가기 예를 들어, 어두운 배경색에서는 밝은 글자색을 보여주고 싶고, 밝은 배경색은 어두운 글자색을 보여주고 싶다고 하겠습니다. 그런 조건에서 봤을 때 아래 예제는 글씨색이 눈에 잘 들어오지 않습니다. 어두운 배경색에는 아래처럼 밝은 글자색을 보여줘야 합니다. 색상에 16진수(예: #ffffff) 형태로 주어졌을 때 영상의 밝기차에 대한 정보(luma)를 결정하는 함수는 다음과 같습니다. function getTextColorByBackgroundColor(hexColor) 더보기…

스프링 부트(Spring Boot): JPA 엔티티에 자동으로 생성 날짜, 변경 날짜 추가하기

JPA 엔티티에 생성 날짜(createdDate), 변경 날짜(modifiedDate) 필드를 자동으로 추가하는 방법입니다.   1) BaseTimeEntity 추상 클래스 작성 package com.example.awsboard.domain; import lombok.Getter; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.annotation.LastModifiedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.EntityListeners; import javax.persistence.MappedSuperclass; import java.time.LocalDateTime; @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseTimeEntity { @CreatedDate private LocalDateTime createdDate; @LastModifiedDate private LocalDateTime modifiedDate; }   더보기…

스프링 부트(Spring Boot): JPA + Thymeleaf로 페이지네이션(페이징, 페이지 내비게이션) 구현

스프링 부트 + JPA + Thymeleaf를 이용해 게시판에 페이지네이션(페이징, 페이지 내비게이션) 기능을 추가해 보겠습니다.   0) 엔티티 클래스, 레퍼지토리 인터페이스 작성 Spring Boot: Spring JPA + H2 데이터베이스 기초 + 단위 테스트   1) 엔티티에 대한 서비스 클래스 작성 package com.example.awsboard.service.posts; import com.example.awsboard.domain.posts.Posts; import com.example.awsboard.domain.posts.PostsRepository; import com.example.awsboard.web.dto.PostsListResponseDTO; import com.example.awsboard.web.dto.PostsResponseDTO; import 더보기…

자바(Java) 예제: 페이지네이션(Pagination, 페이징, 페이지 내비게이션) 도와주는 프로그램

페이지네이션, 페이징, 페이지 내비게이션 등 다양한 이름으로 불리는 이것은 웹 페이지에서 흔히 볼 수 있는 페이지 번호를 클릭하면 특정 페이지로 이동하는 부분이나 기법을 통칭하는 용어입니다. 위의 HTML 요소 전부를 편의상 블럭이라고 하겠습니다. 이 예제는 (1) 현재 페이지, (2) 블럭 당 페이지 개수, (3) 전체 글 개수, (4) 페이지당 글 개수에 더보기…