byul91oh의 등록된 링크

 byul91oh로 등록된 티스토리 포스트 수는 538건입니다.

[React] 새창 Pop up 데이터 넘겨주는 방법 [내부링크]

const childPopup = useRef() const onPopup = () => { const url = `/preview` childPopup.current = window.open(url, "_blank"); // "noopener, noreferrer" childPopup.current.param = param } . . . 미리보기 param 을 넘겨주면 새창 컴포넌트에 props 에 param이 담겨있다. 신기방기 childPopup.current.param = param

MBTI 팩폭 나쁜버전 [내부링크]

istj 개노잼. 개방성 개나 줘버림. 한 번 배운 시스템 체계 속 가치관에서 못벗어남. 그 와중 똥고집, 융통성 태어날때 버린 듯. 가끔 개방적 모습을 추구해서 자기 객관화 못하고 mbti테스트하면 intj나올 때 있음.intj 설명글 달달 외워서 지 유형이라고 말함. 일할 때 개깐깐, 자기는 융통성 있고 객관적이라고 생각함 (지생각일뿐) 꼰대짓 잘함. 꽉 막힘.개성이라곤 없음.논리적인 줄 아는데 지가 배운 체계에서 벗어나질 못함, 새로운 논리를 받아들이지 못하는 아메바같은 종족임. isfj 소심하고 줏대없음. 배려심 있고 예의있어 보이지만 말을 안하고 있을뿐, 본질적으로 esfp와 같은 뿌리라고 생각. 사실 본성 개깐깐한데 참는거임. 남 이목 신경엄청씀. 사실 지들만 신경씀. 내성적인데 아싸는 되기싫..

[React] 새창 Pop up 열기 [내부링크]

리액트에서 새창팝업 띄우는 방법은 두가지가 있다. 1. import React, { useState } from 'react'; import { Link } from "react-router-dom" const ButtonPreview = (props) => { return ( 미리보기 ); }; export default ButtonPreview; Link태그 사용하여 타겟을 _blank를 주는방식 이 경우 라우터에 /preview 경로 파일을 연결해준다. js파일만 세팅해주면 간단하게 사용가능하지만 우리는 대부분 리액트를 사용할때, 컴포넌트들을 화면에서 분리하고 그 컴포넌트만 랜더링 하기때문에 디폴트 레이아웃이 잡혀있을것이다. 나의 경우 새창은 디폴트레이아웃과 상관없는 화면음으로 다른 방법을 사용했다..

Docker로 리액트앱 생성하기 [내부링크]

Ctrl + ~ 터니널 실행 $ docker run -it --name node-01 node:17-alpine3.15 ash Unable to find image 'node:17-alpine3.15' locally 17-alpine3.15: Pulling from library/node df9b9388f04a: Already exists 1bedfac31d6a: Pull complete 6463b5f3dbb1: Pull complete 885e68a88c76: Pull complete Digest: sha256:76e638eb0d73ac5f0b76d70df3ce1ddad941ac63595d44092b625e2cd557ddbf Status: Downloaded newer image for node:17-..

docker run : 컨테이너 생성 [내부링크]

# 컨테이너 생성 $ docker run --name python-10 python:3.10-alpine3.15 python-10 이라는 이름의 컨테이너가 생성된다. # 생성된 컨테이너 리스트 확인 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a2a72e9447d3 python:3.10-alpine3.15 "python3" 59 seconds ago Exited (0) 59 seconds ago python-10 2a4a08bd20e3 docker:test "docker-entrypoint.s…" 30 minutes ago Up 30 minutes 0.0.0.0:8888->3000/tcp, :::8888->3000/tcp st..

docker ps -a : 컨테이너 리스트 확인 명령어 [내부링크]

$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2a4a08bd20e3 docker:test "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 0.0.0.0:8888 stupefied_driscoll

docker container prune :사용하지 않는 Docker 오브젝트 일괄 삭제 [내부링크]

컨테이너 prune은 중지된 모든 컨테이너를 삭제해줍니다. $ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: a4365005d20a190be4a9227f49660e3183fabe968428d4707007a77757dd18a5 ..... Total reclaimed space: 67.06MB 중지된 컨테이너는 CPU나 메모리 같은 자원을 사용하지는 않습니다만, 모든 Docker 컨테이너는 고유한 디스크 영역(레이어)을 가지고 있기 때문에 컨테이너를 삭제해서 디스크 용량을 확보할 수 있습니다. 단, 중지된 컨테이너..

[오류]System has not been booted with systemd as init system (PID 1). Can't operate.Failed to connect to bus: Host is down [내부링크]

에러 $ sudo systemctl start docker System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down 해결 sudo /etc/init.d/docker start

Docker 명령어 정리 / Docker 트러블슈팅 [내부링크]

Docker 명령어 docker build 이미지 생성 -t, tag 이미지이름 , 정확히는 이미지 : 태그 -f, file Dockerfile 이름 (Dockerfile 의 위치 -rm 빌드후 컨테이너 삭제 -build arg ARG 값 전달 docker run 컨테이너 실행 -d 백그라운드 실행 -I 컨테이너 입력 -t 컨테이너 출력 --net 네트워크 지정 -p, port 포트번호 연결 -v, volume 바인드 마운트 --name 컨테이너 이름 -e, env 환경변수 전달하기 --rm 컨테이너 종료시 , 컨테이너 삭제 --entrypoint docker exec 컨테이너에 접속 -i, interactive -t: terminal 예 docker exec it bash docker cp 파일 디렉토..

Chatgpt 가 설명해주는 Nest.js의 장단점 [내부링크]

Nest.js의 장점과 단점에 대해 알려드리겠습니다. 장점: Express와 같은 Node.js 웹 프레임워크에서 사용하는 많은 개념들을 확장하여 더욱 구조적이고 모듈화된 애플리케이션을 쉽게 개발할 수 있습니다. TypeScript를 지원하여 컴파일 시간에 타입 오류를 잡을 수 있어 코드 안정성과 유지보수성이 높아집니다. 모듈화된 아키텍처를 사용하여 코드를 쉽게 재사용하고, 테스트하기도 용이합니다. Nest.js는 웹 애플리케이션 뿐만 아니라 마이크로서비스, API, 스트리밍, 웹소켓 등 다양한 분야에서도 사용할 수 있습니다. 단점: Nest.js는 새로운 개념들과 아키텍처를 포함하고 있기 때문에, Node.js나 Express와 같은 경험이 많은 개발자들에게는 학습 곡선이 높을 수 있습니다. Nes..

Chatgpt 가 말해주는 요즘 가장 '핫'한 프로그래밍 언어 [내부링크]

현재 가장 핫한 프로그래밍 언어는 여러 가지가 있지만, 다음과 같은 언어들이 큰 인기를 끌고 있습니다. Python: 인공지능, 데이터 분석, 웹 개발 등 다양한 분야에서 사용되는 인기 있는 언어입니다. JavaScript: 웹 프론트엔드 및 백엔드 개발, 모바일 앱 개발 등 다양한 분야에서 사용되는 언어입니다. Java: 대규모 애플리케이션 개발에서 가장 많이 사용되는 언어 중 하나입니다. Kotlin: 안드로이드 앱 개발에서 대체재로 떠오르고 있는 언어입니다. TypeScript: JavaScript의 상위 집합 언어로, 정적 타입 검사 기능 등을 제공하여 코드의 안정성과 유지보수성을 높입니다. Go: 구글에서 개발한 언어로, 높은 성능과 간결한 문법 등으로 인기가 있습니다. 이외에도 Rust, Sw..

Chatgpt 가 말해주는 React의 장/단점 [내부링크]

Chatgpt 가 매우 똑똑하고 한글로 물어봐도 한글로 대답해준다. 프로그래밍 언어에 대한 냉철한 평가가 가능할지 궁금했다. 결론을 미리말하면 나보다 한국말 잘한다. React의 가장 큰 장점 중 하나는 성능입니다. React는 가상 돔(Virtual DOM)을 사용하여 빠른 업데이트와 렌더링을 가능하게 합니다. 가상 돔은 메모리 상에 존재하는 가상의 DOM이며, 변경 사항을 실제 DOM에 적용하기 전에 가상 돔 상에서 처리하여 불필요한 업데이트를 최소화합니다. 이를 통해 웹 애플리케이션의 성능이 향상되고, 사용자 경험이 개선됩니다. 또한 React는 컴포넌트 기반 아키텍처를 사용하여 코드의 재사용성이 높아지고, 유지보수가 쉬워집니다. 이러한 이점들은 대규모 웹 애플리케이션을 개발할 때 매우 유용하며, ..

[react-sortablejs] 리액트 순서 드래그 앤 드랍 [내부링크]

react-sortablejs 라이브러리 사용 핸들 동작 테스트 코드(베이스 of 베이스 코드 ) 입니다. 리액트 라이브러리 중 가장 단순하지만 기본 기능은 탄탄하니 응용하여 사용 가능 할듯 합니다. import React, { FC, useState } from "react"; import { ReactSortable } from "react-sortablejs"; const TestDrag = () => { const [state, setState] = useState([ { id: 1, name: "Peace" }, { id: 2, name: "Soma-damian" }, { id: 3, name: "Lee" }, ]); const sortableOptions = { animation: 150, f..

Nest.js node-cache 라이브러리 적용 [내부링크]

휴대폰 인증같이 간단한 처리는 캐시에 데이터를 넣어 처리 가능하다. 간단하게 캐시데이터 get / set 코드 import { Injectable } from '@nestjs/common'; import NodeCache from 'node-cache'; @Injectable() export class AuthCache { private cache: NodeCache; constructor() { this.cache = new NodeCache(); } async createCache(params : any) { let { props } = params let { mobileNo, authNo } = props const cacheKey = mobileNo; // 캐시 키 const chcheValue ..

리액트 상태관리 라이브러리 React-Hook-Form [내부링크]

기존에는 리액트의 상태를 useState 와 onChang 를 사용 하였다. 상태관리 툴이나 라이브러리 없이 상태를 관리 해왔다. 장점은 직관적이며, 데이터의 validation , 데이터변환 등 단점은 한개의 변환시 모든 데이터, 변경하시않은 상태도 다시 랜더링 된다는것 (치명적) 사실 위 코드도 나는 형식을 잘잡아놔서 충분히 사용할수 있지만 개발자는 유행하는건 배우고 따라해봐야하니까 (귀찮) 작년말 2022년부터 현재 2023년까지 상태관리 라이브러리 "react hook form"의 사용자 수가 증가 했다. react hook form install npm i react-hook-form import import { useForm } from "react-hook-form"; 라이브러리 미사..

[파일다운로드 두가지 방법] javascript로 다운로드 / buffter 받아서 다운로드 [내부링크]

javascript 내 코드로 다운로드 가능한 코드 export const downLoad = (fileNm,contents) => { let fileDown ="data:json;charset=utf-8," + contents; let encodedUri = encodeURI(fileDown); let link = document.createElement("a"); link.setAttribute("href", encodedUri); link.setAttribute("download", fileNm+'.json'); document.body.appendChild(link); link.click(); document.body.removeChild(link); } 서버로 buffer받아서 다운로드 진행 a..

[DB] too long data 오류 /MySQL 데이터형 및 크기 [내부링크]

자료형이 왜 필요하는지? - “더 작은 공간을 사용하면서” , “더 빠르게 처리할수 있는” 프로그램을 만들기 위해서 데이터 자료형을 사용 - 작은 공간에 넣을수록 연산(SELECT 등의 연산)이 빨라지고 공간도 적게 차지 CHAR(M) [BINARY] - 자료형의 크기 : char 필드의 CHARACTER SET 에 따라 가변적임. 예를들어 char(10) 이면서 utf4mb8 일 경우 고정 40Byte 사용. - 범위 : 1 에서 255 글자 - 주의 : 고정길이로 길이가 작은 값이 입력되면 오른쪽에 스페이스로 채워져서 입력된다. BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다. VARCHAR(M) [BINARY] - 자료형의 크기 : varchar 필드의 CHARACTER SET ..

[NestJs] PayloadTooLargeError: request entity too large [내부링크]

발생 원인 PayloadTooLargeError가 발생하는 원인은 파서가 읽을 수 있는 데이터 허용치보다 request가 보낸 데이터의 크기가 커서 정상적으로 파싱을 할 수 없을 때 발생하는 에러 해결 방법 main.ts import { urlencoded, json } from 'body-parser'; app.use(json({ limit: '50mb' })); app.use(urlencoded({ limit: '50mb', extended: true })); limit 옵션을 추가로 주어 파싱 허용치를 증가

[React] 페이지 별 체크박스 - 전체/개별 체크박스 페이지 이동해도 checked 저장 [내부링크]

리액트 체크 박스 검색시 가장 많이 나오는 전체 체크박스 및 개별 체크박스 그치만 페이지를 이동하면 전체 체크박스가 새로고침 되기 때문에 다 날라간다 나는 state에 페이지별 선택 ID를 남겨주었다 해당예제는 사용자 아이디 리스트. // user info const [users , setUsers] = useState([]); //페이지 내 전체 유저 const [selectableUsers , setSelectableUsers] = useState([]); // 페이지내 선택가능 유저 - 전체 선택 onoff //체크박스 const [checkItems, setCheckItems] = useState([]); //페이지 상관없이 체크한 아이템 const [checkItemsPage, setCheckI..

ejs 문법 <%= 와 <%- 차이 [내부링크]

공식문서 1. ejs 란? ejs는 Embedded JavaScript Template의 약자로 nodejs 진영에서 많이 사용하는 템플릿 엔진이다. 문법이 단순한 것이 특징 2. 기본 문법 주석 : JS 코드 : 변수 출력(html escape 처리: >를 $gt로 변환) : 태그내부 공백 제거 : html escape안하고 변수 출력 : 태그

helmet 보안 xss 필터 추가 [내부링크]

helmet 모듈은 서버에서 다양한 HTTP 헤더를 자동 설정을 통해 서버 어플리케이션의 보안을 강화해주는 대표적인 노드 보안 모듈 main.ts 에서 설정 해준다. import * as helmet from "helmet"; const app = await NestFactory.create(AppModule); app.use(helmet()); //csp, expectCt, hpkp, noCache, referrerPolicy는 적용되지 않으니 따로 설정 필요 간단하게 이렇게 적용도 가능하지만 contentSecurityPolicy는 꽤 복잡한 설정이기 때문에 일단 꺼둔다. // app.use(helmet.contentSecurityPolicy()); // Content-Security-Policy 헤..

[XSS] Nest js에 xss 필터를 넣어서 보안 강화 XSS 방지, Cross Site Scripting [내부링크]

# XSS(cross site scripting) 크로스 사이트 스크립트 변조(cross site scripting, xss)는 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것 예를 들어 검색어 에 스크립트 코드를 넣어서 악성 코드를 뿌린다던가..등등 nest 는 xss설정을 하는 방법 크게 2가지로 나눈다 1. 파이프 2. helmet 라이브러리 사용 파이프의 경우 필터, 인터셉트와 같은 기능 같지만 우선순위가 낮다. helmet 라이브러리를 이용한 간단한 xss보안 필터 설정을 해보겠다 import npm install helmet 모듈을 설치하고 나서 적용 * 파일이름 : main.ts ..

[Jquery] 마우스 휠& 드래그 이미지 zoom & translate _ 라이브러리X [내부링크]

참고 링크 웹 서핑을 하다 보면 마우스 휠로 줌 인 아웃 많이 해봤을꺼다. 라이브러리를 사용하지않은 코드 import body css #container{ width:500px; height:300px; overflow:hidden; } #slide{ width:100%; height:100%; transition: transform .3s; } img{ width:auto; height:auto; max-width:100%; pointer-events: none; } script $(document).ready(function (){ var scroll_zoom = new ScrollZoom($('#container'),5,0.5) }) //The parameters are: // //cont..

[Jquery] Sortable 라이브러리 사용하여 리스트 드래그 앤 드롭 만들기 [내부링크]

Todo List / table List 등 다양한 리스트들 있습니다. 리스트들을 드래그 해서 순서를 변경하는 코드 소개합니다 Sortable 라이브러리 사용했습니다. 기본적인 리스트를 마지막버튼을 드래그 하여 초록색 점이 2번째로 이동! CDN //드래그 & 드롭 Sortable.create(listWithHandle, { handle: '.my-handle', animation: 150, // Element dragging ended onEnd: function (e) { //드롭했을때 이벤트 실행 var itemEl = e.item; // dragged HTMLElement console.log(e.newIndex+1); updateSort(); } }); updateSort()함수를 만들어 리..

[React] client IP / userAgent 정보 받기 [내부링크]

외부 라이브러리 사용 하여 클라이언트의 IP 정보를 가져 옵니다. const [ ip , setIp ] = useState(); useEffect( () => { axios.get('https://geolocation-db.com/json/') .then((res) => { setIp(res.data.IPv4) }) },[]) userAgent 정보는 MDN 기본 반찬인 navigator로 출력 가능합니다. const userAgent = window.navigator.userAgent

[React-spinner] loading spinner 적용하기 axios interseptor [내부링크]

참고 git npm i react-spinners spiner적용 component를 하나 만들엉줍니다. - loading.js import React, { useEffect} from 'react' import { css } from "@emotion/react"; import BeatLoader from "react-spinners/BeatLoader"; const override = css` display: block; margin: 0 auto; border-color: rgba(255,255,255,0.7); border-width: 10px; `; const Loading = (props) => { const check = props.loading == null ? false : props.l..

[React] Canvas 사이즈에 맞춰 이미지의 원본 비율로 출력하기 [내부링크]

const imgOnCanvas = (imageSrc) => { if (!canvasRef) return; const canvas = canvasRef.current; const ctx = canvasRef.current.getContext("2d"); setCanvas(canvas) setCtx(ctx); const image = new Image(); image.src =imageSrc image.onload = function() { console.log("-------------------------"); //입력 파일의 크기를 알아냄 let inW = image.width; let inH = image.height; console.log("[1]image 원본 - size",inW,inH); /..

[canvas] canvas 에 그려진 그림/이미지 리셋 하기 [내부링크]

ctx2.clearRect(0,0,reCanW,reCanH); ctx2.beginPath(); clearRect 에서 4개의 element는 필수 입니다. ctx.clearRect(top , left , 넓이 , 높이); 그린 rect들을 클리어 하고 새로운 이벤트 활성화 가능합니다.

[React] Canvas 레이아웃 2개 겹치기 [내부링크]

제가 진행하는 개발코드는 하나의 캔버스엔 이미지를 출력해주고 그 위에 똑같은 사이즈의 캔버스에 클릭이벤트가 생성 됩니다. 캔버스 한개로 이벤트 생성 가능하나 클릭 이벤트시 활성화된 곳이 변경 되는 이벤트여서 캔버스의 리셋이 필요했습니다. canvas 2개 를 css로 간단하게 겹치기 가능합니다. onBboxCanvas(e)} > .leftBox{ position: relative; } .leftBox .canvas{ position: absolute; top:0px; left:0px; }

[CSS] overflow-y:scroll 디자인하기 스크롤 디자인 변경하는 CSS [내부링크]

overflow-y:scroll로 스크롤 사용 가능하다. 기본 스크롤도 충분히지만 쫌더 통일성 있는 디자인을위해 스크롤 색상과 모양 디자인을 변경하는 CSS를 추가했다 이미지 표의 오른쪽 스크롤 이다. .accodient-box{ overflow-y: scroll; } .accodient-box::-webkit-scrollbar { width: 10px; /* 스크롤바의 너비 */ } .accodient-box::-webkit-scrollbar-thumb { height: 30%; /* 스크롤바의 길이 */ background: #848484; /* 스크롤바의 색상 */ border-radius: 10px; } .accodient-box::-webkit-scrollbar-track { background..

React 리액트 초기 설정 네비 페이지화 기초 세팅 / 리액트 앱 생성 [내부링크]

리액트 앱 생성 create-react-app my-app 터미널에서 리액트 앱을 생성 합니다. 매번 하는 실수지만 전 항상 npm create-react-app my-app npm을 앞에 붙여서 오류를 냅니다. App 실행 npm start App.js 정리 App.js 파일에 return 코드 싹 날리셔야합니다. 네비 생성 App.js import React from "react"; //npm install react-router-dom --save import { BrowserRouter, Route, Link, Routes } from "react-router-dom"; import Home from "./view/home/Home"; import Main from "./view/ma..

[JQuery] 엔터키 이벤트 실행 (엔터키 안누르고) [내부링크]

var enter = jQuery.Event( "keydown", { keyCode: 13 } ); 엔터키 이벤트 발생하는 함수 만들어준후 $('#input-box').trigger(enter); 엔터키 trigger이벤트로 실행 가능 나의 경우 특정 모달 오픈시 엔터키 이벤트가 필요했기에 사용

[Mysql] truncated incorrect double value 에러 [내부링크]

truncated incorrect double value 에러 해결 방법입니다. 업데이트 문은 가끔 쓰면 실수 많이 하게되는데요 셀럭트 문보다 사용이 적기 때문에 문법 오류를 자주 겪습니다. 변경전 UPDATE table ta SET ta.name = "변경" AND ta.address = "변경" WHERE ta.id = 1; 문제 없어 보일수도 있지만 truncated incorrect double value 에러가 났을땐 AND -> ,(컴마)로 변경 하시기 바랍니다 변경후 UPDATE table ta SET ta.name = "변경" , ta.address = "변경" WHERE ta.id = 1;

[티젠몰] 콤부차 체험 p10 이벤트 추천인 코드 : dhquf8093 [내부링크]

현재 (2022.09.21) 기준 콤부차 체험 10stic 이벤트 진행중입니다 http://teazenmall.com/product/project.html?cate_no=593 기획전 - 티젠 콤부차 2억 돌파 고객 감사제 티젠 콤부차 2억 돌파 고객 감사제 teazenmall.com 9/15~10/6 일까지 배송비만 결제하면 10스틱을 받을수 있습니다 ㅎㅎ 추천인코드 : dhquf8093 티젠몰 가입시 추천인 코드 입력하면 바로 사용 가능한 1000원 적립됩니다! 저는 이번에 콤부차 60스틱 구매했어요 워낙 좋아해서ㅎㅎ 콤부차 좋아하시는 분들 체험 이벤트 활용 바래용

[javaScript] spectrum 라이브러리 사용 color picker palete 만들기 [내부링크]

버튼을 클릭하면 picker가 출력 되는것이 아니라 팔레트를 띄우는 color picker입니다. spectrum 공식 사이트 참고 바립니다. 코드 공유 합니다 Cdn HTML script

[javaScript] Color Picker ! 컬러 피커 Coloris 자바스크립트로 간단하게 적용하기 [내부링크]

컬러 피커 코드 공유 합니다! cdn HTML cdn이랑 html코드만 넣어도 출력가능합니다. 스크립트 코드로 컬러피커 세팅 변경 할수 있습니다. script Demo 여기서 확인가능합니다.

[Modal] css로 간단하게 모달창 만들기 [내부링크]

CSS로 간단하게 모달 창 만드는 코드 공유 드립니다. X버튼과 CANCLE버튼으로 모달창 닫기 가능합니다. HTML 모달 오픈 버튼 ADD Add label name X Name Description CANCLE SAVE Script // click on 라벨 추가 모달 열기 $(document).on('click', '#add-btn', function (e) { console.log("click event"); $('#modal').addClass('show'); }); // 모달 닫기 $(document).on('click', '#close_btn', function (e) { console.log("click event"); $('#modal').removeClass('show'); });..

[스시우미 용산] 디너 10 이면 가성비 오마카세란다. [내부링크]

스시우미 용산 오마카세 방문한지 꽤 되었지만 이제야 작성하는 나의 게으름에 반성하며 치얼스 디너 10이었다. 주말이었고 캐치테이블로 예약이되어 방문했다. 현 남편이 남친일 시절에 ㅋ 2022.07즈음 방문 후기 요즘은 디너 인당 10이면 가성비 좋고 저렴한 오마카세라고 한다. 개인적으로 스시우미는 위치가 별로였다. 아파트 상가 에 지하에 있던걸로 기억하는데 매우매우 찾기 어렵고 상가맵을 봐도 찾기 어려운 수준 위치를 찾을수 없어 전화를 했는데 받지도않고 도착은 제시간에 했으나, 가게를 못찾아서 20분 후에 도착했다. 그래서 들어갈때부터 화가 많이 난 상태 10분늦으면 노쇼로 간주해서 환불도 안된다는데 가게위치가 어려우면 설명이라도 제대로 써져있던가 아니면 전화라도 받던가 이만저만 기분이 상했었다. 전채 ..

[미아 양꼬치 맛집] "경성양꼬치" 갈비꼬치 top of king [내부링크]

미아사거리역 맛집 미아 맛집 양꼬치 맛집 경성 양꼬치 양꼬치 먹자! 하면 당연스레 자연스레 방문하는 경성양꼬치 갓 킹 제너럴 존맛탱구리구리 여긴 항상 사람이 많음으로 미리미리 방문 필수 미아에만 2개 가 있다. 그렇다는건 돈을 많이 벌었다는것 = 맛잇다 라뗴는 미삼 이었는데 (미아삼거리) 미사 (마이사거리)로 바꼈다. 어색어색 언제 거리 하나 추가된거늬? 메뉴판 기본 양꼬치도 좋지만 여긴 진짜 제발 갈비꼬치 먹어주라 마라갈비인지 양갈비살 꼬치인지 갈때마다 헷갈림 가서 뼈 있는 꼬치 갈비 꼬치 달라카면 설명해주실것 앞접시겸 가루접시 양꼬치는 이거 먹으러 가는거 아니겠는가 처음엔 기본 꼬치를 주문했다. 그리고 기본적으로 마늘꼬치랑 소시지도 주신다 고기 1인분이라 생각하면 비싼금액이 아니지만 항상 밥값이 많이..

[Node/Nest] shell 글자 꾸미기 사용하여 큰 글씨 주석 달기 figlet [내부링크]

figlet figlet란 리눅스 쉘을 꾸미는 용도로 많이 사용하지만 controller단에서 api를 큼직하게 구분하기 위해 사용해보았다. 공식npm install npm i figlet import import * as figlet from 'figlet'; 글자를 콘솔 창에 출력하기 위한 코드 figlet.text('TEST!!', { font: 'Ghost', //Ghost , Standard , Graffiti , Dancing Font , Slant , Pagga horizontalLayout: 'default', verticalLayout: 'default', width: 100, whitespaceBreak: true }, function(err, data) { if (err) { ..

[NestJS] 상황에 따른 logger level 분기 나누기 [내부링크]

Nest JS / logger level 분기 나누기 대체로 웹 개발을 진행할때 실제 운영 서버 / Stage 서버 / 개발 DEV 서버로 나뉜다. 실제 운영서버의 부하를 줄이기위해 Log 레벨에 제한을줘서 특정 Log만 출력하게 설정 가능하다. - main.ts async function bootstrap() { const app = await NestFactory.create(AppModule,{ logger: process.env.NODE_ENV === 'DEV' ? ['error', 'warn', 'log', 'verbose', 'debug'] : ['error', 'debug', 'log'] }); //...추가설정들 await app.listen(process.env.APP_PORT); } b..

[NestJS] LOG에 요청 transation-id 추가하기 [내부링크]

Nest JS에서 LOG에 요청 하나에 대한 트랜잭션 ID 를 넣어 구분 하고자 한다. NEST 에서 logging 은 인터셉션, 가드, 미들웨어 등에서 출력을 한다. transation-id 를 넣지 않으면 같은 시간에 요청이 올경우 , 응답이나 에러 가 어떤 요청 인지 구분하기 어렵다. 위에 표시된 숫자 ID는 프로세스 ID (=pid)로 다른 요청이 들어와도 같은 ID가 출력된다. install npm i elastic-apm-node import import * as apm from 'elastic-apm-node' APM 이란 APM은 Application Performance Monitoring의 약어로, Application에 대한 성능정보 및 발생한 Error정보 그리고 Applicat..

[상봉 소한마리] 문가네 정육식당 : 소한마리 뿌시는거 참 옳아 [내부링크]

상봉 고깃집 상봉 맛집 상봉 문가네 라떼는 상봉 = 코스트코 상봉 = 터미널 상봉 = 나이트 였다. 사실 상봉에서 코스트코도 터미널도 나이트도 가본적 없다. 그냥 아는 척중 내 전남친(=현남편)은 운동을 하면 꼭 그렇게 소한마리 정육식당을 찾는다. 단백쥘~~ 집이랑 가까운 상봉에 문가네 방문했다. 주차는 뒷편에 있음 ㅋ 나는 블로거니까 메뉴판 찍어놓고 사진크기 에러남 별걱정을 다하신다. 사람이 바글바글했다. 심지어 그 금요일 되게 늦은저녁에 줄까시 섰으니말이다. 우리 자리가 나서 직원A분께서 치워주신다며 자리에 앉으라했다. (아마 서있는 내가 정신사나우셨나보다) 남편은 담탐 하러가고 혼자 앉아있었다. 이어 직원B님이 오시더니 치우지도 않았는데 왜 앉냐고 나한테 엄청 화낸다. 궁시렁궁시렁 나한테 개념을 운..

[JS] Nullish coalescing operator 자바스크립트 '??' 연산자 물음표 두개 [내부링크]

Nullish 병합 연산자(??) nullish 병합 연산자( ??) 는 왼쪽 피연산자가 null또는 이면 오른쪽 피연산자를 undefined반환하고 그렇지 않으면 왼쪽 피연산자를 반환하는 논리 연산자입니다. 이것은 왼쪽 피연산자가 or 뿐만 아니라 거짓 값 이면 오른쪽 피연산자를 반환하는 논리 OR( ||) 연산자 의 특별한 경우로 볼 수 있습니다 . 즉, 를 사용 하여 다른 변수에 일부 기본값을 제공하는 경우 일부 잘못된 값을 사용 가능한 것으로 간주하면(예: 또는 ) 예기치 않은 동작이 발생할 수 있습니다 . nullish 병합 연산자는 5번째로 낮은 연산자 우선 순위 를 가지며 조건부(삼항) 연산자 보다 바로 낮고 ||바로 높습니다 . const foo = null ?? 'default strin..

[Nest.js] Interceptor VS Filter VS Middleware 차이점 [내부링크]

Nest.js 에서 Interceptor VS Filter VS Middleware 세가지 모두 매우 유사한 개념이며, 사용자의 선호도 따라 결정됩니다. 인터셉터 인터셉터는 경로 처리기가 호출 되기 전후 에 응답/요청에 액세스할 수 있습니다 . 등록 @UseInterceptors()컨트롤러 또는 메서드 범위가 있는 컨트롤러 클래스에서 직접 전 세계적 app.useGlobalInterceptors()으로 main.ts 예 LoggingInterceptor: 라우트 핸들러 이전과 이후에 결과를 요청합니다. 소요 시간을 측정합니다. ResultMapping: 응답 객체로 변환 하거나 결과 null를 []래핑: users->{users: users} 결론 등록이 미들웨어에 비해 라우트 핸들러에 가깝다는 점이 마..

<img/> 이미지의 사이즈 구하기 && 이미지 원본 사이즈 구하기 [내부링크]

{ const img = e.target; console.log("img 넓이" , img.width); console.log("img 높이" , img.height); console.log("img 원본 넓이" , img.naturalWidth); console.log("img 원본 높이" , img.naturalHeight); }} /> onLoad는 이미지가 로드된후 실행하는 함수이다. img.width를 찍어보면 이미지가 출력된 후의 조정된 사이즈(상의 div등에 의해) 가 출력된다 Intrinsic size (원본사이즈)가 알고싶다면, img.naturalWidth 로 알수있다. Rendered size => img.width Intrinsic size => img.naturalWidth

[React] 다국어 기능 적용하기 react-i18next [내부링크]

홈페이지에 버튼 클릭으로 다국어를 지원하는 코드입니다. 리액트 기반이며 라이브러리로 i18next 사용했습니다. 위 이미지처럼 클릭시 언어가 변경 됩니다. 폴더 구조 입니다. src > utiles > i18n > locales > en-US > index.js import page from './page.json' export default{ page } src > utiles > i18n > locales > en-US > page.json { "소개":"Intro", "인사말":"Greeting", "사업 소개":"BusinessInfo", "참여 기관":"Agency", "데이터":"Data", "안심":"Safe", "분석":"Analysis", "구역":"Zone", "마켓":"Mark..

웹 창 크기에 따른 페이지 우회 window.innerWidth / setInterval [내부링크]

윈도우창 사이즈 체크는 간단하게 가능 let winSize = window.innerWidth 아래 코드의 경우 1025사이즈를 기준으로 페이지 우회를 하였다. 자바스크립트는 리액트 useEffect처럼 해당 값이 변화하면 실행하는 로직이 존재 하지않음으로 setInterval 사용하여 초마다 윈도우 창의 크기를 체크해야한다. clearInterval(checked); 를 해주지 않은 이유는 페이지를 이동하기 때문이다. 페이지를 이동하지않고, setInterval 을 멈춰야한다면, clearInterval 을 사용해줘야한다.

접속 기기 [모바일,태블릿,웹 등등] 체크 [내부링크]

사이트를 접속한 기기가 컴퓨터(웹)인지 모바일(핸드폰,태블릿)인지~ 간단한 코드로 확인 가능하다. var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); or var isMobile = /Mobi/i.test(window.navigator.userAgent); isMobile 값은 TRUE / FALSE 로 나온다. if(isMobile){ location.href="../mobile/index.html"; } 첫 접속 화면이 모바일 일시, 모바일 반응형 페이지로 우회

[React] 암호화 AES CryptoJS 사용하여 암호화/복호화 하기 [내부링크]

id값을 암호화시켜 url에 넣어 호출하는 예제 아이디값이 단순 숫자인 경우 보안에 상당히 취약함으로 암호화가 필요하다. 나는 암호화 = 리액트 / 복호화 = nestJS를 사용하였다. install npm i crypto-js import import CryptoJS from 'crypto-js'; crypto.js import CryptoJS from 'crypto-js'; const secretKey = process.env.REACT_APP_AES_SECRETKEY //암호화 export const encrypt = (val) => { let text = val.toString(); const data = { id:text }; const encrypted = CryptoJS.AES.en..

[React] image 마우스 wheel 로 zoom In/Out 하기 (라이브러리 사용) [내부링크]

react-zoom-pan-pinch 라이브러리 사용하여 스크롤로 이미지를 확대/축소 하는 기능 https://www.npmjs.com/package/react-zoom-pan-pinch 리액트로 이미지를 확대 축소하는 많은 라이브러리들이 있지만 비교적 사용이 쉽고 최근(대략 8개월) 전에 업그레이드도 진행된 편 (다른라이브러리들은 3-4년전 이 마지막 업데이트 현 리액트버전과 맞지 않은 경우도 있었다) install npm i react-zoom-pan-pinch import import { TransformWrapper, TransformComponent } from "react-zoom-pan-pinch"; code 이미지를 감싸주기만 하면 줌 인/아웃 가능 https://prc5.gith..

[VS code] 글자 크기 조절 [내부링크]

ctrl + , VScode 에서 컨트롤 + 쉼표 키를 누르면 setting창이 켜진다. 검색창에 font size 입력 숫자 단위로 글자크기 조절 가능 # 마우스 스크롤로 크기 조절 zoom 검색 체크박스 체크후 ctrl + s 컨트롤 누른 상태에서 마우스 스크롤로 글자 크기 조절 가능하다.

[결혼준비] 웨딩홀 투어시, "필수" 체크 리스트 [파일O] [내부링크]

결혼 준비시 “날짜 잡았니?” 의 날짜는 웨딩홀을 계약 해야 나온다. 고로 결혼 준비에서의 가장 기본 of 기본 웨딩홀 투어와 선택은 부분 하루에 이루어 지고 (원하는 예식장을 하루에 상담받고 당일 계약시 해택!! 을 받아야함으로) 상담시 설명 잘 해주시지만 체크사항을 미리 준비 해서 가면 웨딩홀 투어가 끝나고 최종 선택에 도움이 될수있다. 같은 파일 이미지/엑셀/PDF로 공유합니다. 상담시 중요한것은 당연히 "금액" 대관료와 할인 되는 금액까지 필수 체크 해야한다. 또한 결혼식은 내친구만 오는게 아니다. 가족, 친척, 부모님의 지인 , 회사동료등 멀리서 오시는 분들에 대한 편의가 가장 중요하다. 식은 사실 음식만 맛있으면 되~ 이라는 말을 가장 많이 듣는다. 식사 비용 뿐만아니라 소인 가족이 있는 경우..

[IT용어] 개발 서버(Dev), 스테이징 서버(Stg), 운영 서버(Prod) [내부링크]

개발 서버(Dev) 테스트용 서버로, 개발자들이 마음대로 테이블이나 서비스를 추가,수정,삭제 하면 여러가지 서비스를 테스트 할 수 있는 자유로운 서버이다. ex) 개발서버에서 형상관리에 커밋된 파일이나 ftp등의 업로드 수정 스테이징 서버(Stg) 운영 서버의 클론 서버처럼 똑같이 운영되는 서버로서 스테이징에서 문제가 없으면 운영 서버에 그대로 배포하기 위한 최종 검수하는 테스트 서버이다. (최종 검수 환경이기 때문에 개발 팀 뿐 아니라 기획팀이나 어떤 클라이언트 업체에게 공유하여 중간보고나 스테이징 도메인을 기준으로 시연하기도 한다.) ex) 스테이싱 서버에서 형상관리로 커밋된 파일들이 어떤건지 추리고 올려서 확인 운영 서버(Prod) 실제 스테이징 서버에서 정상 반영된 경우 운영서버에 해당 부분을 반..

[react-chartjs-2] 누적 그래프 + 라인 그래프 합치기 [내부링크]

리액트 차트를 만들면서 가장 오류/버그 적게 사용한 차트 라이브러리는 react-chartjs-2 react-chartjs-2 의 단점은 공식사이트의 정보가 다소 부족하고 ( 다른 라이브러리도 동일) 화려한 애니메이션이 기본으로 제공되지 않다. 그러나 충분히(많이 찾아보고) 커스텀 가능 하다 react-chartjs-2 라이브러리에선 누적 바 차트 / 라인 차트 가 분리되어 있지만 바 차트 + 라인차트 같이 출력하는 코드를 보고 누적 바 + 라인 차트를 커스텀해 만들어보았다. 출력되는 그래프 toolTip 도 커스텀 해서 출력 하였다 npm install //기본 설치 npm i chart.js //차트제이에스 2를 사용하기 위한 설치 npm install react-chartjs-2 chart.js..

[Java] 현재 날짜, 현재 시간 가져오기 _ Java 8 이후 [내부링크]

Java 8 이후 java.time.LocalDate java.time.LocalTime java.time.LocalDateTime 현재 날짜(타임존 적용) 구하기 import java.time.LocalDate; import java.time.ZoneId; public class CurrentDateTime { public static void main(String[] args) { // 현재 날짜 구하기 (시스템 시계, 시스템 타임존) LocalDate now = LocalDate.now(); // 현재 날짜 구하기(Paris) LocalDate parisNow = LocalDate.now(ZoneId.of("Europe/Paris")); // 포맷 정의 DateTimeFormatter formatt..

[IP]추적 방법 가장 간단한 KISA 검색 [내부링크]

IP 검색으로 유용한 사이트 소개합니다. 기본적으로 본인 아이피를 아는 방법은 여러가지가 있습니다. cmd창으로 검색 할수도 있고 https://www.findip.kr/ 위 사이트 방문시 내 외부 아이피를 쉽게 알수 있습니다. 익명의 글이나 상대의 아이피로 정확하진않지만 대략적인 위치 는 찾을수있습니다. https://xn--c79as89aj0e29b77z.xn--3e0b707e/main.do KISA 후이즈검색 whois.kisa.or.kr 한국인터넷진흥원 인터넷주소자원 검색(후이즈검색) 서비스 입니다. xn--c79as89aj0e29b77z.xn--3e0b707e 해당 사이트 접속후 아이피 입력하면 해당 아이디 발급받은 지역이나 업체명이 검색됩니다

CI/CD 요약 - 이론 [내부링크]

우리는 여태까지 어떻게 하면 더 좋은 코드를 만들어낼 수 있을지에 대해서 고민해왔다. 하지만 궁극적으로 우리가 하고 싶은 것은 사용자에게 우리가 멋드러지게 만든 코드를 결과물로 만들어 보여주는 것이다. 어떻게 하면 사용자에게 우리의 코드를 보여줄 수 있을까? 컴파일 첫번째로 우리가 만든 코드를 컴파일 한다. 컴파일이란 우리가 만든 프로그래밍 언어를 기계가 이해할 수 있는 기계의 언어로 번역하는 것이다. 우리가 사용한 java, c와 같은 프로그래밍 언어는 기계가 이해할 수 없다. 이렇게 개발자의 편의를 위해 개발자의 언어로 작성한 프로그래밍 언어를 컴파일러가 컴파일 해 기계가 이해할 수 있는 언어로 번역해준다. 빌드 다음은 컴파일된 기계의 언어를 사용자에게 보여주기 위해 빌드하여 완성된 상품, 소프트..

[몬드리인호텔] 프리 빌리지 루프탑 바 - 이쁘긴 이뻐 근데 답답해 근데 이뻐 [내부링크]

몬드리안 호텔 프리빌리지 루프탑 바 친구 생일 파티 겸 방문한 몬드리안 호텔 몬드리안은 인스타에서 많이 접해봤을꺼다. 수영장 인증샷이 수족관 물고기 같은 사진.. 친구 생일이라 어디 파티를 하고싶지만 늙어서 몸도 힘들고 날도 좋았고 (7월) 코로나라서 사람많은곳은 가기싫고 등등 몬드라인에서 수영하고 저녁엔 이쁘다는 루프탑을 가자! 해서 선택 루프탑 바를 갈꺼면 예약이 필수(!) 라기에 호텔 예약하고 바로 bar도 예약했다. 이땐 우기 여서 비가 오면 어떻하죠? 라는 답변에 뭐 천막이라도 쳐주는줄 알았는데 그냥 비맞음서 밖에 안던가 예약 취소란다 실내인지 실외인지 선택하라고.. 서비스 망했구여~ 다행이 이날은 비가 오지 않았다! 실외자리에도 저렇게 돔처럼 비가 안맞는 자리가 있다. 저긴 비오는날 좋을꺼같다..

[뮤지컬 "웃는남자"] 박효신 대장.. 뮤지컬 이용 개꿀팁 / 맛집 아니고 그냥 식당 "동경" [내부링크]

뮤지컬 웃는남자 후기 + 꿀팁 세종 문화 회관 식당 "동경" 후기 문화생활이라곤 1도 몰랐던 내 짝꿍이 갑자기 웃는남자를 봐야겠다며 티켓팅을 미리했다. 목표는 단하나 대장(=박효신) 개인정보도 포함되어있어 깰꼼하게 모자이크 관람일은 7/3(일) 오후 4시였다. 좌석은 나름 빨리 티켓팅했는데 다 솔드아웃.. 날짜도 겨우 맞추고 2자리 붙어있는 좌석 찾느라 고생 찾았다! 하고 결제하려면 사라지고 ㅠㅠ 힘들었다고 징징 거리는 중 좌석은 B석 그중에서 제일 뒷 자리 어차피 3층 관람인데 애매하게 앉아서 뒷사람 신경쓰이고 자세못바꾸고 할빠에 아예 뒷자리 가자!!! 우리의 계획은 4시니까 한시간 전까지 도착하자!였다. 하지만 차가 막힐수록 시작 전에만 들어가자 ㅠㅠ 결국 주차장 도착 3시 40분 공연시작 20분 전..

[JavaScript]소수점 반올림하는 방법 toFixed() 함수 [내부링크]

toFixed() 함수 toFixed() 함수는 인수로 전달된 소수 자릿수로 반올림된 숫자를 문자열 타입으로 반환한다. 다음은 toFixed() 함수 사용 예제. (123.678).toFixed(); // 124 (123.678).toFixed(1); // 123.7 (123.678).toFixed(2); // 123.68 (123.678).toFixed(3); // 123.678 (123.678).toFixed(4); // 123.6780 typeof (123.678).toFixed(4); // string toFixed() 함수의 반환 결과를 숫자로 변환하기 위해 Number() 함수를 사용할 수 있다.

[nivo chart] HeatMap chart 리액트 니보 차트 라이브러리 사용법 [내부링크]

니보 공식사이트는 추가설명이 너무 불친절 해서 사용하기 어려웠다. 초반 어떤걸 다운 받고 어떤걸 임포트 해야하는지 정보제공이 매우 불친절.. 그럴꺼면 왜 공식사이트를 만든건지 개인적으로 평소 차트 라이브러리는 chart js 를 가장많이 사용한다. chart js는 아쉽게도 HeatMap 차트가 없다. https://nivo.rocks/ Home | nivo nivo.rocks 완성 화면 Install // npm install @nivo/core // 기본적으로 설치 // npm install @nivo/heatmap import import { ResponsiveHeatMap } from '@nivo/heatmap' 차트 라이브러리 는 대부분 2가지만 신경쓰면된다 data / option - 데..

랜덤 숫자 출력 - 범위 지정 [내부링크]

Math.random() 함수는 0이상~1미만의 난수를 생성한다. (예 : 0.579541) Math.random(); Math.floor() 함수는 해당숫자와 같거나 해당숫자 보다 더 작은 정수를 반환 한다. Math.floor(2.5); //결과 2 Math.floor(-2.5); //결과 -3 Math.random() 함수를 이용하여 범위지정을 할 수 있는 함수를 만든다. var min = 1//범위지정 최소값 var max = 10//범위지정 최대값 let randNum = Math.floor(Math.random()*(max-min+1)) + min;

[중화맛집] "장군 솥뚜껑 삼겹살" 낭만 아입니꽈~~ [내부링크]

중화맛집 솥뚜껑 삼겹살 중화동으로 이사온지 어언~ 한달 이사짐도 슬슬 풀었겠다 맛집 탐방을 시작해보았따. 앞으로 이동네 최소 4년 살것으로 예상하니 익숙하지 않은 동네는 여전히 낯설고 무섭다ㅎㅎ 그치만 밤산책하면서 골목골목 여기엔 이런곳이 있네~? 하는 재미도 있다 퇴근후 중화역에 내려 집으로 걸어가는 길 새로운 길로 가보고 싶어서 이리저리돌아 다니다가 사람이 북적북적 하길래 찜꽁 해놨던 삼겹살집이다. 삼겹살 = 낭만 솥뚜껑 삼겹살이면서 심지어 옆에 세차장?카센터 의 넓은 공간에 야외 테이블을 깔아준다 어떻게 보면 위생적이지 않아보이나 이런 여름 비오는날 야외에서 삼겹살은 빠질수 없다. 새벽 1-2시쯔음 방문했는데 여전히 사람이 많았다. 너무 더우면 실내에 앉아도되지만 밖에서 먹어야 제맛 솥뚜껑을 업어주..

[성수동맛집] "더즌오이스터" 요즘 젊은이들은 다 성수동 간다며~? [내부링크]

성수동 맛집 이효리 맛집 오이스터 맛집 이효리의 "서울체크인" 프로에 나왔던 곳이다. 친구가 이 여름에 오이스터를 먹자고 꼬셨다 여름에 굴~~~이라고??????? 좋칭~~ 하고 냅다 달려갔다 ㅎㅎㅎㅎㅎ 미리 예약 필수%%%%% 사람이 많아서 가게 내부를 찍지 못했는데 들어가자마자 엄청 눈이 침침 앞사람도 잘안보이고 내가 할망구인지 잘 보이지않을정도로 어둡다. 마치 이건 소개팅이나, 썸녀썸남이 온다면 살짝 조명이어두워서 피부 트러블은 숨길수 있지만 집가면 이목구비 기억 안날 조명 나는 친구들이랑 왔는데 형광등 켜줬으면 좋겠당. 내부는 매우 시끄럽고 (+음악소리) 성별이 여성인 분들이 95퍼센트 자지했다. 나머지 5퍼는 직원분들이다 여자들이 좋아하는 공간이라는 뜻이다. 음식 코너의 메뉴판 굴구이/ 클램차우더..

[JAVA] stream() 중복제거 Collectors.toList() [내부링크]

List events = boardDao.getEvents(VO); events 리스트는 user No 가 중복된 리스트일때 List allUserNo = events.stream().map(EventVO::getUserNo).collect(Collectors.toList()); //중복 제거 되지 않은 상태 EventVO의 getUserNo만 뽑아서 다시 toList 리스트로 만들어준다. 예를 들면 allUserNo = ["10","10","10","10","11","11","11","12",] 중복제거가 되지 않았다. 이때, 중복제거를 위해 List userList = allUserNo.stream().distinct().collect(Collectors.toList()); stream().disti..

CSS 로 텍스트 줄바꿈 하는 간단한 방법 [내부링크]

const text = "동해물과 백두산이\n 마르고 닳도록" JSX에서는 개행 문자(‘\n’)가 동작하지 않아 줄바꿈이 되지않고 출력된다. \n 개행문자를 치환하는 방법도있지만 CSS로 간단하게 설정 가능하다 white-space: pre-wrap;

[창동 삼겹살 맛집] "북청 식당" 엄마가 좋은고기 사다 집에서 꾸버주는 맛 [내부링크]

창동 맛집 삼겹살 맛집 노원 삼겹살 맛집 북청식당 약간 친숙한 삼겹살 집이다. "북청 식당" 엄마가 정육점 가서 진짜 좋은 고기 사서 꾸버주는 느낌? 사진보면 알수이땅.. 여기선 삼겹살밖에 안먹어바쯤 ㅎ_ㅎ 이 날은 더웠던 6월 이었다. 그치만 저녁은 선선해서 야외 테이블에 앉았다. 야외에서 고기꾸어먹을라고 오는 곳이다 여긴 ㅎㅎㅎ 마늘 고추를 사정없이 많이 주시고 미역국 무생채 파절이 등 반찬을 주신다. 근데 왜 엄마가 해주는 집밥 같냐면 자극적이지 않고 슴슴하다 (맛이 없다는게 아님) 내 최애 미역국 미역국이 기본 찬인 집들 너무 좋당ㅎㅎㅎㅎ 왜냐면.. 건강한 맛이라서 나능 좋아하니깡.. 자취 9년차로써 달래된장국과 오징어뭇국 같은건 하이클래스 집밥임으로 귀함 미역국 = 집밥 고로, 귀함 주문한 삼겹..

[병천맛집]"부부순대" 내가 32년 동안 먹은 순대는 김말이였다 [내부링크]

병천맛집 천안 여행 부부 순대 병천순대 맛집 충북s 중 충북대표의 한국 복귀로 모이게 되었다. (from 헝갈휘) 병천순대 들어만 봤지 첫 방문 병천이랑 지역 자체가 초면이다..두근.. 서울에서 천안까지 빠스를 타고 달려 천안에서 차 타고 20-30분이면 도착하는 쀼순대 이곳은 병천이라는 지역의 순대 골목이다. 그중 충북짱은 뿌순대 만 다닌다고 한다. 나는 사실 병천순대가 왜 병천순대인지 몰랐다. 김병천씨가 만든걸줄 알았는데 역시나 지역이름;;;; 하늘을 보면 알수 있듯 그렇게 늦은 시간은 아니였는데 주차장이 휑 했다. 주차장은 매우 넓은편 꼬바리 맛집공식에 따르면 주차장이 넓다 = 사람이 많이 온다 = 맛있다 왜냐면 우리가 들어가고 30초 후 사장님은 영업마감 간판을 업로드 하셨다. 휴 다행 일단 얼큰..

[MySQL] WITH 재귀(RECURSIVE) 쿼리 계층 구조 [내부링크]

주의 !! mysql 5.7 이하 미지원 WITH RECURSIVE 문 메모리 상에 가상의 테이블을 저장 재귀 쿼리를 이용하여 실제로 테이블을 생성하거나 데이터삽입(INSERT)을 하지 않아도 가상 테이블을 생성할 수 있다. WITH RECURSIVE 테이블명 AS( SELECT 초기값 AS 컬럼별명1 UNION ALL SELECT 컬럼별명1 계산식 FROM 테이블명 WHERE 제어문 ) 예시 h(컬럼)이 초기값 1 부터 제어문에 합당하는 5까지의 데이터를 갖는 가상 테이블 생성 WITH RECURSIVE CTE AS( SELECT 1 AS h UNION ALL SELECT h+1 FROM CTE WHERE h

[React] 화폐 단위 , 표시 [내부링크]

예를 들어 1000000을 화면에 표현시, 가독성이 떨어진다. 1,000,00 처럼 화폐단위로 출력 Number(price).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") 받아올 숫자 (ex.13000).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') price 가 String 값으면 Number함수 사용하여 숫자화 시켜준다.

Check the 'Function Name Parsing and Resolution' 오류 [내부링크]

쿼리에 이상이 없어 보이고, DB에선 잘 먹히는데? 싶지만 COUNT ^ (*) 띄어쓰기하나로 생기는 오류 , COUNT (*) AS count COUNT와 () 사이에 띄어쓰기를 지워주면 문제 해결 , COUNT(*) AS count

[장흥 나들이] "너나들이 장흥" 계곡느낌 물씬 어른들의 키즈카페 [내부링크]

장흥 장흥 계곡 추천 인스타에 추천 맛집으로 몇번 봤던 곳이다. 발을 담그고 백숙을 먹을수 있는 집이길래 냅다 달려갔다. (6월 초 쯤 방문) 예약 하지않았지만 아마 성수기땐 예약 필수일듯 내츄럴 앤드 자연 과 어우러진 인테리어 주차장은 식당 바로 앞에 이렇게 되어있다. 넓은 편 지금은 널널하지만 야외 테이블도 있다, 아마 사람많거나 하면 발 안담그고 이런 자리도 앉겠지 실제로 계곡 흐르는 물 위에 테이블을 깐게 아니라 인위적으로 만든 고인물이다. 고인물이지만 어항처럼 물을 순환시키는 설비를 설치해서 물이 돈다. 돌면서 정화도 하는지는 모르것다. 시원한 짤 아이스박스에 음료는 킹정 그렇탄다 바닥은 물이고 벽면에 불이 흐른다 내가 말한 순환계... un-isolated system이다. 자리를 잡고 앉으면..

[금호동맛집] "진미곱창" 야채곱창은 여기가 서울 통이야.. [내부링크]

금호동 맛집 야채곱창 맛집 야곱 가라사대 부추 핸접 금호동 시장 옆 골목에 위치한 "진미 곱창" 어쩌다 인스타에서 발견한 이후로...자주...방문하고있다. 자주 방문 한다는 건 맛있다는것 새벽 1-2시 넘어서 까지 사람이 항상 많은곳 저녁시간엔 방문해보지 못햇지만 북적북적 할것으로 예상된다. 물수건을 주신다. 외관만 봐도 알수있듯이 허름한 인테리어다. 이렇게 일부로 인테리어를 하신건 아니여 보인다. 가게 테이블사이사이 군데군데 사장님 개인 생활용품이있고 가정집 같ㄷㅏ ㅎㅎ 이건 테이블이아니라 밥상이다. 밥상이라 불러야 될꺼같다. 포장마차같은 삶은 메추리알~~~에 소금 그리고 오이 + 쌈장 이 너낌이 좋다 야채곱창 찍어먹 소스랑 양파도 주신다. 곱창에 양파를 한통을 먹었다. 몇번이나 더 달라하는지..미안했..

[상계동/노원 맛집]골목 안창살 [내부링크]

상계동 맛집 노원 맛집 골목 안창살 상계동 중앙시장에 있는 가성비 좋은 고기집이다. 집근처여서 가족모임때 종종 이용하곤 하지만 우리아빠는 정말 싫어하는 식당이다. (이유는 읽다보면 나옴) 골목안창살! 메뉴판 고기는 대부분 미국산 100프로 가족끼리 방문하며 안창살 2개 갈비살 2개 이렇게 주문한다. 아버지는 고기를 드실때 비빔냉면을 필수로 드심으로 미리 같이 주문한다. 냉동 고기지만 주문해야 그때 사장님께서 썰어주시고 숯불도 가져다주신다. 나는 이 식당이 좋은이유는 정겹고? , 맛도 있으며, 음식하시는 분의 음식솜씨가 괜찮다고 느끼기때문 먼저 기본 찬을 세팅해주신다. 특히 저 양념게장이 아주 맛도리 이다. 기본 찬은 세팅되었지만 주문한 음식은 나오지않는다. 아버지가 이식당을 싫어하는 이유다. 주문을 해도..

쿠팡 파트너스 추천인 코드 AF4217298 [내부링크]

추천인 코드 : AF4217298 추천인 입력시 1% 수익을 가입 한달간 추가로 받습니다. 쿠팡 파트너스로 활동시 포스팅에 꼭 대가성일환을 작성해주어야합니다. 게시글 작성 시, 아래 문구를 반드시 기재해 주세요. "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다." 쿠팡 파트너스의 활동은 공정거래위원회의 심사지침에 따라 추천, 보증인인 파트너스 회원과 당사의 경제적 이해관계에 대하여 공개하여야 합니다. https://link.coupang.com/a/mFFfK 저의 링크 입니다파트너스 이용하려면 꼭 쿠팡 가입후 파트너스 가입 하시길 추천드립니다. "내돈내산 구매 후기 입니다." "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

[MyBatis] 오류 Cause: java.lang.NumberFormatException: For input string: "N" [내부링크]

Cause : java.lang.NumberFormatException: For input string : "N" Mybatis에서 if문을 사용했는데 문자를 숫자로 인식했을 경우 발생되는 에러 이것을 이렇게 변경해주면 문제가 해결된다. 혹은 사용 가능 * 쌍따옴표와 따옴표의 순서 변경 *

[Java] excel poi 셀 배경색 지정 및 색 리스트 셀스타일 [내부링크]

자바로 poi를 사용하여 엑셀 파일을 생성할 경우 셀의 배경색 및 정렬, 테두리, 폰트를 설정하는 예제 입니다. 배경색을 지정할때는 setFillForegroundColor 로 설정한 후 setFillPattern 으로 HSSFCellStyle.SOLID_FOREGROUND 를 지정해 주어야 적용이 됩니다. //테이블 타이틀 스타일 CellStyle cellStyle_Title = xssfWb.createCellStyle(); cellStyle_Title.setBorderTop(BorderStyle.THIN); //테두리 위쪽 cellStyle_Title.setBorderBottom(BorderStyle.THIN); //테두리 아래쪽 cellStyle_Title.setBorderLeft(BorderSty..

XML에서 부등호 관련 에러 SAXParseException [내부링크]

XML파일 에서는 으로 감싸준다. 변경전 select member_bno, user_id, reg_date, viewcnt, title, rcnt, content, recommend from ( select recommend, member_bno, user_id, reg_date, viewcnt, title, rcnt, content from member_board order by recommend desc ) where rownum

moment.js 사용 방법 - JavaScript 날짜 라이브러리 [내부링크]

설치 npm install moment import import moment from "moment"; 사용법 현재 날짜 및 시간 - moment() var now = moment(); now.format(); // 2021-10-09T00:01:13+09:00 moment() 함수를 사용해 현재 날짜와 시간 객체를 생성할 수 있습니다. 날짜 지정 생성 - moment() var date = moment("2021-10-09"); date.format();// 2021-10-09T00:00:00+09:00 var date = moment("2021.10.09", "YYYY.MM.DD"); date.format();// 2021-10-09T00:00:00+09:00 var date = momen..

[mySql] 24시간 시간 출력 [내부링크]

시간 데이터를 outer 조인 해서 데이터를 뽑을때, 시간을 순서대로 출력하는 쿼리입니다. SELECT @N := @N +1 AS n , DATE_FORMAT( DATE_ADD( '1000-01-01', interval @N -1 HOUR),'%H:00:00') as yyyymmdd FROM (TB_ALARM_BREAKDOWN tab), (SELECT @N:=0 FROM dual ) a LIMIT 24 해당 쿼리 실행시, 아래 24줄 row 출력

[javaScript] 날짜 일자 차이 / 개월수 차이 구하기 [내부링크]

일자 차이 구하기 - 문제 : 2월의 경우 데이터 정확성 떨어짐 //날짜 최대 31일 세팅 const start_date_arr = startDate.split("-"); const end_date_arr = endDate.split("-"); const s_date = new Date(start_date_arr[0],start_date_arr[1],start_date_arr[2]); const e_date = new Date(end_date_arr[0],end_date_arr[1],end_date_arr[2]); const btMs = e_date.getTime() - s_date.getTime() ; const btDay = btMs / (1000*60*60*24) ; //일수차이 문제: 2월의 경..

[논현역 맛집] "신이주신 선물 오리고기 싸고 맛있는 집" 훈제말고 생오리는 여기징~~ [내부링크]

오리고기 전문 논현 맛집 논현 회식 장소 추천 어느덧 강의 남쪽 지역에서 산지 9년차가 되었다. 언주역 (언주역 지하철이 없었을 시절 살았다고 하면 다들 놀램 ) -> 반포동 -> 반포동 반포동에서 이사를 한번더 갔으니까 반포동에서만 7-8년 살았다. 이곳이 나의 바리바리 나와바리 라고 할수있는데 엄마가 가끔 우리집을 방문할때마다 자주 오던 오리고기 맛집이다. 물론 푸짐이랑도 함께 자주갔다. 가격이 좀 올랐다 처음왔을때보다 오리고기를주문한다. 2명이서 하나 주문하면된다 2-3명 정도 양 될듯 혼밥은 못하는 곳이다. 회식하시는분들 가족끼리 친구들끼리 아주 사람이 바글바글하다. 오리고기의 느끼함을 잡아줄 양파절임 그리고 사진에 보는것보다 엄청나게 큰 그릇인데 각자 주신다. 인당으로 주셔서 열정많은 사장님께서..

[상계/노원 맛집] OK정육식당 - 가성비수입산 와규 ! [내부링크]

노원 상계 맛집 OK정육식당 위치는 지도를 꼭 참고! 정확 명칭은 OK축산물직판장 이리 검색해야한다. 정육 식당처럼 먹고 실내도 있고 실외자리도 있다 가끔 이런곳에서 기분내기 좋다. 나에게는 초등학교 동창이자, 푸짐이에겐 동네 선배인 해태가 소고기를 사준다기에 불이나케~~~~달려가~~~따 나란 속물 골목 골목 야무지게 들어가면 찾을수있는 정육식당 한우는 아니고 호주산 와규 전문이다 정육 식당이라 가격도 저렴한편이다. 식당이지만 주문은 정육점처럼 고기를 골라서 자리 찾아서 앉으면된다. 정육점 불빛 화려한 조명이 나를 감싼다. 등심도 부채살도 그냥 다 있다. 야외앉을까? 이러더니 사장님께 말씀 드렸다. 그럼 없던 자리가 생긴다 버섯이랑 내가고른 고기 세튕!!!~~ 기본 찬들도 주십니다! 야외 자리라서 시원하..

[남양주 맛집] "소리소 시골밥상" 가족 나들이 & 근교 데이트 왕왕강추 [내부링크]

남양주 맛집 소리소 남양주 최애 맛집 & 추억많은 식당 중 하나 맛있기 때문에 -> 추억이 많음 추억이 많다 -> 맛있고 좋으니까 자주 방문 닭이먼저냐 알이먼저냐 수준 푸짐이랑 사귀기전.. 푸짐이가 나한테 누나라고 불렀던시절 2번째 만남에 데리고갔던 소리소 새벽까지 영업하며...산책로도있고..장작불도 태와주공...옆에 폭포도 있공,, 커피샾도 있꽁.. 들어가면 밥도 먹고 산책도 하고 커피도 마시는 공간 주문은 시골밥상(오리정식) 2인 처음 엔 쌀 없이 먹을수 있는 샐러드 전 묵류의 한식애피타이저가 나온다. 샐러드 묵무침 두부샐러드 전 떡 등등 이 나온다 먹다보면 본격 식시류가 나오는데! 훈제 오리를 중심으로 왼쪽 반찬 오른쪽 반찬을 세팅해주신다! 풀샷! 훈제오리 고기 가 철판에 나오고 김치류 나물류 가자..

[Chart JS] 도넛 그래프 굵기 변경 _ "react-chartjs-2" [내부링크]

chart js 로 도넛 그래프 생성하는 예제입니다. 주목하실점은 저의 경우 import { Doughnut } from 'react-chartjs-2'; 를 임포트 하였습니다. 구글링과 정식 페이지에선 도넛의 굵기 조절을 option에서 cutoutPercentage / percentageInnerCutout 를 사용해서 조절하지만 문제는 안먹혔습니다. 찾고 찾고 또 같아서 option이 아닌 data에 설정 해주는걸 찾았습니다 const data = { plugins: [ChartDataLabels], // 라인 이나 막대에 data 값 출력 labels:labelData, datasets: [ { label: 'pieData', data: pieData, backgroundColor :objColo..

[Chart.js] options 설정 - bar 두께 조절 및 다양한 옵션 [내부링크]

코드내에 주석으로 각 옵션에 대한 설명을 추가했다 공식사이트에 설명이 불친절 했기에 라이브러리 사용시 도움이 되길 바란다. const options = { spanGaps: true, // line 타입의 경우 중간에 누락된 데이터가 있을 경우 이어그릴지 여부를 정합니다! maxBarThickness: 10, // bar 타입의 경우 막대의 최대 굵기를 정합니다! grouped: true, // x축 값이 같은 애들끼리 그룹화할지를 정하는데요, // true 설정 시 해당 x축 값내에서 서로 공간을 나누면서 나란히 보여지게 되고, // false 설정 시 각 포인트가 해당 x축 정중앙에 그려지게 되어서 x축 값이 같은 애들끼리 서로 겹쳐지게 됩니다. interaction: { mode: 'index', ..

[문교 오일파스텔] 어른 취미생활 추천 48색 후기 [내부링크]

쿠팡에서 8,000원 배송비 3,000원 해서 총 11,000원에 깔꼼 하게 구매했다. 아가용 크레파스는 좀 거친 기분이 들어서 "오일" 파스텔 을 찾아보다 문교가 가장 유명! 두근두근 확실히 아가 크레파스는 케이스가.. 손잡이도 있고 플라스틱 홀더 인데 문교 는 종이 케이스 이다. 72색 이상 부터는 돈만 더 쓴다면 우드 케이스 를 구매할수있는데 인기가 굉장히 많다. 조금더 다양한 색상 색은 채도가 높고 밝은 느낌이다. 아련하고 청순한 느낌을 원헀는데 색이 조금더 다양해야할듯 싶다. 나는 엄청난 초보 화가 이므로 대부분 하늘을 그리는데 아련한 하늘색과 보라색이 아쉽고 되려 나무표현에 필요한 갈색과 초록색의 종류가 다양해 보였다. 회색 밝은 컬러도 너무 어두운 편이었다, 아이패드로 유투브를 틀어놓고 내가..

[Java]두 날짜 사이의 개월 수 구하기 [내부링크]

SimpleDateFormat df_Start = new SimpleDateFormat("yyyy-MM"); Date date_start = df_Start.parse(yyyymmStart); SimpleDateFormat df_end = new SimpleDateFormat("yyyy-MM"); Date date_end = df_end.parse(yyyymmEnd); long diff = date_end.getTime() - date_start.getTime(); int result = (int) ((diff / 1000) / 60 / 60 / 24 / 30); int sYear = Integer.parseInt(aa.substring(0, 4)); int sMonth = Integer.parseInt..

[Java] 파일 다운로드 - 2가지 방식 [내부링크]

방법 1 - response Flush 더보기 @Controller public class CommonController { @Resource(name="commonService") private CommonService commonService; @RequestMapping(value="/common/downloadFile.do") public void downloadFile(CommandMap commandMap, HttpServletResponse response) throws Exception{ Map map = commonService.selectFileInfo(commandMap.getMap()); String original_File_Name = (String)map.get("ORIGINA..

[Java]XSSFWorkbook 서버/로컬에 저장 않고 다운로드 [내부링크]

controller단에선 값을받아서 전달만 하고 직접적인 기능은 service단에서 처리 public void eventExcalDownload(HttpServletRequest request,HttpServletResponse response,EventVO eventVO) throws Exception { LOG.debug(">>> 엑셀 다운로드 시작."); XSSFWorkbook xssfWb = new XSSFWorkbook(); //.xlsx 확장자 지원 //엑셀 만드는 로직 (추가 해야함) makeExcel_eventPage(xssfWb,eventVO); //컨텐츠 타입과 파일명 지정 response.reset(); response.setContentType("application/vnd.ms-e..

[JAVA]브라우저별 한글 파일명 인코딩 _ excel파일 [내부링크]

서버에서 프론트로 파일을 전송할 때 한글로 파일명을 보내면 깨지는 경우가 다반사입니다. 따라서 아래 로직과 같이 User-Agent header 값을 가져와서 브라우저 별로 인코딩을 해 줘야 한글이 깨지지 않고 정상 출력이 됩니다. String fileName = "한글파일명"; String name = "출력될파명이름"; // 브라우저 별 한글 인코딩 String header = request.getHeader("User-Agent"); if (header.contains("Edge")){ name = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20"); response.setHeader("Content-Disposition", "attachm..

[성수맛집] "평이담백뼈칼국수" 감자탕이랑 칼국수 둘다 먹고싶을때... [내부링크]

성수 맛집 칼국수맛집 평이담백 뼈 칼국수 성수점 푸짐이가 인스타에서 보고 엄청난 비줠의 맛집을 찾았다며 주말까지 기다렸다가 냅다 달려갔다. 서울에선 멀지도 않공~ 가기 좋은 거리 예전에도 뼈칼국수 먹어본적있는데 파주에서 줄서가면서 엄청 맛있게 먹었던 기억.. 평이 담백 뼈 칼국수는 체인이다. 아마 파주에서 그집이 인기가 많아서 체인으로 다른 브랜드가 가져온듯 주문하면 기본 세팅이 나온다 그릇이 세트로 이쁘게 나온다 그래서 음식이 더 맛있게 느껴지는듯 주문은 뼈칼국수 / 비빔칼국수 / 만두 기본세팅 반찬 기본에 충실 김치가 맛있었음 칼국수 김치 김치가 참 맛도리 뼈칼각수의 뼈를 찍어먹으라고 마늘장 소스가 나오는데 짜거나 자극적이지않고 맛있다. 작은 그릇에 육수를 주시는데 %이건 비빔국수를 시키면 나온다 %..

[JAVA] 간단한 폴더 존재여부 확인 [내부링크]

해당 경로가 존재 하지 않을 경우가 있음으로, File Folder = new File(savePath); if (!Folder.exists()) { Folder.mkdir(); //폴더 생성 } 해당 폴더가 존재하지않으면 생성하는 간단코드 추가로 문제 방지 및 해결

[JAVA]파일을 멀티파트로 변환 [내부링크]

일반 파일이나, 생성한 파일을 멀티파트로 변환 하는 코드 File file = new File(savePath+"/"+fileName); 저장된 파일을 읽어드리고 DiskFileItem 를 사용하여 변환한다. DiskFileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length() , file.getParentFile()); InputStream input = new FileInputStream(file); OutputStream os = fileItem.getOutputStream(); IOUtils.copy(input, os); Multipa..

[모나미 모나주 크레파스] 36색 구매 후기 _ 크레파스로 그림그리기 취미 [내부링크]

요즘 유투브에서 핫한 오일 파스텔로 그림그리기 오일리한 크레파스라고 생각하면 될거같다. "문교" 제품이 가장 유명하다. 유튜브로 쉽게 그리는 고수님들의 솜씨를 보고 심장이 뛰었다. 나도..나도...나도...그리고싶어 처음부터 부담스러운 가격으로 장비빨을 세우기엔 실패 경험이 많았음으로 다이소 에서 크레파스를 구매하려했다. 다이소엔 12색크레파스 2개입 = 3,000원 장비빨을 세우지 않겠다 다짐했짐나 12색으로 내마음을 채울순 없었다. 대신 다이소에서 스케치북 = 1,000원 (작은사이즈/초보자들에게 정말 충분하다. 마냥 크면 그릴것도 없다) 마스킹테이프 = 1,000원 이렇게 구매했다. 나는 쿠팡 중독자 임으로, 쿠팡에서 모나이 모나주 유아용 크레파스를 구매 배송비 포함 인데 36색에 삼천원대.. 굉장..

[노원/상계 돈까스]온달돈까스 - 추억은 추억으로 남겨두자 솔직후기 [내부링크]

노원/상계 맛집 온달 돈까스 바야흐로.. 20년전 나는 born to be 노원 상계동 출신 꼬마로써 그당시 용돈은 매우 매우 적었으니까 2004년... 백원 이백원씩 모아서 2,900원이 되면 친구들이랑 삼삼오오 모여서 잡쉈던 왕돈까스 상계동 사람이라면 다들 안다는 온달 돈까스 이다. 그때 당시 이게 그렇게 먹고싶었는데 2900원이 없었다. 우리동네 최고 맛집이라 불렸던 곳 - 그당시;; 상계역 돈까스는 2톱 체제 였는데 온달 vs 용만이네 왕돈까스를 먹던 14살이 32살이 되어 방문했다. 가게위치가 살짝 바뀌었고 가격 또한 세월에 영향을 당연히 받아 변하였다. 그래도 요즘 돈까스 제대로 하는집 가면 만원은 넘는데 여전히 저렴한 편 주문은 치치정식 / 모듬정식 그리고 500원 추가해서 순두부를 시켰다...

[React] apexcharts 를 이용한 도넛 그래프 예제 [내부링크]

저는 실제 데이터를 받아와서 출력했습니다. (아래 코드는 임의 데이터 넣은것) 퍼센테이지로 출력되며 hover시, 데이터라벨명과 값이 tooltip으로 출력됩니다. 도넛 가운데 total 카운트 도 출력되는 예제입니다. 리액트 그래프 라이브러리중 간결하며 사용하기 좋은 라이브러리 입니다. 라이브러리 사용하여, 도넛 그래프 출력 npm install / import import ReactApexChart from "react-apexcharts"; //npm install react-apexcharts apexcharts script 코드 //도넛 차트 데이터 및 옵션 const donutData = { series: [50,40,30,10,0], options: { chart: { type: 'don..

[mySql] 특정 기간 조회 / 데이터가 없는 날엔 0 처리 [내부링크]

특정 기간 조회시 , 데이터가 있는 날짜는 출력되지만 데이터가 없는 날을 그룹바이 하면 중간중간 날짜가 빵꾸가 납니다. 날짜를 Right Join 걸어 주어 null일시, 0을 출력해주는 예제입니다. 실제는..작업하는 프로젝트 코드임으로 T200의 경우 날짜가 포함된 다른 코드로 변경했습니다. T200에는 걸어줄 쿼리를 널어주면 됩니다. SELECT T200.yyyymmdd AS date IFNULL(T300.cnt, 0) FROM ( select date_format(publish_time, '%Y-%m-%d')as yyyymmdd, count(*) cnt from sample where publish_time between '2019-06-03 00:00:00' and '2019-08-04 23:59..

[영종도맛집 ] "짱구네" 엄청난 비쥬얼에 건강한 맛 [내부링크]

영종도 맛집 낙지 맛집 짱구네 서울 근교 공항 근처 맛집 으로 유명한 "짱구네" 헝가뤼 가는 친구가 비행기 결항으로 들린 맛집 비쥬얼이 엄청나길래 주말에 냅다 방문했다. 메뉴판은 단조롭다 빨간거 = 낙지 볶음 하얀거 = 연포탕 이런 개념인듯 싶다.. 주문하자마자 10초만에 기본베이스가 세팅된다. 테이블도 엄청 깨끗하고 손님이 굉장히 많은편인데 가스버너 아래까지 깨끗해서 좋았다. 아직은 돼지고기만 있을뿐 메인인 낙지는 없다. 주문과 동시에 나오는 밑반찬 김치와 물김치 물을 물병으로 주시는게 좋았다. 빨간 전골에 물김치 조합 은 국룰이다. 주방 앞에 수족관이있다. 저 수족관에 낙지들이 살아서 ㅜㅜ 살고 있는데 주문하고 빨간베이스가 끓으면 직원분께서 바로 낙지를 낚아서 옆에서 깨끗하게 씻어서 우리 전골로 넣어..

[별내맛집] 잔치는 돈까스징~~~ "돈까스잔치" 파라곤스퀘어 맛집 [내부링크]

별내 맛집 파라곤 스퀘어 별내 맛집 돈까스 잔치 별내 파라곤 스퀘어 맞은편 음식점이다. 이곳은 전참시 이영자매니져님께서 오셔서 유명한곳 파라곤스퀘어 근처 사실 먹을게 없어도 너무없다 파라곤 스퀘어를 주기적으로 방문하는데는 이유가있다. 바로 우리 똥깡아지! "쿠키" 마용 남자친구의 지인분이 애견미용을 하셔서 별내 파라곤 스퀘어로 방문하게되었다. 올때마다 3시간씩 시간이 있는데 근처에 밥집이 없어서 차타고 멀리 나가고 했었다. 이번엔 이 근처에서 찾아보자! 해서 일단 걸었다. 바로 맞은편 엄청 큰 건물이었고 건물이 크다 = 비싼 임대료 = 유지하려면 손님이 많다 = 맛집 꼬바리 맛집공식에 해당하였기에 "돈까스잔치"를 들어가보았다. 세상에 자리가 없을정도로 꽉찼었다. 밖에 유리가 어두워서 몰라썽. 바로 왕돈까..

[논현맛집] 김선생 조개찜 - 논현동 술한잔 하기 좋은곳 [내부링크]

조개찜 맛집 영동시장 맛집 김선생조개찜 이 동네는 회식 및 젊은 층들의 약속 장소로 유명한 곳이다. 논현동 영동시장 왜 영동인지는 모르겠으나 강남에서 방귀 좀 꼈다는 친구들이 모이는곳 오늘 오랜만에 약속이있었고 내가 회사가 늦게 끝나는 관계로 친구가 이쪽동네로 와주었다. 원래는 1순위 : 영동소금구이 2순위 : 광주육전 배도 고프고 빨리 먹고싶어서 방문했다 사람이 엄청 많았다.맛집이라는 소리 이주전 조개구이를 먹으러 가서 맛잇게 먹고 난 앞으로 1년동안 조개를 먹지않겠다 다짐했다 2주만에 와장창 그 다짐 셀프로 깨버림ㅋ 나중에 보니 조갈찜도 있다 조개 + 갈비 무슨 조합인가 싶지만, 인기가 있는듯 나는 걍 들어가자마자 자연스레 조개찜 소자 주세요~~ (2인이니까) 생각보다 큰 양동이에 조개찜이 나왔다. ..

[도무스 낭만그릴] 1인가구/캠핑 그릴 "낭만그릴" 솔직후기 [내부링크]

1인 가구로 산지 어언 9년.. 배달음식도 별로 안좋아하고 혼자 치킨시키면 일주일은 먹고 피자는 버리는게 태반이라 안시켜먹던 내가.. 먹을줄 아는놈(푸짐이, 1600日ing)을 만나 하루종일 먹는것만 생각한다. 주말에 남자친구랑 함께 고기 먹을 생각에 너무너무 행복 여기 저기 다 찾아보고 가격비교 했는데 가장 저렴했던 쿠팡 진짜 저렴한편 후라이빵도 저가격보다 비쌀텐데 뚜껑 없는 제품은 심지어 더 저렴하다. 나는 색도 민트색이 갖고싶었다. 배송은 역시 쿠팡..멤버십.. 한번 빠지면 재산 탕진 해도 모른다는 그 쿠팡..짜릿해 결제도 등록하면 진짜 빨라서 살까말까 고민할때, 취소 누를 새도 없이 결제완료가 된다. 엄청난 속도로 도착한 도무스 낭만그릴 포장도 무슨 신발집 처럼 깰꼼 하다. 구성품 처음엔 대체 이..

[코로나/오미크론 부작용] 자가격리 해제 후.. 부작용 "이석증" [내부링크]

라떼는 자가격리가 6일이었다. 7일도 아니고 5일도 아니고 6일? 싶을수 있는데 저땐 격리 해제가 정확히 언제입니까 국가기관에 전화를해도.. "아직 정부지침이 내려오지않아서.." 라는 답변만 받았다. 격리해제가 정확히 언제인지 모르고 지내다가 밤 12:00 즈음 격리해제를 받게되었다. 일주일동안의 쓰레기들을 한번에 버리는순간 소독 스프레이를 쓰레기전체에 구석구석뿌리고 나한테도 뿌리고 새벽에 쓰레기를 버렸다. 격리 해제 가 되었다는 서류와 6개월동안 백신을 맞지 않고 백신패스가 된다는 서류를 핸드폰 문자로 받았다. 심한 감기에 걸렸다 나은거 처럼 몸이 개운했고 코로나 격리해제후 5일이 지난 시점에 나는 부작용중 하나인 "이석증" 진단을 받았다. 새벽2시쯤 자다가 하늘이 핑핑 돌고 어지러움을 느껴 깨게 되었..

[React] 스페이스바 안먹히는 오류 - 개인적 기록 [내부링크]

프로젝트를 앞단은 React로 진행하게되었다. input 박스에 스페이스(공백) 이 안먹히는 오류가 생겨서 아무리 구글링을 해도 찾을 수가 없었다. 공백이 안먹히길래 아마 리액트 언어의 문제일꺼라고 생각했다 ( 말도안되지만 이런 생각을 하게된것이..스페이스바가 안먹힐 이유가없었다) 리액트를 사용하면서도 가끔 제이쿼리를 쓰기도 한다. 첫 페이지가 로그인 페이지로 되어있는데 아이디와 패스워드에 공백이 포함되만 안됨으로, 이렇게 keyCode를 받아서 방지처리를 해주었다. 리액트는 한페이지내에서 컴포넌트들을 호출하는 언어이다. 로그인할떄 저 코드하나로 모든 페이지에서 스페이스 바가 안먹혔던 것이다. 가끔 스페이스바 가 가능 할때도 있엇는데 그땐 새로고침 하여 로그인 로직이 아닌 자동로그인 로직을 타고 들어왔을..

[포천맛집/오리 맛집] “고향나들이” 오리케이크를 먹고싶다면 [내부링크]

포천 맛집 오리 맛집 서울 근교 맛집 포천 첫 방문! 내가 살면서 포천을 와봤등가~~ 오리고기를 먹으러 떠난 맛집이다. 서울 근교지만 서울에서도 꽤 거리가 있다. 엄청난 맛집임을 알 수 있는 것이 건물을 싹 리모델링했다고 한다. 그리고 찻길을 중심으로 1호점 2호점이 나눠져 있다. 주차장도 널찍하게 잘되어있다 방문객이 많은 듯싶다. 그게 무슨 뜻이냐~~~ 꼬바리 공식에 따르면, 오리를 팔아서 건물을 세웠다 = 맛집이다. 우리는 3인이지만 배운 돼지임으로 한 마리를 시켰다. 남은 면 포장하면 되지! 또 돌솥밥 3개 시킨다는 거 뜯어말려서 돌솥밥 1개 주문 +맥주 한 병 까지 주문과 동시에 결제는 선불이다. 어느 누군가가 먹고 도망간 적이 많나 보다 ;; 사장님의 슬픈 추억이 담긴 결제 순서 랄까? 곧이어 ..

[압구정/베이징덕]”베이징덕” 자네 북경 오리 먹어봤는가? [내부링크]

압구정 맛집 압구정 베이징덕 북경오리 맛집 푸짐이가 오늘은 특별한걸 먹고 싶다며 자꾸 나를 밖으로 끌어내려고 수 쓴다. 나는 힉힉호무리 기 때문에 집이 됴하 그치만 먹는걸로 꼬시면 쉽게 넘어가는 쉬운 인간 푸짐이는 북경오리를 안먹어봤다 강남 근처 베이징덕 맛집 검색후 찾아가게된 압구정 베이징덕! 간판에 이렇게 적혀 있었다. 압구정 역에 바로 위치 해 있고 압구정 현대백화점과 대각선으로 자리했다. 주문은 베이징덕 반마리 Xo게살볶음밥 메밀국수 주문 후 나오는 밑반찬들이다. 개인당 으로 주는 국물 (?) 과 양배추 짱아찌 중국음식이라 그런지 중국 느낌이 나는 반찬들이다. 양꼬치집에서 볼수 있는 저 국이 진짜 치명적이다. 조금 시간이 지나면 준비해주시는 베이징덕 반마리 사진으로 사이즈는 작아보이나 적은 양은 ..

[오이이도 맛집/조개구이] "조개포차" 조개로 건물을 세운 맛집 [내부링크]

오이도맛집 조개구이 맛집 "조개포차" 어느날.. 인터넷을 뒤적이다 조개구이맛집을 보고 달려가게된 "조개포차" 난 3n년동안 조개구이 = 을왕리 라는 공식에 사로잡혀 언제나 을왕리 앞바다 호객행위 많이하는 그곳에서 조개구이를 먹곤했다. 조개포차를 가자! 하고 당연하게도 을왕리를 찍고 달려가는데 등골이 오싹 하길래 다시 확인해보니 나의 편견.. 을왕리가 아닌 "오이도"였ㄷㅏ 내평생 4호선 끈자락 당고개를 가봤어도(학창시절 노원구 살았음) 오이도는 처음.. 혹시나 처음 방문하는 곳에 누가 되지않을까 걱정하며... 달려가보았다. 그리고 출발하면서 네이버 예약도 해따 꼭 해야한다. 왜냐면 서비스 주니ㄲㅔ 우리가 어떤 민족인가 리뷰이벤트나 예약서비스라면 눈에 불을 키고 달려드는 불나방 같은 민족 아닌가 도착예정시간..

[MySQL] 오늘기준 - 하루/일주일/한달 최신 데이터 가져오기 [내부링크]

하루 SELECT COLUMN1,2.... FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 DAY ) AND NOW(); 일주일 SELECT COLUMN1,2.... FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 WEEK ) AND NOW(); 한달 SELECT COLUMN1,2.... FROM TABLE WHERE DATE_COLUMN BETWEEN DATE_ADD(NOW(),INTERVAL -1 MONTH ) AND NOW();

[jQuery] e.preventDefault() 의미 [내부링크]

box1 box2 box3 -------------------------------------------- $(function(){ $(".btns li").on("click",function(e){ e.preventDefault(); var i = $(this).index(); //alert(i); $(".btns li a").removeClass("on"); $(".btns li").eq(i).children("a").addClass("on"); }); }); e.preventDefault(); - 이벤트의 기본기능을 막는 것으로 생각하면 된다. 위 소스를 예로 들면 클릭했을때 href로 설정되어있는 주소로 바로 이동하는 것이 아니라 e.preventDefault(); 로 우선 이벤트를 멈춘 후 js..

[React] history.push()로 props 데이터 넘겨주기 [내부링크]

부모-자식 component 관계가 아닌, routing으로 특정 페이지에서 다른 페이지로 이동 할때도 props를 넘겨 줄 수 있는 아주 간단한 방법이 있다. ( Function Component 기준 ) 1. 일반적인 history.push() 사용법 'Prev' 컴포넌트 에서 'Next' 컴포넌트로 이동 {history.push("/Next")}} /> 2. history.push()로 props 활용하기 2-1. history.push()로 props를 넘겨주는 방법 Prev 의 'displays' state를 Next 로 이동시 props로 넘겨주기 import { useHistory } from "react-router"; const history = useHistory(); {history...

[java] 임시 비밀번호 생성 Random / SecureRandom /RandomStringUtils) [내부링크]

java.util.Random 클래스는 난수를 생성할 때 seed값으로 시간을 이용합니다. 그래서 동일한 시간에 Random 클래스를 사용하여 난수를 사용하면 동일한 값이 리턴됩니다. 예측 가능한 난수를 사용하는 경우 공격자가 SW에서 생성되는 다음 숫자를 예상하여 시스템을 공격할 수 있습니다. 시큐어코딩 가이드 - SW 보안약점 47개 항목 중 적절하지 않은 난수 값 사용 (Use of Insufficiently Random Values)에 해당됩니다. 반면에 java.security.SecureRandom 클래스는 예측할 수 없는 seed를 이용하여 강력한 난수를 생성합니다. 임시 비밀번호 생성 getRamdomPassword(10)를 호출하면 10 글자의 임시비밀번호가 생성됩니다. import ja..

셀프 브로우펌 - 속눈썹펌 키트로 브로우펌 하기 [클리오네 셀프 속눈썹 펌 키트] [내부링크]

코로나 자가격리로 혼자 시간보내기의 달인이되었다. 속눈썹 펌은 하면 만족도 최강 But, 유지기간이 짧고 (2주정도) 짧은 유지 기간에 비해 가격이 쎈편 (3-5만) 고로 , 나는 슈퍼 집순이 속눈썹펌은 항상 집에서 셀프로 진행하였다. 그래서 집에 속눈썹 연장 키트를 구매하여 가지고 있다. 1제,2제 화장품 샘플처럼 소량 담겨있고 한 봉다리(?) 따면 2-3번은 할수 있는 양이다. 2020.11월에 구매한 5회용을 아직도 쓰고 있다 클리오네 를 구매한것은 별다른 이유가 없다. 후기 많고 저렴해서 저 가격에 할인받아 14,400₩ 에 구매 클리오네 키트는 특별하게 엄청 좋고 엄청 나쁘다는 것 없이 잘 사용중이다. 요즘 속눈썹이 아닌 눈썹 =브로우 브로우리프트펌 이 유행 이다. 눈썹을 위로 올려서 결을 살리..

[22.02.13] 격리 3일차 / 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.13 증상발현 6일차 격리3일차 아침에 눈을 뜨니 엄청 아프다가 다 나으면 개운한 느낌 그 느낌이 몸에서 났다. 모든기능 정상 / 호흡도 정상으로 돌아옴 오미크론은 3-5일 감기 처럼 아프다더니! 딱 그말이 맞았다. 어떤 사람은 약한 감기 라던데 난 구토와 호흡이 불편한 독감 이었다 ㅜㅜ 평소에도 골골거리는 스타일이라.... 요 몇일 지인들이 이것저것 보내주고 걱정해주어 엄청 먹었다. 온몸이 부은 느낌 답답하다. 3일동안은 쓰레기도 못버리고 문앞을 나선적 없고 6일동안은 병원 + 선별진료소 만 갔기에 아무도 안만나고.. 매우 답답 증상발현 6일차 - 정상 - 가장 불편했던 호흡도 정상 이제 몸상태는 정상으로 돌아왔으니 특별한 사건만 없다면 포스팅은 마지막 격리해제 포스팅으로 돌아오겠다.

[22.02.12] 격리 2일차 / 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.12 증상발현 5일차 격리2일차 아침에 눈을뜨니, 목이 많이 가라 앉았다. 남자친구 잘먹어야 한다며 집문앞에 음식을 놔주고 친구들이 택배를 보내주었다. (너무 미안하고 고맙다) 아플땐 잘먹어야한다며.. 이렇게 가다간 격리해제 7일차에 개뚱땡이로 밖을 나설거 같다. 격리2일차 증상발현 5일차 상태 - 오후쯤 되니 인후통이 거의 사라짐 - 목소리는 여전히 남자 - 콧물 및 가래 아주 조금 - 호흡은 여전히 불편 ( 소독된 수영장 물 먹은 상태 로 수영장 물속에서 숨쉬는 기분) - 맛 잘남 - 냄새 긴가 민가 -두통 없음 - 열 없음 코로나가 3-5일 정도 아프고 낫는다는데 정확한거같다. 격리는 고작 2일차지만 증상은 5일 차인데 호흡 불편한거 빼고 거의다 좋아졌다.

[22.02.11] 격리 1일차 / 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.11 증상발현 4일차 확진/격리 1일차 어제부터 예상해서 더이상 놀랍지도 않다. PCR검사후 결과는 9시 이전에 왔었는데 9시가 넘어도 결과가 오지않아 불안했다. 9:45AM 결과가 나왔다. 예상했지만, 결국 양성 이 문자를 가족들에게 전달하면 가족들도 PCR검사가 가능하다고 한다. 나는 혼자 살기에.. 전달 할 사람이 없다. (TMI : 나는 서초 보건소와 운명인가? 보건소 전화번호가 내 핸드폰 번호와 한부분이 같다. ) 그리고 보건소 에서 전화가 온다. (이 전화를 못받으면 또 엄청 기다려야한다고 한다...) 설명을 듣고.. 궁금한것을 질문했다. 기존 현재 자가격리 키트 배송 없음 어플 다운후 격리/상태 관리 없음 격리 해제전 자가진단키트 발송 없음 기존 국가에서 관리해 주던 모든게 없었고..

[22.02.10]확진 1일 전 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.10 증상발현 3일차 확진 1일 전 나는 아프지만, 재택근무기에 아침에 눈뜨자마자 병원 병문은 불가했다. 자고 일어나서 정말 죽을꺼같았다. 목이 찢어지게 아프고, 기침에 구토증상까지 12:30PM이 점심 시작이었다..(죽을듯 아팠지만.. 나는 확진자도 아니고... 재택근무 였기에) 팀장님에게 이런이런 증상을 보고하고 이비인후과를 방문하였다. 병원에 전화했을때, 12:40분까지 만 오면 진료 볼수 있다길래 숨헐떡 거리며 겨우 방문했는데.. (12:38 도착) 늦었다고 안된다고 돌아가랜다.....ㅡㅡ 겨우 사정사정 부탁 드렸다. 지금 아니면 퇴근하고 방문해야하고 퇴근하고 방문하면 PCR검사도 못받으러 간다.. 결국 타협점은 의사선생님은 만나지 못했고, 의심증상자 진단서 를 받았다. 의사 진료 없이..

[22.02.09]사건발생 2일 전 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.09 증상 발현 2일차 이날까지도 음성 이라는 확신을 갖고 있었다. 어젠 인후통이 있었지만, 몸이 조금 피곤하면 목이 자주 부었기에 별 신경 쓰지 않았다. 아침부터 재택근무를 시작했고, 퇴근 6:30에 안과와 이비인후과 방문을 계획하고있었다 징그럼 주의 눈의 혈관의 피는 퍼져서 눈 아래까지 흘렀다. 그치만 아프진 않았다. 목의 인후통은 자고 일어난후, 상당히 심해져 목소리가 남자 목소리로 변했다. 퇴근후 이비인후과는 접수 마감 되었다 하여 방문하지 못했다. (이비인후과가 더 중요한것 이었는데 ㅠㅠ) 눈은 소중하니까 다행이다 이렇게 생각했던 내 자신이 바보같다. 이날은 퇴근 후 남자친구를 만나기로 한 날이었다. 남자친구는 우리집으로 출발하고 있었고, 나는 음성이니까 코로나 아니야 ! 이런 생각으..

[22.02.08]사건발생 3일 전 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

22.02.08 어제 신속항원검사로 셀프 검사를 완료했고 음성이라는 문자를 받았다. 사진에도 보이듯이 한두번 검사를 해본게 아니였다... 회사에 음성 임을 제출했고 몸상태도 아무 문제 없었다. %징그럼 주의 % 눈에 상처가 나서 혈관이 터졌었다. 이런적은 또 처음.. 지금와서 생각하지만 이게 바이러스 때문일수도 있겠다 생각한다. 백신 2차때 이상증상자 였는데 콧속 입속 목속 온몸의 점막의 혈관이 다 터졌었다. 눈 혈관이 터져 불편함은 있었지만, 몸에 이상은 없었다. 사내 확진자로 인해 사무실은 소독 되어있었다. 점심이 지나고 오후쯤 새로운 공지가 떴다. 내일부터 재택 근무로 변경 되었다. 회사 밀접첩족자들이 확진이 되었다고 한다. 그 확진자분과는 나는 개인적으로 아는 사이가 아니며, 대화를 나눠본적이 한..

[22.02.07]사건발생 4일 전 현실적인 코로나-오미크론 자가격리 후기 [내부링크]

세상에서 제일 힘든 월요일 출근.. (사건 발생 4일전) 월요일은 원래 쎄해서 눈치 채지 못했다. 2022.02.07 월 사내 코로나 확진자가 발생 점심 즈음 사내 공지가 올라왔다. 조기퇴근+ 검사 검사를 받고 제출을 해야했기에 바로 근처 선별 진료소로 갔다. 나는 pcr 을 해야하는데 밀접첩족자 라는 문자를 받지 않으면 불가하게 변경 되었다. (0205 새로운 정책) Pcr 검사 자격 은 1. 60세 이상 2. 밀접첩족자 (보건소에서 문자를 받은) - 추후 이야기 하겠지만 문자를 받을수가 없다. 3. 확진자의 가족 4. 신속항원 검사 “양성” 이 나온 사람 사내 이메일을 보여드려도 pcr은 불가 하다길래 신속항원 검사를 받게 되었다. 신분증을 제시하고 검사 치트를 받고 안내받은 자리에 앉은후 스스로 셀..

DB ERD 관계선(실선, 점선)과 기호에 대한 설명 [내부링크]

DBA는 아니지만, 프로그램을 잘 만들기 위해서 완성된 ERD를 이해하고, 나아가 간단한 모델링은 직접 만들줄 알야한다고 생각한다. ERD를 이해하기 위한 첫 걸음이자 가장 중요하다 할 수있는 부분이 관계선과 관계선에 사용되는 기호라고 할 수 있다. 들어가기 앞서 관계선과 기호의 종류에대해 알아보자 관계선의 종류 실선(Identifying): 식별관계 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우 부모가 있어야 자식이 생기는 경우 점선(Non-Identifying): 비식별관계 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우 부모가 없어도 자식이 생기는 경우 기호의 종류(도형 혹은 식별자) |: 1개 / 실선은(dash) ‘1'을 나타낸다. ∈: 여러개 / 까마귀 발(crow’s foot ..

특정 포트 찾기/ 포트 죽이기 [내부링크]

연결된 모든 port netstat -ano 특정 포트 netstat -ano | find "6379" 6379 포트의 pid는 12952 이다. 특정 포트 죽이기 taskkill /f /pid 12952

create-react-app 명령어 입력시 에러 해결법 : 'create-react-app'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다. [내부링크]

create-react-app 명령어를 통해 프로젝트를 생성할 때 아래와 같은 에러가 날때가 있다. create-react-app '프로젝트명' 'create-react-app'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 이럴때에는 yarn 또는 npm 을 통해 글로벌한 설정으로 설치해주면 된다. $ yarn global add create-react-app # yarn 으로 인스톨 해도 안될 시에는 npm 을 이용하여 설치한다. $ npm install -g create-react-app

PMD - Programming Mistake Detector [내부링크]

PMD Programming Mistake Detector 전자정부 표준 프레임워크 http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev2:imp:inspection 에서 확인가능 합니다. 전자정부 표준프레임워크 표준 Inspection 룰셋 PMD를 이용한 Code Inspection 시 기준이 되는 요소는 룰이며, 전자정부 표준프레임워크에서는 PMD가 제공하는 수 많은 룰 중에서 기본이 될 만한 것들을 간추려 전자정부 표준프레임워크 표준 Inspection 룰셋이라는 이름으로 구성하였다. 전자정부 표준프레임워크의 표준 Inspection 룰셋은 다음의 표와 같은 39개의 룰들로 구성된다. 개별 룰에 대한 상세한 설명은 전자정부 표준 insp..

VS code - PMD 설치 방법 (programming mistake detector) [내부링크]

VS code에서 PMD를 설치 하는 방법 입니다. 먼저 vscode 마켓에서 PMD 검색 Apex PMD 다운 https://marketplace.visualstudio.com/items?itemName=chuckjonas.apex-pmd https://github.com/foreleven/vscode-java-pmd APEX PMD 링크 세팅에 들어갑니다. Extensions -> Apex PMD configuration Jre Path를 넣어줬지만 계속 오류가 떠서 하나하나 지워주고 시도 하고 Jre 패쓰를 넣지 않고 성공했습니다. 아래로 살짝 내리면 나오는 Pmd Bin Path (*필수) PMD 사이트 에서 다운후 경로를 넣어줍니다. https://pmd.github.io/ 그리고 Ruleset..

인터넷 익스플로러 실행시 엣지로 실행되는 문제 해결 방법 [내부링크]

대부분 크롬을 많이 사용하지만 익스플로러 사용이 필요할경우가 있습니다. 익스 플로러 실행시, 자동으로 엣지가 실행되어 불편함을 느끼는 경우가 있죠 포기하지말고 10초만에 해결 엣지 화면 실행후 오른쪽 상단 ... 메뉴 클릭 -> 설정 설정메뉴에서 [기본 브라우저]선택후 "Internet Explorer를 사용하여 Microsoft Edge에서 사이트를 열어보세요" 항목 부분이 "항상"으로 설정되어 있으실텐데, "안함"으로 선택후 창을 닫고 익스플로러를 열어보시면 정상적으로 익스플로러에서 인터넷 창이 열리는걸 확인 가능합니다. 더보기 참고 : https://nameesse.tistory.com/426

browserslist / browserslistrc 사용법 [내부링크]

react등 프론트 개발시 허용하는 브라우져 구조 설정이 필요한 경우가 있습니다. 가벼운 프로젝트의 경우 설정을 package.json에 하는 경우가 대부분이지만, 브라이져 설정이 나눠져 따로 관리를 하는 경우가 많습니다. 언젠가부터 브라우저스리스트(browserslist)라는 것이 자주 눈에 띄더니 지금은 FE 개발 환경에서 뺄 수 없는 도구가 되었어요. 아마도 바벨(Babel)이라는 FE 계의 걸출한 스타 프로젝트에서 도입했기 때문일 거라고 생각합니다. Browserslist가 뭘까 소개는 짧게 할게요. 브라우저스리스트는 브라우저를 선택하는 옵션 기능만 따로 뽑아 놓은 도구라고 생각하시면 돼요. 어떤 프로그램이 브라우저에 대응해 내부에서 처리해야 할 작업이 다르다면 옵션으로 지원 브라우저 환경을 ..

[군자 횟집] “동해안이야기” 푸짐이들 모여라 물회맛집으로 유명 [내부링크]

군자 맛집 군자 회 스시 물회 맛집 동해안 이야기 푸짐이는 직장이 군자역 이다. 군자역에서 일하지만 맛집은 모른다. 나도 학동역에서 일하지믄 그동네 맛집은 모른다. 퇴근하면 그동네를 빨리 벗어나야한다. 모르겠다. 이유는 ... 군자역이 직장인 푸짐이는 이동네에 엄청난 물회맛집이 있다며 궁금해했다. 이때 당시 코로나로 인해 9시 면 집으로 돌아가야했기에 푸짐이는 포장을 선택했다! 배달도 될테지만 우리집은 군자가 아님으로... 푸짐이는 분명 물회를 사온다 했는데 물회+모둠 회+ 초밥 까지 옆에 말릴 사람이 없으면 폭주하는 푸짐이다. 저렇게 주문해놓고 사장님한테 “두명이서 먹은건데 부족할가요?” 사장님 왈 “두명이요? 안부족해요..” 양손 가득 사냥한 음식을 들고 돌아온 푸짐이 모둠 회 이다. 엄청 두툼 하게..

[강남맛집/국밥] "현대옥" 전주하면 콩나물국밥 아뉩니꽈 [내부링크]

강남맛집 신논현/반포 맛집 현대옥 강남 교보사거리 근처 전주콩나물국밥 집이다. 점심에 어슬렁 거리다 먹기 딱좋은! 전주는 비빔밥도 유명하지만 콩나물 국밥이 더 맛있다. 아마 전주사람들은 배운사람인듯 이날은 아침에 눈을 뜨니 눈이 마구마구 왔었다. 집엔 먹을것도 없고 뜨끈한 국밥 한사바리 하러 기웃기웃 돌아다녔따. 곰돌이 모자 쓰고 다니는 나는 32살 31살일땐 자랑스럽게 쓰고 다녔는데 (귀여운데 따뜻하다.) 32살되고 못쓰겠다. 부끄럽다. 푸짐이가 왜 곰돌이모자 안쓰냐해서 한번써봤다. 국밥집 메뉴판 끓이는식 = 계란을 넣어서 끓여준다. 밥을 따로준다 남부식 = 계란 따로줘서 수란으로 먹는다. 밥이 국밥에 같이 나온다. 나는 남부식이 더 좋아서 남부식으로 주문 그리고 오징어사리도 추가했다. 단백질추가가 있..

[고등어회맛집] "광명수산" 포장 후기! 고등어회 죠하 석화 죠하 [내부링크]

고등어회 석화 맛집 논현역 맛집 강남 회 맛집 광명수산 연말에 파티 할떄 포장하기 딱 좋은 집! 겨울이면 회가 먹고 싶어진다. 방어... 석화....그리고 제주도에서 먹었던 고등어회 등등 회맛은 잘모르지만 방어랑 고등어회가 맛있는건 내 입도 안다. 푸짐이랑 재작년 제주도에서 고등어회를 너무 맛있게먹고 매번 먹고싶다고 노래를 불렀다. 고등어는 갱장히 나같은 성격이라 좀만 핀트 나가면 깩! 하고 죽는다고 한다. 서울에서는 먹기 힘들다는 이야기를 많이 들었는데 논현동 광명수산에서 고등어회를 판마하고 잇었다. 가게 내에서도 먹어도 되지만 푸짐이는 노백신맨 (몸이 아프다. 이유가 있는 노백신man) 이걸 먹었을 당시엔 노백신이면 걍 인간처럼 살지말라는 정부의 지침이 있었던 시기기도했고 연말에 집에서 오순도순 보내..

[강남구청 맛집]한식오마카세 "수묵당" 예쁘구 맛있어 "-" [내부링크]

한식오마카세 강남구청역 맛집 강남맛집 데이트 장소 추천 수묵당 2022년! 1월1일 겨우~~예약해서 방문하게된 수묵당 엄청 겨우~~~ 는 아니고 "캐치 테이블" 어플로 우연히 알게 되어 예약성공 대략 한달 전 부터 예약했다 황금연말연초는 식당예약이 정말 하늘에 별따기 사실은 익스퀴진을 가고싶었지만.. 익스퀴진은 하늘의 별따기 보다 어렵다.. 천왕성 왕복하기 수준 푸짐이랑 100일에 익스퀴진 다녀왔는데 (대략 4년전) 그땐 한 5일전? 전화 예약으로 쉽게 다녀왔던 기억.. 지금은 예약이 열리면 점심 저녁 평일 주말 다 꽉 차버린다. 그만큼 맛있는거겠지.. 가격도 인당 2만원정도 오른듯 익스퀴진이 그리워서 수묵당 포스팅이 주절주절 말이 많았다. 무튼 여차저차 예약한 수묵당 후기가 일단 ㄴㅓ- 어- 무 좋았고..

리액트 익스플로러(IE11) 연동하기 react-app-polyfill [내부링크]

리액트 익스플로러(IE11) 연동하기 해당글은 익스플로러 가 돌아가시전에 사용했습니다. 추억으로 사라져버린 익스플로러를 기억하며.. rip.. 리액트 프로젝트(CRA)는 JavaScript의 최신버전인 ES6이상의 문법을 사용합니다. 하지만, 역시 기대를 져버리지않는 IE는 ES6문법을 지원하지않기 때문에.. 우리는 익스플로러에서도 ES6이상의 문법을 해독할 수 있게끔 처리를 해줘야 정상적으로 화면이 출력이 됩니다. www.caniuse.com - ES6 Template Strings 리액트 프로젝트(CRA) 익스플로러-IE11 실행시 화면 해당 이슈를 Polyfill을 적용하여 해결할 수 있습니다. 1. react-app-polyfill 모듈 설치 - npm사용시 : npm install react-a..

React에서 사용자 브라우저를 쉽게 감지하는 방법 react-device-detect [내부링크]

리액트에서 지원하지않는 IE브라우저 IE 는 고작 10% 의 사람들이 사용한다고 한지만, 10%는 엄청난 수치입니다. 한 브라우저에서 잘 작동하는 몇 가지 기능이 있지만 다른 브라우저로 전환하면 예상대로 작동하지 않습니다. 최근에 React 프로젝트 중 하나에 추가 한 기능이 IE11과 호환되지 않는 것을 발견했습니다. IE11과 호환되는 기능을 추가하려면 많은 추가 작업이 필요했습니다. 대신 사용자가 IE11을 사용하는 경우 기능을 비활성화하기로 결정했습니다. 내 사용자가 사용중인 브라우저를 확인하는 간단한 방법을 찾고 싶었습니다. 이 기능을 비롯한 많은 기능을 수행 할 수있는 react-device-detect라는 패키지를 살펴 보겠습니다. 시작하기 react-device-detect 라이브러리로..

옵셔널 체이닝 '?.' [내부링크]

최근에 추가됨 스펙에 추가된 지 얼마 안 된 문법입니다. 구식 브라우저는 폴리필이 필요합니다. 옵셔널 체이닝(optional chaining) ?.을 사용하면 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근할 수 있습니다. 옵셔널 체이닝이 필요한 이유 이제 막 자바스크립트를 배우기 시작했다면 옵셔널 체이닝이 등장하게 된 배경 상황을 직접 겪어보지 않았을 겁니다. 몇 가지 사례를 재현하면서 왜 옵셔널 체이닝이 등장했는지 알아봅시다. 사용자가 여러 명 있는데 그중 몇 명은 주소 정보를 가지고 있지 않다고 가정해봅시다. 이럴 때 user.address.street를 사용해 주소 정보에 접근하면 에러가 발생할 수 있습니다. let user = {}; // 주소 정보가 없는 사용자 alert(user.a..

[javaScript] Optional chaining "?." 연산자 [내부링크]

자바스크립트 / 리액트 코드등 앞단에서 의문의 연산자를 보았다. ex) edior?.canvas?.getObject() edior.canvas.getObject() - 이런 형식이 익숙하지만 코드 실행시 만약 canvas가 null 이라면 (null의 오브적트 임으로) 페이지가 오류가 나서 진행불가었다. 그래서 해결하는 방법이 ? 를 붙여 주는것 에러가 발생하지지 않고 undefined 를 리턴해주어 오류를 발생시키지 않는다. Optional chaining optional chaining 연산자 (?.) 는 체인의 각 참조가 유효한지 명시적으로 검증하지 않고, 연결된 객체 체인 내에 깊숙이 위치한 속성 값을 읽을 수 있다. ?. 연산자는 . 체이닝 연산자와 유사하게 작동하지만, 만약 참조가 null..

[React] import 중괄호 {}를 쓰는 이유 [내부링크]

import a, { b } from '/config' react에서 변수를 사용하려고 할 때 중괄호 {} 안에 표기하는 변수, 그리고 그냥 표기하는 변수가 있다 이렇게 import할 때 중괄호 { } 사용 여부는 변수를 보내주는 방식에 따라 달라진다 /config.js const a = 0; const b = 1 export { a }; export const c = 2; export default b; config.js에서 변수를 불러오려고 한다 import f, {a, c as two} from '/config'; console.log(f, a, two)// 1, 0, 2 export default로 선언된 변수는 중괄호 {} 없이 받아올 수 있으며 변수명이 달라도 된다 export default ..

[ React ] 리액트 리덕스(Redux) 사용& 적용 [내부링크]

리덕스를 직접 사용해보자. 먼저 아래와 같이 CMD 에 입력해 프로젝트를 만든다. C:\> create-react-app react-redux C:\> cd react-redux 리덕스 모듈 redux 와 리덕스의 다양한 도구들이 들어있는 react-redux를 설치한다. C:\react-redux> yarn add redux react-redux react-redux 프로젝트를 열어보자. 디렉터리의 구조는 다음과 같이 만들었다. 소스를 흐름대로 살펴보도록 하겠다. src/index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import * as serviceWorker from..

[ React ] 리액트 리덕스(Redux) 정의 [내부링크]

Redux 에 대해 알아보기 전에 이해에 도움이 되기 위해 예시를 들어 설명해보자면, 만약 A 컴포넌트가 B 컴포넌트에, B 컴포넌트는 C 컴포넌트에.. 이렇게 D, E, F, G 컴포넌트 까지 이어진 루트가 있다고 가정했을 때 A 컴포넌트가 G 컴포넌트에 접근해 무언가 하려고 한다면 A B C D E F G 순서로 접근 후, 다시 G F E D C B A 루트를 통해 돌아와야한다. 얼마나 비효율적인 패턴인지는 굳이 설명을 안해도 알 것이다. 이 때 하나의 스토어 ( Store ) 라는 매체를 두면 위의 순서가 아니라, A Store G 식의 효율적인 접근이 가능하게 해준다. 이 Store 는 Redux 를 통해 사용할 수 있다. Redux 에 대..

[java]Parameter... 표현 Object... args(동일한 파라메터를 여러개 받을 때, 자동으로 배열처리) [내부링크]

일정하지 않은 개수의 파라미터 (Arbitrary Number of Arguments ) 일정한 형의 변수를 여러 개 전달해야 할 때 사용한다. 메소드 호출시, 일반 파라미터 처럼 넘기고 메소드에서 받은 파라미터는 배열로 사용한다. public class Test{ public static void main(String[] args) { TestClass tc= new TestClass(); } } class TestClass{ public void test(String... strs) { System.out.println(strs[0]);// test1 System.out.println(strs[1]); // test2 } }

[Spring] @PathVariable 사용법 [내부링크]

Request가 들어오는 타입에 따라 ... 받는 방법을 크게 4가지 정도로 나눠서 앞으로 하나씩 살펴보자. URL 변수 (@PathVariable) Query String (@RequestParam) Body Form @PathVariable 이란? REST API에서 URI에 변수가 들어가는걸 실무에서 많이 볼 수 있다. 예를 들면, 아래 URI에서 밑줄 친 부분이 @PathVariable로 처리해줄 수 있는 부분이다. http://localhost:8080/api/user/1234 https://music.bugs.co.kr/album/4062464 사용법 Controller에서 아래와 같이 작성하면 간단하게 사용 가능하다. @GetMapping(PostMapping, PutMapping 등 다 상..

@RequestParam과 @PathVariable? [내부링크]

컨트롤러에서 Requestparam으로 파라미터 값을 넘겨받을 때 사용하는 어노테이션 스프링에서는 컨트롤러로 사용할 클래스 상단에 @Controller를 지정합니다. 주로 사용하는 형태의 파라메터를 전달하는 경우입니다. Case 1 ) http://xxx.x.x?index=1&page=2 Case 2 ) http://xxxx.x.x/index/1 Case 1의 경우 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용합니다. Case 2의 경우 Rest api에서 값을 호출할 때 주로 많이 사용합니다. Spring에서는 이러한 전달인자를 처리하는데 두 가지 방법을 제공합니다. Case 1의 경우 @Requestparam을 사용하는데..

GetMapping 어노테이션으로 다중맵핑하기 [내부링크]

@GetMapping 어노테이션은 HTTP GET 요청을 처리하는 메서드를 맵핑(@RequestMapping) 하는 어노테이션이다. 메서드(url)에 따라 어떤 페이지를 보여줄지 결정하는 역할을 한다. 참고로 스프링부트에서는 어떤 HTTP 메서드를 사용할지에 따라 RequestMapping 어노테이션을 아래의 어노테이션으로 구분해서 제공한다. RequestMapping 어노테이션으로 사용가능하지만, 목적에 따라 아래 어노테이션으로 대체사용이 가능하다는 이야기이다. @GetMapping : GET 요청을 하는 API의 어노테이션. 데이터를 가져올 때 사용한다. @PostMapping : POST 요청을 하는 API의 어노테이션 데이터를 게시할 때 사용한다. @PutMapping : PUT 요청을 하는 AP..

@RequiredArgsConstructor란? / spring / lombok [내부링크]

@RequiredArgsConstructor란? final 필드에 대해 생성자를 만들어주는 lombok의 annotation. Spring Framework의 DI(의존성주입) 중 Constructor Injection(생성자 주입)을 임의의 코드 없이 자동으로 설정 @RequiredArgsConstructor 적용 전 @Component public class LombokTest { private final MyService myservice; private final String id; @Autowired public LombokTest(MyService myservice, String id) { this.myservice = myservice; this.id = id; } @RequiredArgsC..

[javaScript] URL정보 (window.location) [내부링크]

테스트 환경에서 localhost라고 host명을 고정해서 테스트하는 경우가 있습니다. 운영환경의 호스트명은 다르므로 운영환경에 맞게 호스트명을 자동으로 변경하고 싶은 경우가 있습니다. (물론 html파일이니까 리플레이스를 통해서 치환하면됩니다.) 여기서 사용할 수 있는 순수 자바스크립트는 다음과 같은 것이 있습니다. 예) http://192.168.0.94:85/hoops_web_viewer_sample.html?viewer=csr&instance=moto 예와 같이 URL이 있다고 할 때, 구글 크롬의 개발자 도구의 콘솔에 window.location을 조회해 보면 다음과 같은 내용을 확인할 수 있습니다. 참고로 window는 최상위 엘리먼트이므로 location으로 조회를 해도 같은 결과가 나옵니다..

[부여 맛집] 부여 1등 맛집 - 엄가네 곰탕 [내부링크]

부여 맛집 갈비찜 맛집 / 곰탕 맛집 엄가네 곰탕 http://naver.me/FRYnJFHc 네이버 지도 엄가네곰탕 map.naver.com 얼마전 티비를 보다 알게된 식당 부여를 간다면.. 꼭 방문하리라 다짐했던 곳이다. 사장님 = 쉐프 신데 한식대첩도 출연하시고 방송 여기저기 많이 출연하셨다고 한다. 요리로 유명하신 분 이다. 가게 이름은 "곰탕" 이다. 모든 요리에 신경쓰지만 특히 곰탕에 시간 투자를 많이한다고 들었다. 전국에서 배달주문을 받는다고 한다! 곰탕도 너무 궁금했지만 갈비찜비주얼이 엄청났음으로 우리는 2명 이었고! 용궁갈비찜은 양이 어마무시하다 4인기준 그리고 갈비찜을 먹기위해선 최소 4시간 전 전화예약은 필수 그냥 뚝딱 만드는 게 아니라 갈비를 삶고 등등 준비가 많이 필요하다고 한다 ..

[jQuery]이벤트의 연결 및 처리 .on() .off() .one() [내부링크]

이벤트의 연결(event binding) 특정 요소에서 발생하는 이벤트를 처리하기 위해서는 이벤트 핸들러(event handler) 함수를 작성해야만 한다. 이렇게 작성된 이벤트 핸들러를 특정 요소에 연결하는 것을 이벤트 바인딩(event binding)이라고 한다. jQuery는 이벤트 바인딩을 위한 다양한 방법을 제공한다. 다음 예제는 id가 "btn"인 요소에 클릭(click) 이벤트 핸들러를 바인딩하는 다양한 방법이다. $("#btn").click(function(event) { // 실행하고자 하는 jQuery 코드 }); $("#btn").bind("click", function(event) { // 실행하고자 하는 jQuery 코드 }); $("#btn").on("click", funct..

[Linux] shell 복사 붙여넣기 (ctrl insert, shift insert) [내부링크]

서버로 톰캣, 도커등을 띄우고 Shell등으로 LOG 나 긴 명령어 복사 붙여넣기할때, 혹은 terminal / git bash / cmd 창 등등등 일반적으로 우리가 윈도우에서 사용하는ctrl + C | ctrl + V는 먹히지 않는다. 아래 동작으로 가능 복사 Ctrl+Insert 붙여넣기 Shift+Insert 잘라내기 Shift+Delete

수정 - 잘못된 개인 키 오류로 DBeaver SSH 터널 연결이 실패함 [내부링크]

원글 http://bitmapcake.blogspot.com/2019/11/fix-dbeaver-ssh-tunnel-connections-fail-invalid-privatekey-error.html Fix - DBeaver SSH tunnel connections fail with invalid privatekey error I tried to connect to a remote Postgresql server with DBeaver and got this error today. The error message said my private key was in... bitmapcake.blogspot.com DBeaver를 사용하여 원격 Postgresql 서버에 연결하려고 시도했는데 오늘 이 오류가 발..

[ffmpeg] 동영상 초마다 이미지 변환 command line + java code [내부링크]

import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.FrameGrabber.Exception; public class cutVideo { public static void main(String[] args) throws IOException { String path = "C:/case_..

[LINUX]Ffmpeg 설치 [내부링크]

Ffmpeg 각종 음악 및 영상 파일을 변환시키거나 편집할 수 있는 기능을 가진 프로그램 일단 해당 설치 파일을 다운 받는다. 참조 : http://ffmpeg.org/download.html 보통 리눅스에서 작업을 한다면 아래와 같은 명령어로 해당 위치에 파일을 다운 받을 수 있다. # wget http://ffmpeg.org/releases/ffmpeg-2.5.3.tar.bz2 해당 명령어는 인터넷이 가능한 환경에서 명령어하나로 설치 하는것이다. 폐쇄망 (인터넷이 안되는) 에서 진행시, tar.gz 파일 다운 -> 원하는 폴더에서 압축 풀기 다운을 받았으면 tar를 이용해서 해당 파일의 압축을 풀고 해당 폴더로 들어간다. # tar -xvjf ffmpeg-2.5.3.tar.bz2 # cd ffmp..

[React] 크롬 React 디버깅 툴 설치 방법 (React Developer Tools) [내부링크]

React 사용시 개발자모드 Elements 탭에서는 브라우저가 이해하는 코드를 보여주기 때문에 우리가 React를 사용하여 스크립트로 작성한 컴포넌트 구조를 정확히 볼 수 없다. React Developer Tools를 사용하게 되면, 크롬 웹에서 개발자 모드로 컴포넌트(Components) 구조를 볼 수 있고 변경하면서 테스트에 용이하다. 링크 https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi?hl=ko React Developer Tools Adds React debugging tools to the Chrome Developer Tools. Created from revi..

mysql 백업, 복원 (DB, Table 백업, 복원) [내부링크]

데이터베이스 관리자와 개발자들은 정기적인 데이터 백업의 중요성을 잘 알것입니다. 만약 디스크나 서버가 고장날 경우 백업을 미리 해 두었는지 여부는 몇년치 업무결과를 잃어버리느냐 아니면 몇시간만에 정상으로 복귀 하느냐를 결정합니다. 데이터베이스 DB, 계정정보 DB Name : test_db 테이블 : test_table 사용자 계정 : test_user DB 접속계정 패스워드 : 123456 MYSQL DB 백업하기 1. 사용옵션 # mysqldump -u [사용자 계정] -p [패스워드] [원본 데이터베이스명] > [생성할 백업 DB명].sql 2. 사용방법 # mysqldump -u test_user -p test_db > backup_test_db.sql passowrd : 123456 ..

[mssql] 데이터베이스 백업/복원 스크립트 [내부링크]

1. 백업 BACKUP DATABASE DB명 TO DISK='백업절대경로\백업파일명.bak' WITH INIT; ** INIT은 덮어 쓰기 이다. NOINIT은 추가이다 2. 복원 restore filelistonly from disk ='C:\bakup\디비백업파일' RESTORE DATABASE DB명 FROM DISK='C:\bakup\디비백업파일' WITH MOVE '' TO 'C:\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DB명_data.mdf', MOVE '' TO 'C:\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DB명_log.ldf', Replace use DB명 : 해당 디비로 이동하기. 2.1 테이블 스키마 변경. sp_cha..

[JAVA] 자바로 사진(JPEG) 메타데이터[사진정보, GPS] 가져오기 [내부링크]

자바 1.5 버전에서는 com.sun.image.codec.jpeg.JPEGCode을 지원해서 자바만으로 메타데이터를 가져올수 있었지만 지금 이 글을 작성하는 시점에서 자바는 1.6버젼 업데이트 37을 일반적으로 사용하고 있으며 1.7버젼도 출시되어 사용되고 있다. 아쉽게도 1.5버전의 com.sun.image는 Sun에서 조차도 사용을 권하고 있지않아 1.6에서는 아예 퇴출 당했다. 고로 메타데이터를 1.6버젼이상에서 가져오라면 라이브러리를 적용해야한다. metadata-extractor-2.6.4 위 라이브러리를 사용해서 메타데이터를 추출하는데 성공했다. #라이브러리를 추가하고 필요한 import import com.drew.imaging.jpeg.JpegMetadataReader; import co..

[JAVA] mp4 parser metadata 확인 (mp4 info 확인) [내부링크]

mp4 파일들의 메타 데이터를 확인하는 소스 입니다. 해당 mp4에서 정보를 확인 하는 소스 입니다. (라이브러리에 첨부되어있는 jar 파일을 추가해 주세요.) 메이븐 디펜던시 추가시 org.apache.tika tika-core 1.8 org.aspectj aspectjrt 1.7.3 org.apache.tika tika-parsers 1.8 com.googlecode.mp4parser isoparser 1.0.6 마지막 추가된 디펜던지 isoparser 는 첨부된 파일과 버전이 다르다. 1.0.7.1버전이 소멸.. 한거같다 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import org.apache.t..

[java] Xuggler 비디오 정보 구하기 [내부링크]

Xuggler 메이븐 디펜던시 설정하는 방법은 이전 포스팅에 확인 가능하다. 비디오 정보를 구하는 예제 import com.xuggle.xuggler.ICodec; import com.xuggle.xuggler.IContainer; import com.xuggle.xuggler.IStream; import com.xuggle.xuggler.IStreamCoder; public class VideoInfo { private static final String filename = "c:/myvideo.mp4"; public static void main(String[] args) { // first we create a Xuggler container object IContainer container = I..

[JAVA] xuggler 를 사용한 동영상 길이 추출 [내부링크]

xuggler 를 사용한 동영상 정보 추출 java로 동영상 컨트롤 하는 방법중 하나이다. 가장 흔하게 사용하는 FFmpeg는 다운받아 설치 해야한다는 불편함이있다. xuggler 는 메이븐에 디펜던시 넣어주면 라이브러리 사용가능하다. xuggler의 단점도 있다. 너무 오래된 라이브러리라는것. 라이브러리 관리가 되지않아 xuggler 검색시 나오는 디펜던시를 넣으면 오류가 뜬다. https://mvnrepository.com/artifact/xuggle/xuggle-xuggler/5.4에 확인 가능하다. xuggle xuggle-xuggler 5.4 Missing artifact xuggle:xuggle-xuggler:jar:5.4 라는 오류가 뜬다. 더이상 아무도 유지 관리 하지않지만 여전히 저장된 ..

[JAVA] FFmpeg로 Thumbnail 추출하기 [내부링크]

ffmpeg를 이용하혀 Thumbnail을 추출하는 방법 전 포스팅에 ffmpeg설치 및 사용법이 있다. import java.io.IOException; public class VideoTimeCut { public static void main(String[] args) throws IOException { thumbnail(); } public static void thumbnail() { Runtime run = Runtime.getRuntime(); String videofile = "C:/Users/Min/Desktop/test1/test.mp4"; String command = "C:/ffmpeg-20191109-0f89a22-win64-static/bin/ffmpeg.exe -i \"" +..

[JAVA] FFmpeg로 동영상 재생 시간 추출하기(WINDOW) [내부링크]

JAVA에서 FFmpeg을 사용하여 동영상 재생시간을 추출하려고 한다. 자바에서 영상을 읽어서 재생시간을 얻는 방법이다. FFmpeg 를 사용하면 동영상 컨트롤이 가능 하지만, 단점은 내 로컬에 다운을 받아야한다. 실질적 프로젝트 경우 서버에 따로 다운받아야하는 번거로움이 있다. xuggler 방법을 을 사용해서 영상 길이등, 영상의 정보를 추출하는 방법도있다. 블로그 에 포스팅 했다. 이방법을 사용하려면 여기로 (xuggler 또한.. 단점이 있다.) 먼저 https://ffmpeg.zeranoe.com/builds/에서 다운로드 한다. 다운받은 zip파일을 C드라이브에 압축 해제한다. 환경 변수 설정을 한다. 필자 경로는 C:\ffmpeg-20191109-0f89a22-win64-static\bin ..

[Java] 파일에서 확장자(File extension) 얻는 방법 [내부링크]

Java에서 File 이름으로 부터 extension(확장자)를 가져올 수 있습니다. File 이름으로 확장자 가져오기 아래와 같이 파일 이름에서 마지막에 있는 .을 찾고 그 뒤의 문자열을 확장자라고 생각할 수 있습니다. File file = new File("/home/mjs/test/myfile/file1.txt"); String fileName = file.getName(); String ext = fileName.substring(fileName.lastIndexOf(".") + 1); System.out.println("file name : " + fileName); System.out.println("extension : " + ext); 결과 file name : file1.txt ext..

[Java] 영상에서 썸네일(Thumbnail) 추출하기 [내부링크]

영상에서 썸네일을 자동으로 추출하여, 썸네일을 만들거나 이미지 파일을 분석하는 방법을 활용할 수 있을 것이다. 썸네일의 용도보다는 주기적으로 영상에 이미지를 추출하여 사진을 분석하는 용도로 사용하기 위해서 구글링을 하게 되었다. 다양한 방법이 있고, 라이브러리마다 성능의 차이는 있을 수 있다. 예를 들어 좀 더 복잡한 방식은 더 높은 성능을 자랑할 수 있다. 단순한 라이브러리는 상대적으로 낮은 성능(ex: 추출 속도)을 보여줄 수 있지만 이미지를 수집하는데 큰 지장이 없기에 이번에는 쉬운 방법의 썸네일을 추출하는 라이브러리를 소개하고자 한다. Maven 설정 Java 기반이며 필자는 Maven 기반으로 프로젝트를 생성하였다. 라이브러리는 "jcodec"이라는 라이브러리를 활용하였는데 아래 2개의 Dep..

[JAVA] image resize & crop (Thumbnail) [내부링크]

Java 라이브러리를 활용해서 이미지 리사이징 및 크롭하는 것을 소개합니다. 참고로 크롭은 특정 좌표(x,y)부터 원하는 크기(width,height)로 자르는 것을 의미합니다. 환경 : jdk 1.6 import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import javax.imageio.ImageIO; public class EasyImage { privat..

[vscode] 코드 Live Server 사용하기, 실시간 미리보기 [내부링크]

vscode에 실시간 미리 보기 확장 프로그램 - Live Server -리액트 공부하다 알게된 편리한 기능 -프론트엔드 개발자, 웹퍼블리셔는 익숙한 기능인듯 보임 vscode에 extensions: marketplace를 선택해 Live Server를 검색한다. 그리고 install install 버튼이 uninstall로 변경되면 HTML 파일이나 JS 파일로 돌아온다. HTML 파일에서 Live server 시작하는 방법은 간단하다. 단축키나 마우스 클릭 버튼 단축키 window : alt + L → alt + O mac : command + L → command + O 마우스 마우스 오른쪽 클릭 후 Open with Live Server 를 클릭해 그럼 Live server에서 127.0...

[React] 리액트 기본 규칙, JSX 기본 규칙 [내부링크]

JSX 규칙 : javascript + XML JSX 는 리액트 컴포넌트를 작성하면서 return 문에 사용하는 문법 얼핏보면 HTML 같지만, 실제로는 자바스크립트 규칙 1. 태그는 반드시 닫아줘야 한다. 2. 최상단에서는 반드시 div 로 감싸주어야 한다. ( Fragment 사용 , 상황에따라 ) 3. JSX 안에서 자바스크립트 값을 사용하고 싶을때는 {}를 사용한다. 변수값 출력예시 참고 -> { name } 4. 조건부 렌더링을 하고싶으면 &&연산자나 삼항연산자를 사용한다. 5. 인라인 스타일링은 항상 객체형식으로 작성한다. 6. 별도의 스타일파일을 만들었으면 class 대신 className 을 사용한다. 7. 주석은 {/* */}을 사용해 작성한다.

[React] 컴포넌트란? 함수형/클래스형 [내부링크]

컴포넌트 컴포넌트는 UI 를 구성하는 조각(piece)에 해당되며, 독립적으로 분리되어 재사용을 됨을 목적으로 사용됩니다. React 앱에서 컴포넌트는 개별적인 JavaScript 파일로 분리되어 관리합니다. (예: Header, HeaderTitle, Wrapper, List, ListItem 컴포넌트) 리액트에서 컴포넌트는 앱을 이루는 최소한의 단위이다. 또한 props나 state와 같은 데이터를 입력받아 DOM 노드를 생성한다. 이러한 컴포넌트들이 유기적으로 잘 연결되고 동작되어야 훨씬 효율적인 앱이 될 수 있다. props는 부모 컴포넌트가 자식 컴포넌트에게 주는 값이다. 어떠한 값을 컴포넌트에 전달해 줘야 할때 사용하며 할당된 후 컴포넌트 내부에서 값을 변경할 수 없다. state는 컴포넌..

[React] 컴포넌트 구조 - JSX영역/함수영역/Fragment 사용법 [내부링크]

React를 구성하는 중요 파일 react로 프로젝트 구축을 할때 중요한 3개의 파일에 대해 알려드리겠습니다. 리액트는 컴포넌트 구조*로 이루어져있습니다. 컴포넌트 타입에는 함수형과 클래스형이 있습니다. 오늘 설명드릴 내용은 '함수형'을 통한 예제입니다. 컴포넌트란? UI를 독립적이고 재사용 가능하도록 나눈 조각, 기능을 단위별로 캡슐화 한 단위를 말합니다. index.js import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; ReactDOM.render( , document...

[JAVA] 특정 폴더에 있는 파일 읽기 [내부링크]

파일 경로에 있는 폴더에 있는 전체 파일을 갖고 와서 단순하게 파일 이름을 출력하는 알고리즘입니다. String fileName = ""; /*파일 경로에 있는 파일 가져오기*/ File rw = new File(filePath); /*파일 경로에 있는 파일 리스트 fileList[] 에 넣기*/ File []fileList = rw.listfiles(); /*fileList에 있는거 for 문 돌려서 출력*/ for(File file : fileList) { if(file.isFile()) { fileName = file.getName(); System.out.println("fileName : " + fileName); } }

[VScode] React 코드 템플릿 자동 완성 플러그인 @ Reactjs code snippets @ [내부링크]

VS code 툴을 사용하고 React 언어를 사용한다면 필수인 플러그인 Reactjs code snippets 신규로 컴포넌트를 정의할 때마다 일일이 코드를 작성해야 하는 번거로움을 줄여준다, 설치 방법 VS CODE 가장 왼쪽 사이드바에서 4번째 탭을 들어가면 플러그인등 다운받는 스토어 가있다. 그리고 Reactjs code snippets 검색 세부정보를 내려보면 보면 사용가능한 단축 트리거 들이 있다. 사용법 Trigger Content rcc→ class component skeleton rrc→ class component skeleton with react-redux connect rrdc→ class component skeleton with react-redux connect an..

[React] 프로젝트 생성 : CRA(Create-React-App) [내부링크]

CRA(Create-React-App) : 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅 해주는 도구 https://create-react-app.dev/docs/getting-started React 시작할때 node js 설치가 필수! vs code에서 터미널을 열어준다. vscode - 터미널 - 새터미널 ctrl + ~ : 터미널 열기 1. nodejs 다운 2. npx create-react-app 프로젝트명 3. cd 프로젝트명 4. npm start =>3000번 포트로 react 서버 온 CRA 명령어 Create React App을 사용해 스캐폴딩 된 프로젝트는 다음의 4가지 명령어를 제공합니다. start → React 프로젝트 개발 서버를 시작합니다. build →..

[React] 기초 - 바벨/웹팩 이란? CDN을 넣어서 React 구조 만들기 [내부링크]

실제 프로젝트를 진행할때, cdn을 넣지않고 react create 해서 사용한다. create-react-app 이란? react를 활용해 개발을 하기 위한 필수 모듈인 react, react-dom, react-scripts 외부 모듈 webpack, babel 기본 구조를 알기위해 CDN을 넣어 구조 생성 React CDN => https://ko.reactjs.org/docs/cdn-links.html#gatsby-focus-wrapper 바벨 CDN => https://babeljs.io/docs/en/babel-standalone CDN 을 헤더 안에 붙여넣어주면 된다. - 예제 화면에 보이는 영역 -> el이라는 태그를 dom에 끼워넣는다 라고 생각하면 된다. 바벨 최신 ES6버전을 ..

[React] 클립보드 텍스트 복사하기 [내부링크]

서론 웹에서 공유하기 또는 url 복사하기 같은 기능을 편하게 유저에게 제공할 때 두루 쓰이는 기능인 유저가 버튼 클릭시 컴퓨터에 텍스트가 복사되는 (cmd + c) 기능 클립보드에 데이터를 복사하는 방법은 exeCommand (opens new window)를 사용하거나 clipboard api (opens new window)를 사용하는 방법이 있습니다. clipboard api의 경우 exeCommand보다 최근 나온 기술로 호환하는 브라우저가 적으므로 exeCommand로 복사하는 방법을 알아보겠습니다! 흐름 현재 브라우저가 copy 기능을 지원하는지 확인 지원한다면 textarea를 만들어서 내부에 원하는 text를 복사 복사한 텍스트를 document.body에 appendChild exe..

[JavaScript] reload() 메서드 - 페이지 새로고침 [내부링크]

캐시에서 페이지 가져와 새로고침 (= false 옵션) [예제1] HTML과 스크립트 분리 새로고침 [예제2] HTML과 스크립트 일체 캐시새로고침 ※ location.reload() 메서드 기본값이라, false는 생략 가능. 서버에서 페이지 가져와 새로고침. (= true 옵션) 새로고침 서버새로고침 reload() 정의 - 페이지 새로고침 (= 리로드) - 모든 주요 브라우저 지원 reload() 구문 location.reload(forceGet) [매개변수] forceGet 선택. 새로고침 방법 지정. (= 리로드 타입 지정) false : 캐시에서 가져와 현재페이지 새로고침. (기본값.) true : 서버에서 가져와 현재페이지 새로고침.

[React] 실전 리액트 들어가기 전 , 기본 javascript 문법 es6(ecmascript) [내부링크]

리액트란? React 는 UI 를 구현하는 JavaScript 라이브러리 웹 앱(Web App) 또는 네이티브 앱(Native App) 유지보수를 쉽게 , DOM 관리 성능최적화 쉽게 컴포넌트에 집중 대부분 공식 라이브러리가 없음 (높은 자유도) 자바스크립트 친화적 es6 기반로 배우기가 쉽다 react 진도 리액트에 필요한 자바스크립트 리액트 작성법 ( state , props ) hooks - useState / useRef / useEffect 스타일 :sass , styeld-component 리액트에서 ajax 요청방법 ( axios / Fetch ) 성능관련 : useMemo / useCallback 상태분리 useReducer Single Page Application: spa -..

[JAVA] JSONObject key 값이 null 일때 해결 방법 [내부링크]

우리는 JSON parser/ object 등으로 제이슨 처리를 한다. { "gender" : "남성" } 이러한 데이터는 쉽게 if(jsonObject.get("gender").equals("남성")){ // key값이 gender인 json Object 의 값 체크가 가능 } 키값을 넣고 체크 가능하다. 그치만 Key값이 null일때, { "gender" : null } 널값을 가진 키라면 널포인트 익셉션 이 발생한다. if(jsonObject.get("gender").equals("남성")){ //널포인트 발생 }else if(jsonObject.get("gender").equals(null)){ //error }else if(jsonObject.get("gender").equals("null"))..

[오창맛집] 마! 니 염소탕 무봤나? - 김산기 염소탕 [내부링크]

오창 맛집 충청도 맛집 김산기 염소탕 염소를 먹었던 기억은 가물가물하다. 내가 태어난지 7년쯤 되었을까? 아빠가 코끼리 고기라고 귀한거라고 속여서 맥인기억 아빠... 내 염소고기라 해도 먹었을겨 사실 코끼리가 더 무서웠어.. 그때 당시엔 염소전골? 같은걸 먹었다 충북즈의 강추로 아침 해장은 무적건 염소탕 이었다. 오랜만에 방문한 충북즈도 놀랬다 건물이 싸악 바뀌었기 때문 1. 건물통채로 싹 바뀜 2. 주차장이 매우 넓음 3. 돈을 많이 쓴 티가남 고로 , 염소탕을 팔아 큰돈을 버셨다는 뜻 4. 가게명이 사장님 이름 이름을 걸고 자신 다는 뜻 = 찐맛집이다 들어가기전부터 찐맛집의 기운이 홀홀 났다. 입구 바닥에 있던 메뉴판을 찍어보았다. pick은 무적건 염소탕 참고 해야되는 휴무시간 물은 기본적으로 한병..

[오창 횟집] 아낌없이 주는 황금수산 [내부링크]

오창 맛집 청주 횟집 / 충북 횟집 황금수산 오창의 로데오 핫플레이스~ 에 들어가고 들어가면 찾을수 있는 황금수산 저녁은 회먹고싶다~~~ 해서 찾아간곳 삐까뻔적한 골목골목 사이에 들어가면 잔잔한 황금수산 식당이 있다. 구석에 있었지만 손님도 꽤 많았다. 메뉴판은 크게! 3인 이었음으로, 숙성회 1번(3인) 을 주문했다! 사장님께서 그거 먹으면 된다해서 메뉴판 읽어보다 회까닥 돌아서 메뉴 다 시킬뻔했지만 일단 나오는거 보고 추가하자며 자제했다. 주문과 동시에 나오는 찬들.. 다 그냥 기본 찬이다... 홍합템 필템.. 나 홍합탕 됴아해.. 술마실때 필템... 꼬막일까? 꼬막무침일까? 아니면 다른 조개일까? 사실 꼬막이라 하기엔 너무 컸다. 내가 아는 꼬막은 작고 귀여운데 과메기 무침 - 기본 찬이다. 태어나..

[청주/오창 카페] "코코넛 커피"가 맛있는 카페코지웨어하우스 [내부링크]

청주 맛집 오창 맛집 청주 카페 추천 코코넛 커피 맛집 청주에서 이쁜 카페중 하나 베트남 느낌의~ 카페당.. 밥먹고 커피 한사바리 해야되니까 저멀리 운전하면서 저기 파인애플 보이지? 저기야 라고 하는데 난 멀리서 파인애플이 안보였다. 난 아무리봐도 순무 처럼 보이는데 자꾸 파인애플이라는 칭구.. 간판이 웅장하다. 하늘하늘하니 이쁘다. 주차는옆에 큰 공터? 에 넓게 넓게 되어있다. 주차장이 꽉찬걸 보니 충주 사람들 여기로 다 모인듯 하다. 엄청나게 큰 컨테이너 박스같다. 컨테이너 박스의 5배 ? 정도 크기 크당 문도 짱 크다 저기 문여는 사람이 작은게 아니라 문이 진짜 짱크다 이쁘게 꾸며 놨다. 이때 당시 11월 초 ? 정도 였는데 벌써 크리스마스 트리 연말에 트리만 보면 벌써 캐롤 듣고 신명난다.. 그리..

[진천/충청 맛집] 쥐꼬리명당 - 배타고 들어가는 식당 갬성 맛집 [내부링크]

진천 맛집 충청북도 맛집 쥐꼬리명당 - 초평저수지 지도만 봐도 엄청난 식당 주변에 아무거토.. 없다. 당연히 그냥 못간다 예약 필수!!!!!!!!!!!!!!!!!!!!!!! 슈퍼 필수!!! 개 필수!! 당연한 필수 당일 예약만 받는다능.. 아침 9시부터 열라게 전화하면 방문 가능 그리고 예약할때 메뉴도 주문 !!!!!!!!! 프로충북인 친구덕분에 방문하게된 소듕한 식당이다.. 쌀쌀한 11월 방문한 충북 태어나서 첫 방문 오창버스터미널에서 내려서 차타고 조금 이동 해야한다. 날이 너무 됴아떠... 거진 도착할때 쯤 보이는 초평 터널! 초평저수지에 있는 식당이다. 터널에 나오자마자 낚시터가 있었는데 베트남 같았다. 수상가옥 터널을 통과하면 단풍길이 나온다 세상엔 참 좋은 곳이 마구마구 숨어있다. 간판! 등장..

React Hooks : useEffect() 함수 [내부링크]

useEffect 함수는 리액트 컴포넌트가 렌더링 될 때마다 특정 작업을 실행할 수 있도록 하는 Hook 이다. useEffect는 component가 mount 됐을 때, component가 unmount 됐을 때, component가 update 됐을 때, 특정 작업을 처리할 수 있다. 즉, 클래스형 컴포넌트에서 사용할 수 있었던 생명주기 메소드를 함수형 컴포넌트에서도 사용할 수 있게 된 것이다. useEffect() 사용법 기본 형태 : useEffect( function, deps ) - function : 수행하고자 하는 작업 - deps : 배열 형태이며, 배열 안에는 검사하고자 하는 특정 값 or 빈 배열 import React, { useEffect } from 'react'; useEf..

티스토리 코드 블럭 하이라이트, 라인 넘버, 폰트 설정하기 (2) - 라인 넘버, 폰트 설정 [내부링크]

코드 블럭 하이라이트에 이어서 라인 넘버 설정 방법 이 코드를 하이라이트 설정했던 것 처럼 블로그 관리 > 스킨 편집 > HTML 탭에 들어가서 사이에 추가해주면 된다. 그리고 css 탭으로 이동해서 맨 아래에 이 코드를 붙여넣는다. /* Line Number CSS */ /* for block of numbers */ .hljs-ln-numbers { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; text-align: center; color: #B5B5B5; border-right: 1..

티스토리 코드 블럭 하이라이트, 라인 넘버, 폰트 설정하기 (1) - 하이라이트 [내부링크]

티스토리에 코드를 올리면서 코드가 좀 더 가독성이 좋게 보였으면해서 여러가지 방법을 찾아봤다. 가장 간단한 방법으로 티스토리 플러그인을 이용하는 방법이 있다. 블로그 관리에서 플러그인을 누르면 플러그인 목록이 뜬다. 그 중 코드 문법 강조 플러그인을 누르고 테마를 선택한뒤 적용을 누르면 끝이다. 하지만 플러그인의 강조가 밋밋한 감이 있기 때문에 조금 더 가독성을 높이려면 highlight.js를 사용하는 것을 추천한다. 사용 방법은 highlightjs.org/에 들어가서 Get Version을 누른다. highlight.js Version 10.3.2 Tiny tiny release, just to fix the website incorrectly not listing Javascript in the ..

새창을 여는 window.open() 함수 사용법 [내부링크]

웹브라우저에서 새창을 열기 위해서 가장 간단히 사용할 수 있는 방법이 자바스크립트 window 객체의 open() 함수를 사용하는 것입니다. 1. 문법(Syntax) var ret = window.open(url, name, specs, replace); 1.1. 반환값(ret) 새로 만들어진 창 객체가 반환됩니다. 창의 생성에 실패하면 null을 반환합니다. 이 객체를 통해서 새창을 제어할 수 있습니다. 예로 ret.close(); 로 창을 닫을 수 있습니다. 1.2. url 새창에 보여질 주소 입니다. 선택적인 값으로 비워두면 빈창(about:blank)이 보입니다. 1.3. name 새로 열릴 참의 속성 또는 창의 이름을 지정합니다. 선택적인 값으로 기본값은 "_blank" 입니다. 사용 가능한 값..

[JAVASCRIPT] 이미지 클릭시 새창띄우기 (base64 이미지) [내부링크]

JS 코드 : window.open 사용 : 이미지가 경로가 아닌 Base64 인코딩된 값 : width, height 이미지사이즈에 맞게 지정가능하다. 나의 경우 base64 인코딩 값이 이미지 src 여서 600px 로 지정해줌 const clickImg = (imgsrc,pageName) =>{ // alert(imgsrc); var imageWin = new Image(); imageWin = window.open("", "", "width=600px, height=600px"); imageWin.document.write(""); imageWin.document.write(""); imageWin.document.write(""); imageWin.document.title = pageName;..

[별내맛집/국밥맛집] 오겜 새벽이 아버지님이 운영하시는 우리나라국밥 [내부링크]

소고기 국밥 맛집 별내 맛집 별내 근처에 볼일이있어서 방문했다. 오징어게임 새벽이 역의 배우 정호연님의 아버지가 하시는 곳이라고 한다...;; TMI : 오겜 볼려고 넷플릭스 처음 결제하고 아이폰이라 구글크롬캐스트 샀다. 연예인 가족의 식당이라서 간건 아니고 작년부터 소고기 국밥 맛집이라고 친구가 추천해줘서 방문하게 되었다. 나는 국밥충이니깡~~~~ 국밥 뿐아니라 불고기도 팔공 고기완자 *_* 도 먹을수 있다. 첫 방문인데 지나가다 간판은 진짜 많이 봤당.ㅎㅎㅎㅎㅎㅎㅎㅎ 불고기도 맛있겟당. 4시쯤 식사시간이 아니여서 손님이 많진 않았는데 그 애매한 시간에도 사람이 꾀 있었다. 그리고 24시 라능.. 코로나 제한 풀려쓰니깡...(풀려도 안풀려도 불편함 없이 살았다 난 ... 슈퍼 집순이) 김치세트를 주고 ..

[역삼/이도] 나는 콜키지프리~ 근데 취해~~ 강추 이자카야 [내부링크]

역삼 맛집 역삼 강남 이자카야 역삼 이도 역삼역에서 쬐꼼 걷다 보면 역삼 이도를 찾을수있다. 역삼이 직장인들이 많다보니 평일엔 장사가 겁나 잘되서 주말은 콜키지 프리 이벤트를 한다. 콜키지 됴아해.. 식당 근처에 와인바틀샵이 있어서 엄청난 와인을 사서 도착했다. (나는 와알못) 예약 필수!!!!!! 나는 평일에 예약 했던걸로 기억한다 약속이 있다면 미리밀 예약하는 프로예약러가 되보자. 우리는 2명 와인도 2병 자리는 바 자리를 안내받았다. 한병은 방금 산거 한병은 내칭구가 소듕하게 품에 안고온 와인이다. 짱비싸고 짱 맛있다. 신난댜... 맛있는거 + 맛있는 와인 물병도 이쁘길래 찍어보았다 이집 물 도 잘한다. 후또마끼를 어마어마하게 만드시길래 신기해서 찍었음. 바자리는 이래서 됴아~~~ 엄청난 사이즈. ..

[React] date format / moment [내부링크]

moment Moment js는 날짜 및 시간에 대한 데이터를 이용할 경우, 가장 많이 사용되는 리액트 라이브러리입니다. 라이브러리 다운로드 $ npm install moment --save // 또는 $ yarn add moment 선언 import moment from 'moment'; //선언하지 않아도, 디바이스 혹은 locale의 시간을 불러온다. import 'moment/locale/ko';//대한민국 Command // format에 맞게 출력된다. const nowTime = moment().format('YYYYMMDD HH:mm:ss'); console.log(nowTime); // 출력 결과: 20210818 09:41:32 실제 사용예제 var nowTime = moment().f..

[React] Module not found: Can't resolve '라이브러리명' [내부링크]

리액트에서 만나는 이 오류는 새로운 라이브러리들을 다운로드 받아 사용하려고 할때 종종 나타거나 대부분은 협업시, 다른사람이 라이브러리를 설치했는데 나는 설치를 안하면 나타난다. 해결법은 간단하다. 1. 아래의 파일 및 폴더를 삭제한다. [File] package-lock.json [Directory] node_modules 2.아래의 명령어를 사용하여 모듈들을 재설치해준다. [Command] npm install *명령어를 실행해줄때는 명령어를 실행하는 경로를 항상 유념해주자 ( 올바른위치에서 커맨드를 실행) 만약 위 명령문에 오류가 난다면 npm install --force 포스란? 강제로 한다는 뜻이다. 강제로라도설치해야지 뭐 어떻하겠는가 3.실행 [Command] npm start webpack 다..

VS Code - 저장 시 자동 줄 정렬 끄기 [내부링크]

다른곳에서 소스를 받아와서 복사 후 붙여넣기만 하면 VS CODE가 자동으로 줄 정렬을 해주는데, 이 기능이 굉장히 좋을 때도 있지만 불편하게 만드는 경우도 있다. 예를들면 css는 개인적으로 한줄로 쭉 작성하는것을 선호하는 편이지만 VS CODE에 넣기만 하면 자동으로 단위별로 줄 정렬이 되어버린다. prettier와 같은 플러그인을 설치하여 옵션을 꺼봤지만 저장시 자동 정렬은 별도의 옵션이였다. 아래와 같이 옵션을 끄면 자동 정렬을 끌 수 있다. 저장 시 자동 줄 정렬 끄기c 1. 파일 - 기본 설정 - 설정 2. formatOnSave를 입력한다. 체크되어 있는 Format On Save 옵션을 체크를 해제하면 더 이상 저장할 때 자동으로 정렬이 되지 않는다.

[MySQL] 위도 경도 값으로 반경(거리) 구하기 [내부링크]

GPS를 이용한 거리 및 반경을 구하는 경우 MySQL을 이용하여 쿼리문의 정보를 가져오기 편하다. 예제 테이블 명 : MAP_INFO 예제 Lat 컬럼명 : P_LAT 예제 Lon 컬럼명 : P_LON 예제 예시 좌표값 : 37.4685225, 126.8943311 [WGS84 좌표계] SELECT *, (6371*acos(cos(radians(37.4685225))*cos(radians(P_LAT))*cos(radians(P_LON) -radians(126.8943311))+sin(radians(37.4685225))*sin(radians(P_LAT)))) AS distance FROM MAP_INFO HAVING distance

[Spring] Controller에서 데이터 받기 [내부링크]

Controller은 비지니스 로직을 처리하고 데이터를 가공한다. 이때 비지니스 로직을 처리하기위해 controller에서 데이터를 받는 방법에 대해서 알아보자. 크게 HttpServletRequest, @RequestParam, @RequestBody, @ModelAtrribute, @PathVariable이 있다. 다음 URL로 요청을 보낸다고 가정하자. http://localhost:8080/getInfo?id=3 HttpServletRequest.getParameter() 클라이언트의 요청정보를 확인하게해주는 HttpServletRequest를 이용하기 @GetMapping("/getInfo"); public void getInfo(HttpServletRequest request){ log.inf..

[문제해결] Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. [내부링크]

1. 문제상황 > 개발중 비정상적인 was 종료로 인해 다음과 같은 에러와 함께 재시작 되지 않는다. 실 운영환경에서도 이런경우가 있다. Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s). 2. 문제확인 > was 재시작을 위한 포트가 이미 사용중이기 때..

[Java/jsp] 자바로 이미지를 base64 인코딩 소스로 변환하는 함수 [내부링크]

자바로 이미지를 base64 인코딩 소스로 변환하는 함수입니다. 필요하실 때 참고하세요. public static String getBase64String( String[] imageUrl, String content ) throws Exception{ if( imageUrl.length > 0 ) { int imageUrlLength = imageUrl.length; String[] imageString = new String[ imageUrlLength ]; for( int i = 0; i < imageUrlLength; i++ ) { String filePathName = imageUrl[i].replace(“file:///”, “”); String fileExtName = filePathName...

ImageIO.write()를 이용하여 이미지 파일을 생성하는 예 [내부링크]

ImageIO.write() 는 다음과 같 3가지 형태로 사용할 수 있다. static boolean write(RenderedImage im, String formatName, File output) static boolean write(RenderedImage im, String formatName, ImageOutputStream output) static boolean write(RenderedImage im, String formatName, OutputStream output) 다음은 위에 제시된 방법 중 첫번째, File 클래스를 이용하여 이미지 파일을 생성하는 예이다 3번째 방법을 이용하면 Socket 등으로 연결된 원격 시스템에 이미지 데이터를 전달할 수도 있다. // URL 클래스를 이..

[Java] StringUtils.isBlank 와 StringUtils.isEmpty 차이 [내부링크]

java에서 get() NullPointerException 일때 자바 기본 라이브러리 외에 가장 빈번하게 사용되는 라이브러리로 Apache common 라이브러리를 들 수 있다. 이 중 StringUtils 패키지는 문자열 처리 시에 유용한 기능들을 많이 제공한다. isBlank와 isEmpty의 차이점은 아래 예제와 같이 공백(whitespace) 처리이다. isBlank의 경우 공백을 blank 즉, 비어있는 값으로 처리하며 isEmpty의 경우 공백을 비어있지 않다고(isEmpty가 false) 리턴한다. StringUtils.isBlank: 공백을 빈값으로 처리 StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils..

[Java] base64 인코딩 디코딩 (encoding / decoding) [내부링크]

일단 인코딩, 디코딩을 쉽게 설명을 하면 "hello world" 라는 단어를 인코딩을 하면 base64형태로 인코딩 됩니다. base64를 디코딩하면 "hello world"라고 나오게 되는 것이죠 자바 버전별로 사용되는게 너무많아서 찾다보니 stackoverflow에 잘 정리된 글이 있어서 참조했습니다. 1. Java 6 and Java 7 java6부터는 javax.xml.bind.DatatypeConverter를 사용할 수 있습니다. 이건 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다. encoding 사용예제) byte[] message = "hello world".getBytes("UTF-8"); String encoded = DatatypeConverter.printBase64Bin..

base64인코딩한 이미지를 디코딩하여 저장 [내부링크]

public class Base64ToImgDecoder { public static boolean decoder(String base64, String target){ String data = base64.split(",")[1]; byte[] imageBytes = DatatypeConverter.parseBase64Binary(data); try { BufferedImage bufImg = ImageIO.read(new ByteArrayInputStream(imageBytes)); ImageIO.write(bufImg, "jpg", new File(target)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTr..

[Java] Base64 인코딩, 디코딩하는 방법 [내부링크]

이 글은 Java에서 Base64를 다루는 방법을 설명한 글입니다. 먼저 base64에 대해서 설명하겠습니다. base64는 원래는 복잡한 이유와 설명이 있는 데 간단하게 설명하면 우리가 byte 형식으로 되어진 binary데이터를 프로그램 간에 좀 더 다루기 편하게 ascii코드로 이루어진 데이터를 base64라고 합니다. 더 간단하게 이야기 하면 「byte데이터나 stream 데이터를 string 형식으로 표시한 것입니다. 그러나 그 string형식도 encoding에 관계없는 ascii코드로 되어있다.」라고 알고 있으면 이해하기 쉽습니다. 먼저 간단한 파일을 읽어서 base64형식으로 변환하겠습니다. 제 pc의 d드라이브의 work라는 폴더에 hello world라고 작성한 텍스트 파일(test.t..

[메이븐] 메이븐 다운로드 및 설치(maven download) [내부링크]

0. 아래 URL에서 메이븐 최신버전을 다운받자.(Binary Zip 파일) https://maven.apache.org/download.cgi 1. 다운받은 파일을 적당히 압축을 풀자(저의경우 d:\java 폴더에 다운받아서 압축을 풀었습니다. D:\java\apache-maven-3.3.3) 2. 환경변수에서 MAVEN_HOME을 "D:\java\apache-maven-3.3.3"로 주고 PATH에 "D:\java\apache-maven-3.3.3\bin"을 추가하자. 컴퓨터 -> 속성 -> 고급 -> 환경변수 3. mvn -v 명령으로 설치괸 메이븐의 버전을 확인하면서 경로설정이 잘되었는지 확인하자. 더보기 출처 : http://ojc.asia/bbs/board.php?bo_table=LecGrad..

[JAVA] 자바 버전 변경하기 (Java 8 -> Java 11) [내부링크]

1. Java jdk 11 다운로드 www.oracle.com/java/technologies/javase-jdk11-downloads.html Linux, macOS, Windows 등 본인의 운영체제에 맞는 버전을 선택해 다운받는다. 예전엔 안그랬던 것 같은 데 이번에 다운받을 때는 오라클 계정으로 로그인해야만 다운을 받을 수 있다. C:\Program Files\Java\jdk-11.0.9 보통 위와 같은 저장 경로로 다운받아진다. 2. 환경변수 설정 이제 환경변수만 다시 설정해주면 끝!! 환경변수는 [시스템 속성] 대화상자의 [고급] 탭의 [환경변수] 버튼을 클릭해서 설정할 수 있다. 이게 자주 사용하지 않다보니깐 [시스템 속성] 대화상자 여는법을 까먹을 수가 있는데, 간단하게 [시작] 옆의 [검..

[세탁특공대 솔직 후기]거짓의 거짓이 꼬리를 무는 상황 [내부링크]

평소 자주 이용하는 세탁특공대 어플 가격도 저렴한편이고, 현관문에서 수거하고, 현관문까지 가져다주고 매번 세탁소를 방문하기 어려운 직장인 등에게 아주 필수적인 세탁 서비스다. 특히 , 새벽시간에 수거하고 2~3일후 새벽 출근시간전에 현관문에 걸어준다. 비대면 서비스 의미는 아주 너무 맘에 들고 평소 셔츠와 슬랙스를 입는 나로썬 깔끔하게 드라이 하고 다림질까지 편리 하게 이용했는데... 사건은... 토요일 새벽에 세탁 물건을 보내고 월요일 새벽에 받기로 예약을 했다. 월요일 출근전에 받을수 있는... 월요일에 사무실 이사로 인해 단체복을 입는 행사가 있었다. 깔끔한 유니폼을 입기위해 옷을 세탁을 맡겼고, 큰기업이기에 믿었다. 월요일 아침.. 원래 대로라면 새벽 6시전에 현관문에 걸려있어야하는데 아침에 연락..

[오라클(Oracle)] 그룹 함수 (ROLLUP, CUBE, GROUPING 등) [내부링크]

오라클에 있는 다양한 그룹함수에 대한 내용이다. CREATE TABLE 월별매출 ( 상품ID VARCHAR2(5), 월 VARCHAR2(10), 회사 VARCHAR2(10), 매출액 INTEGER ); INSERT INTO 월별매출 VALUES ('P001', '2019.10', '삼성', 15000); INSERT INTO 월별매출 VALUES ('P001', '2019.11', '삼성', 25000); INSERT INTO 월별매출 VALUES ('P002', '2019.10', 'LG', 10000); INSERT INTO 월별매출 VALUES ('P002', '2019.11', 'LG', 20000); INSERT INTO 월별매출 VALUES ('P003', '2019.10', '애플', 150..

[Oracle] 오라클 고급쿼리 – 계층적 쿼리 (level) [내부링크]

Connect by 계층적 쿼리는 오라클만이 가진 기능 중 하나로, 데이터를 선택하여 계층적인 순서 그대로 리턴하는데 사용된다. 예를 들면, 아래와 같이 직원 테이블이 있다고 생각 하자. 직원 직속상사 직급 철수 순희 대리 순희 영희 과장 길동 순희 대리 영희 개똥 부장 개똥 사장 기본적인 SQl을 사용하여 계층 관계를 표현하는것은 불가능하다. 하지만 재귀 PL/SQL 루틴과 connect by 를 사용한다면 표현이 가능하다. 재귀 PL/SQL은개발과 처리 과정에서 다소 많은 시간이 필요로 한다는 단점이 있으며, 변경사항이 있을 때 다른 저장 프로시저를 만들거나 보다 복잡하게 변경해야 한다는 점도 무시 할 수 없다. 이에 오라클에서는 connect by라는 확장된 select 구문을 지원한다. selec..

[아웃백 꿀팁] 빵 맛집 아웃백 / 패밀리 레스토랑중 甲 [내부링크]

아웃백 강남점 아웃백 논현점 아웃백 꿀팁 이번주 건강검진 일정 덕분에 ^^ 일주일내내.. 음식도 가려먹고 전날은 카스테라 한개 먹고.. 금식 했다. 건강건진 끝나고 바로 아웃백.. 위 대장 내시경 둘다 수면으로해서 정신이 몽롱 인생 첫 내시경이었는데 장청소나 위약먹는게 힘들었다. 응가를 다 빼내는 약이 너무 맛도없고 끔찍하다. 속이 깨끗한걸 확인하고 다시 채우러 왔다. 건강검진 끝나면 열라 쳐먹을꺼야!! 하면서 1순위 아웃백 도착 평일 점심인데 대기가 있었다. 아웃백은 런치세트를 이용하면 다양하게 저렴하게 먹을수 있어서 너무 좋다 런치는 4시까지 므로~~ 꼭 런치로 이용하시길... 런치세트 2명기준 에이드 2잔 스프2개 후식 커피 or 녹차 가 제공된다. 주문은 항상 먹는 조합인 #아웃백 주문 꿀팁 - ..

[군자 맛집/삼겹살 맛집]싹쓰리 솥뚜껑 김치 삼겹살! 골목길 숨은 맛집 [내부링크]

군자역 맛집 건대 맛집 군자 삼겹살 싹쓰리 솥뚜껑 김치 삼겹살 "군자 코엑스짐" 에서 운동하고 코엑스짐 리모델링 하더니 기구도 싹 바껴서 번쩍번쩍 운동할 맛이 난다. 뒷문으로 나오면 바로 반겨주는 삼겹살집 매번 지나치다가 처음으로 방문했다. 삼겹살 3인분을 주문하면 4인분을 주신다 (이벤트 인듯) 우린 두명이서 삼겹살 3인분을 주문해서 4인분을 받고 열무국수 + 밥한공기 주문! 볶은밥도 맛있다는데 너무 배불러서 못먹었다. 솥뚜껑 위에 올라가 있는 삼겹살 4인분 첨에 2인분만 주문했다가 안될꺼같아서 1인분 추가 주문한것 (2인분으로 갖다주심) 큰 솥뚜껑에 김치랑 버섯 양파 콩나물 두부 까지 올려주신다 솥뚜껑 삼겹살인 이맛에 먹는거쥬 야무지게 두부까지 이런 삼겹살 디게 오랜만이다 ㅎㅎㅎ 약간 예전 느낌 나는..

오라클 NL Join, Sort Merge Join, Hash Join 특징 총정리 [내부링크]

NL Join(Nested Loops Join) 수행 원리 1) 다음은 NL Join의 수행 방식을 단계별로 나타낸 것입니다. ① 선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음 → 이때 선행 테이블에 주어진 조건을 만족하지 않는 경우 해당 데이터는 필터링 된다. ② 선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는지 찾으러 감 → 조인 시도 ③ 후행 테이블의 인덱스에 선행 테이블의 조인 키가 존재하는지 확인 → 선행 테이블의 조인 값이 후행 테이블에 존재하지 않으면 선행 테이블 데이터는 필터링 됨 (더 이상 조인 작업을 진행할 필요 없음) ④ 인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블을 액세스 → 후행 테이블에 주어진 조건까지 모두 만족하면 해당 행을 추출버퍼에 넣음. ..

[ORACLE]오라클_제약조건( CHECK ) [내부링크]

제약 조건중 하나인 CHECK 기능 CHECK - 입력 값이 조건에 맞지 않으면 DB 에서 받지 않는다. 즉 오류를 일으킵니다. - 입력 값의 범위를 지정 할 수 있다. 즉 CHECK은 입력할수 있는 값의 범위를 설정해 주는것입니다. 예를들어 2000~10000 까지만 입력해! 라고 설정하면 그 범위를 벗어난 값이 들어올 수 없다는 거죠 그리고 주의할 점은 CHECK 역시 NOT NULL처럼 나중에 조건을 추가해줄 경우 이미 들어가 있는 데이터가 조건에 위배되면 적용이 안됩니다. 제약조건 따로 추가하는 부분에서 설명한거처럼 CHECK 제약조건을 설정해 주면 됩니다. - ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건](범위) ALTER TABLE emp ADD CON..

MSSQL 자동 증가값 세팅 및 초기화( IDENTITY) [내부링크]

기본 사용법 사용 create table test( no int identity(1,1) NOT NULL, --(시작할 숫자값, 증가할 숫자값) ) 인서트시 증가된 값 얻어오기 Identity를 설정해준 테이블에 인서트한 경우 인서트한 identity 불러오기 위해서는 보통 다시한번 select를 해주게 된다. 인서트 쿼리 뒤에 select @@Identity을 붙여 주면 insert한 row의 identity를 불러올 수 있다. 사용예) insert into test(name) values('James') select @@Identity as 'id' (as 'id'는 별칭이므로 아무거라도 상관 없다.) 증가값을 임의로 정하기 :Identity를 선언한 경우에는 인서트 시 ,Identity선언 컬럼의 ..

숫자함수 ROUND, FLOOR, CEIL ,TRUNCATE [내부링크]

ROUND: 반올림 지정하는 소숫점 자리로 반올림한다. SELECT ROUND(135.375, 2); -- 135.38 FLOOR: 버림 (to integer) 가장 가까운 '정수'로 버림하여 반환한다. SELECT FLOOR(135.375); -- 135 CEIL 또는 CEILING: 올림 (to integer) 가장 가까운 '정수'로 올림하여 반환한다. SELECT CEIL(135.375); -- 136 SELECT CEILING(135.375); -- 136 TRUNCATE: 제거 학습 중 TRUNCATE라는 것을 발견했다. 이것은 사실상 위의 모든 속성과 다르다고 할 수 있는데, 그냥 n째 자리까지 남기고 아예 제거를 해버리기 때문이다. 그래서 결과는 아래와 같다. SELECT TRUNCATE(1..

[SQL] ANY / ALL / EXISTS / NOT EXISTS [내부링크]

ANY 연산자는 주로 서브쿼리에 사용되며 하나라도 만족하는 값이 있다면 true를 반환한다. ANY(서브쿼리 or 값) 활용 예제 1) sal > 300 OR sal > 400 OR sal > 500 이므로 sal이 300보다 크면 조건을 만족한다. SELECT ename, sal FROM emp WHERE sal > ANY(300, 400, 500); 활용 예제 2) 서브쿼리에서 값이 여러개 나올 수 있는 경우 ANY 연산자를 활용하였다. SELECT ename, sal FROM emp WHERE sal > ANY( SELECT sal FROM emp WHERE deptno = 20 ); ALL 연산자는 전체 만족해야 true를 반환하는 특징을 가지고 있다. ALL(서브쿼리 or 값) 활용 예제 1) ..

SQLD 요약 정리본 (간단 버전) [내부링크]

SQLD 요약 정리본 (간단한 버전) https://cafe.naver.com/sqlpd/7810 요점 정리의 간단한 버전입니다. 13페이지지만 다 못보고 시험 볼꺼 같네요ㅠㅠ 모두 화이팅

SQLD 개념 정리 모음 [내부링크]

1과목 데이터 모델링의 이해 1-1 데이터 모델링의 이해 1-2 데이터 모델과 성능 2과목 SQL 기본 및 활용 2-1 SQL 기본 2-2 SQL 활용 2-3 SQL 최적화 기본원리

SQLD 기출문제 및 해답 [내부링크]

곧 다가오는 SQLD시험에 도움이 되셨으면 좋겠어요 1. 21회차 2. 30회차 3. 34회차 4. 단답형

[데이터베이스] CRUD 기본 사용법 [내부링크]

기본적인 CRUD 문법 데이터베이스 생성 - Create -- 데이터베이스 생성 CREATE DATABASE TESTDB; -- 데이터 베이스가 생성됬는지 확인 SHOW DATABASES; -- 데이터베이스 사용 USE TESTDB; -- 데이터베이스 삭제 DROP DATABASE TESTDB; 테이블(Table) 만들기 - Create -- 테이블 생성 CREATE TABLE student( student_id int primary key auto_increment, name char(10), addr char(50), phone char(20), add_Date DATETIME ); -- 현재 테이블들의 목록 show tables; -- 테이블의 필드 확인 desc student; 테이블 데이터 조회..

[데이터베이스] CRUD란? (Create,Read,Update,Delete) [내부링크]

흔히 소프트웨어를 정의하고 만들때, "CRUD 써서 하고" 라는 말을 많이 합니다. 정의 (위키백과) CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/검색/갱신)을 가리키는 용어로서도 사용된다. 이름 조작 SQL Create 생성 INSERT Read(또는 Retrieve) 읽기(또는 인출) SELECT Update 갱신 UPDATE Delete(또는 Destroy) 삭제(또는 파괴) DELETE

Klip 카카오 가상화폐 추천 링크 [내부링크]

디지털 지갑 Klip으로 초대합니다. 지금 가입하고 2 KLAY 받으세요 (150만 KLAY 소진 시까지) https://klipwallet.com/?target=/klip-event/invite-friends-popup3%3FklipId%3DKZGQ2NzY2NDFpbnZpdGVyMTE0ODk5Nw%3D%3D 디지털 지갑 Klip 디지털 자산을 쉽고 안전하게 klipwallet.com 카카오가 모바일 메신저 카카오톡에 암호화폐 지갑 클립 (Klip)을 탑재하여 자사의 블록체인 플랫폼인 클레이튼의 대중화 기반을 마련했습니다! 카카오는 카카오톡에서 더보기를 클락하면 '클립'이란느 암호화폐 지갑 메뉴를 볼 수 있도록 서비스를 추가했습니다. 현재 메뉴만 추가 상태 이고, 아마 21년 하반기 중으로 정신 서..

[양양맛집] 양양째복 비단조개 맛집! 솔직 후기 [내부링크]

강원도 맛집 양양 맛집 속초 맛집 양양 째복 강원도 여행 가서 계속 맛있는 음식만 먹었지만 이건 진짜다.. 다시 서울로 돌아가는날 호텔 체크아웃하고 마지막 식사를 고심해서 골랐다. 강원도 속초 양양등 여행가면 흔하게 먹는 장칼국수 나 메밀국수가 먹기 싫었다. 개인적으로 강원도 에서 먹었던 장칼국수를 왜 먹는지 이해 못하는 1인 이다. 그것도 왜 1시간씩이나 기다려서 고추장물을 먹는거지? 째복이라고 부르는 비단조개 특이하기도 하고 인스타나 블로그에서 광고하는 맛집이 아니길래 한번 도전 해본다 생각하고 방문 멀리멀리 돌아 도착 대기는 없었고 우리가 방문했을땐 손님이 1테이블 먹다 보니 사람이 북적북적 했다. 메뉴판은 따로 없고 벽에 붙은게 메뉴판! 맑은 째복탕2인과 째복무침을 주문했다 우리가 주문한건 다 공..

[양양 맛집] 감나무식당 송이황태해장국이 유명하고 직원이 불친절한 집 [내부링크]

양양 맛집 강원도 맛집 황태해장국 맛집 양양 점심 맛집 양양에 방문하자마자 먹었던 황태해장국 비오는 여름날 도착했다 덥지도 춥지도 않고 습하고 비가 부슬부슬 내려서 따땃한 국밥을 한사바리 하러 왔다. 대기가 오지게 길다. 양양을 들어가는 길목에 딱 있기때문에 강원도 를 방문했던 사람이라면 "어? 나 여기 지나가다 본거 같아" 이런 너낌 이다.. 우리는 3명이 방문 송이황태해장국을 주문했다. 그리고 황태구이까지 먹는것에 돈을 아끼지않는 배운돼지들은 이렇게 점심을 먹는다. 해장국은 밥이 따로 나오고 국밥은 밥이 토렴? 식으로 같이 나오는것인데 죽같은 느낌이라고 했다. 국밥 먹어볼껄 궁금쓰~ 난 엄청난 국밥충이지만 이 국밥은 송이가 들어갔기때문에 가격이 상당하다. 밑반찬s 아래 빨간 고추장같은게 창난젓이다. ..

[중식코스요리]메이탄 강남점 중식 코스요리 추천 [내부링크]

중식맛집 중식 코스요리 메이탄 강남 중식 코스요리를 오랜만에! 왔다. 메이탄은 체인점으로 깔끔한 중식 을 먹고싶다면 추천 푸짐이랑 방문한 메이탄 강남점 주차 가능이다. 오피스텔 건물 상가에 식당이 있어서 지하 주차장이용하면되고 주차권까지 받아서 2시간 무료 이날 주문한 메뉴는 1인당 4만 5천원짜리 코스요리 원래는 3인 이상부터 가능한데 요즘은 코로나라 2인도 가능하다하셔서 주문했다. 기본 상 셋팅 물도 생수가 아닌 차가 나온다 중식집은 항상 그렇드라 중식의 베이스인 단무지와 짜사이~ 짜샤~이~~ 먼저 나온 음식은 샐러드 냉채 맛있었다. 입맛을 돋아주기 딱 두번째는 매생이 누릉지 스프 이거 진짜 맛있음 냄비채 있으면 다 먹을수 있는맛이고 가운데 하얀 감자슬라이스가들어있길래 으깨서 먹으려 했는데 관자였다 ..

[JAVA] SSH 터널링 후 DB 연결 [내부링크]

DB 연결은 SSH 탭에 포트포워딩 하는 호스트와 포트 등 적어주고 DB 연결 하면 뚝딱 해결했지만 난 업무적으로 자바코드로 DB 연결후 엑셀 파일로 출력 해야하는 문제가 있었다. Maria DB를 사용 하였다. SSH 터널링 -> 포트포워딩 -> 포트포워딩된 포트를 넣어줘서 DB 연결 public class DBcon_73 { String driver = "org.mariadb.jdbc.Driver"; Connection conn = null;// DB 접속 객체선언 PreparedStatement pstmt = null;// sql 실행할 객체 선언 ResultSet rs = null;// sql 실행결과를 담을 객체 선언 private Session session; public static void..

Mybatis 에서 #{} 과 ${}의 차이 [내부링크]

회사에 취직하고나서, 쿼리문을 작성하는데 이상한 점을 발견했다. 바로 Mybatis 를 이용해 XML에 쿼리문을 작성하는데, 파라메터 작성법이 그동안 내가 해왔던 것과는 다른 것이었다. 아래는 그동안 내가 써왔던 방식이다. SELECT USER_NM , USER_ID FROM USER WHERE USER_ID = ${USER_ID} AND USER_PWD = ${USER_PWD} 그리고 이건 회사에서 사용하는 방식이다. SELECT USER_NM , USER_ID FROM USER WHERE USER_ID = #{USER_ID} AND USER_PWD = #{USER_PWD} 무슨 차이가 있는지 보이는가? 바로 ${} 가 #{} 로 바뀌었다! 왜? 왜 $을 안쓰고 #을 쓸까? 너무 궁금해서 찾아보았다. ..

[Java] POI 정리 [내부링크]

Workbook wb = null; Sheet sheet = null; Row row = null; Cell cell = null; // 셀 병합 sheet.addMergedRegion(new CellRangeAddress(1, 1, 1, 2));// 가로병합 sheet.addMergedRegion(new CellRangeAddress(1, 2, 1, 1));// 세로병합 // 틀고정 sheet.createFreezePane(1, 2);// 1열, 2행 고정 // 셀 스타일 CellStyle style = wb.createCellStyle(); // 가로 정렬 style.setAlignment((short)1);// 가로 정렬 왼쪽 style.setAlignment((short)2);// 가로 정렬 중간..

[군자 맛집/ 청와옥] 순댓국 맛집인데.. 오징어볶음이 미친곳 [내부링크]

군자 맛집 광진구 맛집 순댓국 맛집 오징어 볶음 맛집 푸짐이 회사 근처인 청와옥을 방문 음식 사진을 절대 찍지 않은 푸짐이가 진짜 너무 맛있었다고 오징어 볶음을 찍어왔다. 주말에 나를 데리고 가겠다며.. 사진 비주얼로 봐선 별로 였다 솔찍히.. 코엑스짐 군자점 을 방문하여 구경 하고.. 헬스장이 참좋다 운동 욕구 뿜뿜 밥을 먼저 먹으려 건너편인 청와옥 방문 메뉴판은 이렇게 되어있다. 공기밥 대신 가마솥밥으로 변경 할수도있고 편백정식은 편백찜 + 순대국밥이 나온다! 추천 메뉴인 오징어숯불 구이를 주문했다. 육사시미와 육회도 궁금하다. 주문은 순대국밥 정식 + 오징어 볶음 물부터 정갈함 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이렇게 차가 나오는 식당 너무 좋아함 엄마가 어렸을때 부터.. 너무 사랑을 줘가며 키워서 엄마 본인은 ..

[MS-SQL]UNION ALL로 소계, 합계 구하기 [내부링크]

UNION ALL로 소계, 합계 구하는 법 1. 원하는 행을 SELECT한다. 2. UNION ALL 3. 소계를 구하고 싶은 컬럼을 GROUP BY 해서 SUM 한다. 4. UNION ALL 5. 합계를 구하고 ORDER BY로 SORTING한다. 예를들어서 A~J까지의 사람이 있고 STEP에 따라서 VALUE라는 값을 부여받을때 VALUE에 대한 소계를 구하고 이에 대한 총합을 구하기 위해서는 다음과 같이 할수있다. 테이블 SELECT A.* INTO #TEMP FROM ( SELECT 'A' NAME, '1' STEP, 100 VALUE UNION ALL SELECT 'B' NAME, '1' STEP, 100 VALUE UNION ALL SELECT 'C' NAME, '1' STEP, 100 VAL..

[SQL] MySQL 주차 구하기 WEEK [내부링크]

국립국어원에 따르면 사전적 기준으로 보면 한 주의 시작은 월요일, 한 주의 마지막 날은 일요일로 되어있다. 외국에서는 일부 국가에서 일요일을 시작일로 정하는 경우가 있지만 일반적으로 월요일을 시작으로 한다. 우리나라도 월요일을 시작을 하고 있지만 이상하게 달력은 일요일이 처음에 오도록 제작한다. 기준일에 따라 통계가 달라지기 때문에 한 주의 시작일은 중요하다. 고객의 요구사항에 맞게 월별 통계를 어떻게 보여줄 것인가는 개발자의 몫이다. 고객이 한 주의 시작을 일요일, 월요일로 요청할지 아무도 모른다. 특히 해외 프로젝트일 경우에는 재차 확인을 해야 한다. 1. 주의 시작일 월요일, 일요일 결정 2. 월이 겹치는 주의 기준은 시작일이 일요일이면 수요일, 월요일이면 목요일이 어느 월에 속해 있는가로 결정(시..

Git Config 설정 확인 및 변경하기 [내부링크]

git을 사용하는 경우 때때로 config 설정에 대한 내용을 보거나 확인 할 필요가 있습니다. 예를들어 사용자 이름이나 email 등을 확인할 수 도 있겠죠. 이런 설정 내용을 확인하기 위해서 config를 사용합니다. # git config 알아보기 만약 전체 config 리스트를 보려면 어떻게 할까요? 이때는 아래와 같이 list 플래그를 사용합니다. git config --list 위의 명령어를 사용할 경우 아래와 같이 여러 config 정보가 모두 리스트로 출력하게 됩니다. push.default=simple user.name=YourName user.email=YourEMail core.repositoryformatversion=0 core.filemode=false core.bare=fals..

자바 이클립스에서 MariaDB 연결하기 [내부링크]

MariaDB Connector 다운로드 먼저 MariaDB Connector 파일의 다운을 위해 아래 링크 사이트로 이동합니다. https://downloads.mariadb.org/connector-java/ 이동 후 다운로드 버튼을 눌러줍니다. MariaDB Connector/J .jar files 를 클릭해줍니다. mariadb-java-client-2.2.5.jar 을 클릭하여 다운로드해줍니다. 버전은 시간이 지남에 따라 바뀔 수 있습니다. 이클립스에서 jar파일 불러오기 MariaDB를 연결할 프로젝트에 마우스 오른쪽 버튼 -> Build Path -> Configure Build Path 로 들어가 줍니다. Java Build Path -> Libraries -> Modulepath -> A..

Node JS 기초 - nodeMailer / server 만들기 [내부링크]

Node JS 는 front-end로 많이 설명하는데, 쉽게 생각하면 서버 프로그래밍 언어 + 자바스크립트 입니다. -> 자바스크립트만 알면, 클라이언트, 서버 개발이 다 가능해 진다. 공부 출처 : 유투브 개발자의품격 - 한 시간만에 끝내는 Node.js 입문 링크 : https://www.youtube.com/watch?v=toLDNN4FQv nodemailer mailtrap.io -> https://mailtrap.io/ nodemailer 사용 -> https://nodemailer.com/about/ npm install nodemailer mailtrap.io 가입후 이렇게 메일을 보낼수 있는 정보가 나옵니다. 복사하여 코드에 붙여넣기 해주시면 됩니다. emailSender.js const ..

JDBC- MariaDB와 Java연동 [내부링크]

JDBC - Java Database Connectivity - 자바에서 DB 프로그래밍을 하기 위해 사용되는 API ==> 데이터베이스 종류에 상관없다. JDBC API 사용 어플리케이션의 기본 구성 - JDBC 드라이버 : 각 DBMS에 알맞는 클라이언트 JDBC 프로그래밍 코딩 흐름 1) JDBC 드라이버 로드 2) DB 연결 3) DB에 데이터를 읽거나 쓰기 (SQL문) 4) DB 연결 종료 JDBC 커넥터는 https://downloads.mariadb.org/connector-java/ 위 링크에서 다운로드 가능합니다. 다운 받은 커넥터를 라이브러리에 추가 해줍니다. 아래는 예시로 작성한 코드입니다. public class MariadbConnect { private static Connect..

[광화문맛집]디라이프스타일키친 - 쀼의 세계 에서 본거같아! [내부링크]

광화문 맛집 드라마 협찬 맛집 부부의 세계 맛집 데이트 맛집 디라이프스타일키친 드라마 못보는 병에 걸려서 드라마 안보는데.. 쀼의 세계는 너무 인기가 많아서 12화 부터봤다. 중간부터 봐도 이해가 되는 신기한 드라마 무튼 쀼에 세계에 나왔던 이쁜 공간 드라마 내용 과 어울리지 않지만 진짜 이쁘고 분위기 좋았음 천장이 높아 보이길래 당연히 고층에 위치할꺼라 생각했는데 지하였다. 주문은 단순하게... 2인 세트 + 리조또 ? 같은걸 주문했다. 2인세트 = 스테이크(메쉬포테이토) + 해물스튜(파스타면나중에추가해줌) +스테이크 샐러드 + 에이드 2잔 이쁜 에이드 두잔 맛은 평범했던거 같다. 기억이 나지 않는다 . = 획기적인 맛은 아니다. 샐러드.. 사진찍기전에 먹어버렸다. 다이어트 를 빡시게 하는 친구가 있어..

SOAP(Simple Object Access Protocol)이란? [내부링크]

SOAP(Simple Object Access Protocol)이란? 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다. 웹 서비스에서 기본적인 메시지를 전달하는 기반이 됩니다. 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 됩니다. XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)과 상호 중립성(interaction neutrality)의 개념을 가지고 왔습니다. SOAP..

[네트워크] RTSP(Real Time Streaming Protocol) 이란 [내부링크]

RTSP(Real Time Streaming Protocol)은 스트리밍 미디어 서버를 컨트롤 하기위한 통신시스템등을 위해 고안된 네트워크 프로토콜입니다. (참고 문서 : RFC2326) 이 프로토콜은 비디오 혹은 오디오 기능을 가진 클라이언트와 실시간으로 미디어 스트리밍하는 시스템에 사용되며, 미디어 서버를 원격으로 제어할 때 씁니다. 명령어는 "PLAY", "PAUSE" 같이 VCR 동작과 비슷하며 시간 정보를 바탕으로 서버에 접근하게 됩니다. 실제 미디어 스트리밍 데이터를 전송하지 않습니다. 대부분의 RTSP 서버는 RTP 규약을 사용해서 전송 계층으로 실제 오디오/비디오 데이터를 전송합니다. RTSP 명령어 RTSP 규약은 HTTP 규약하고 비교해볼때, 문법이나 동작이 비슷합니다. 하지만 HTTP..

실시간 스트리밍 프로토콜-RTSP(Real Time Streaming Protocol)란? [내부링크]

RTSP(Real Time Streaming Protocol)란? RTSP(Real Time Streaming Protocol)은 우리말로 실시간 스트리밍 프로토콜입니다. RTSP는 스트리밍 미디어 서버를 제어할 목적으로 설계된 네트워크 제어 프로토콜로써, 실시간으로 음성이나 동영상을 송수신하는 통신 규약이며, 인터넷 프로토콜의 응용계층에서 동작하는 특징을 가지고 있습니다. RTSP는 리얼네트워그, 넷스케이프, 컬럼비아 대학교에서 개발되었습니다. 최초 초안이 1996년 IEFT에 제출되어, IETF의 MMUSIC WG(Multipatry Multimedia Session Control Working Group)에 의해 표준화되어서 RTSP 1.0은 1998년 ‘RFC 2326’에 출판되었고, RTSP 2..

Deep Learning(ANN, DNN, CNN, RNN, SLP, MLP) 비교 [내부링크]

Machine Learning vs. Deep Learning www.analyticsvidhya.com ANN(Artificial Neural Network) - 인공신경망 모든 비선형 함수를 학습 모든 입력을 출력에 매핑하는 가중치를 학습할 수 있는 능력 활성화 함수는 네트워크에 비선형 속성 도입으로 입력과 출력 사이 복잡한 학습을 하는데 도움 학습과정에서 파라미터 최적값 찾기 어려움 Overfitting에 따른 문제 SLP(Single Layer Perceptron) - 단층 퍼셉트론 퍼셉트론 : 학습 능력을 갖는 패턴분류장치 단일 퍼셉트론으로 구성 MLP(Multi Layer Perceptron) - 다층 퍼셉트론 여러층의 퍼셉트론으로 적어도 1개 이상의 은닉층(hidden laye..

이미지 분류(image classification)와 물체 검출(object detection)의 차이는? [내부링크]

새로운 분야의 언어는 항상 낯설다. 처음 영상 처리 분야의 논문을 읽기 시작했을 때 많은 단어들은 나에게 외계어와 같았다. 영어라서 장벽이 있었던 것도 사실이지만, 그보다 더 큰 문제는 사전을 찾아서 뜻은 알아도 도대체 이 단어가 무엇을 의미하는 것인지 제대로 알기 힘든 경우가 많았다. 나같은 공대생에게 "current"라는 단어를 제시하면 "전류"가 먼저 생각날 것이다. 하지만 문과생에게는 "현재의, 지금의"라는 뜻으로 보일 가능성이 높다. 그러니까 어느 정도 그 분야에 대한 선지식이 없으면 영어를 잘해도 해석을 쉽사리 해내지 못한다. 컴퓨터 비전 및 딥러닝 분야를 처음 접하는 사람들에게도 이런 경험이 많이 있을 것이다. 이미지 분류(image classification), 이미지 인식(image re..

물체 감지 : 속도 및 정확도 비교 (더 빠른 R-CNN, R-FCN, SSD, FPN, RetinaNet 및 YOLOv3) [내부링크]

서로 다른 물체 감지기를 공정하게 비교하는 것은 매우 어렵습니다. 어떤 모델이 가장 좋은지에 대한 정답은 없습니다. 실제 애플리케이션의 경우 정확성과 속도의 균형을 맞추기 위해 선택합니다. 검출기 유형 외에도 성능에 영향을 미치는 다른 선택 사항을 알아야합니다. 기능 추출기 (VGG16, ResNet, Inception, MobileNet). 추출기에 대한 출력 보폭. 입력 이미지 해상도. 매칭 전략 및 IoU 임계 값 (예측이 손실 계산에서 제외되는 방식). 비 최대 억제 IoU 임계 값입니다. 하드 예제 마이닝 비율 (양수 대 음수 앵커 비율). 제안 또는 예측 수입니다. 경계 상자 인코딩. 데이터 증대. 훈련 데이터 세트. 훈련 또는 테스트에서 다중 스케일 이미지 사용 (자르기 포함). 객체 감지를..

[Object Detection] Faster R-CNN, YOLO, SSD, CornerNet, CenterNet 논문 소개 [내부링크]

object detection에 대한 개념 정리 및 해당하는 딥러닝 논문들을 소개한 글입니다. 최근 object detection에 관련해 계속 공부하고 있었는데, 한번 방법 별로 논문들을 정리해보면 좋을 것 같아서 글을 작성하게 되었습니다 :) Object Detection 이란? object detection은 classification + localization 으로 여러가지 object에 대한 classification과 그 object들의 위치정보를 파악하는 것을 동시에 하는 분야입니다. 의료장비, 자율주행자동차, 대형마트 등 활용되는 영역이 매우 넓고, 연구도 매우 활발히 되는 분야입니다. 위 그림만 봐도 굉장히 다양한 논문들이 나오고 있는 것을 볼 수 있습니다. 일반적으로 object det..

CMS 와 VMS ? ( CCTV S/W ) [내부링크]

CCTV 관제 시스템 중 CMS 와 VMS 란? CMS 란 Central Monitoring System 의 약자로, 중앙 관리 시스템이라 하며 VMS 란 Video Management System 의 약자로, 영상 관리 시스템이라 한다. 국내에서는 2005년부터 CMS를 사용했으며, 2008년부터 ~ 현재 VMS를 사용하는 추세이다. 다음은 CMS 와 VMS 의 차이점을 서술한 표이다. 구분 CMS VMS 구조 PC 1대 내에 모든 프로그램을 설치하는 중앙 관리 시스템 이다. Sercer-Client 구조로 이뤄진 개방-분산형 보안 관리 시스템 이다. DB 사용 여부 DB(데이터 베이스)를 사용하지 않는다. DB(데이터베이스)를 사용한다. 사용 규모 16CH ~ 128CH 의 소규모 ~ 중규모 시스템에..

자바 XML 처리 - DOM 파서(2) XML 생성 및 조작, xPath로 검색하기 [내부링크]

DOM 파서로 XML 생성 및 조작하기 DOM 트리에 새로운 요소와 속성을 추가하거나 반대로 트리로부터 요소 및 속성을 삭제할 수도 있습니다. 노드를 생성하기 위한 메서드(Document 객체의 팩토리 메서드) 메소드 설명 Element createElement(String tagName) Element 객체를 생성 Attr createAttribute(String name) Att 객체를 생성 Text createTextNode(data) Text 객체를 생성 Comment createComment(data) Comment 객체를 생성 CDATASection createCDATASection(data) CDATASection 객체를 생성 노드의 추가, 삭제를 하기 위한 메서드(Node 인터페이스..

자바 XML 처리 - DOM 파서(1) XML 읽기 [내부링크]

XML은 플랫폼과 프로그램으로부터 독립적이며 개방된 표준으로 인간과 기계 모두 처리할 수 있는 마크업 언어입니다. ※ 여기서 잠깐! 마크업(markup) 언어: 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지 XML을 처리할 때는 XML 파서를 사용합니다. XML 파서에는 몇 가지 종류가 있습니다. 각각의 처리 방식의 특징을 이해하고 용도에 맞는 최적의 처리 방법을 선택해야 합니다. 먼저 DOM(Document Object Model) 파서를 알아봅시다. DOM 파서란? DOM 파서는 XML을 파싱 하여 메모리 상에 XML 구조에 대응하는 객체의 트리를 유지합니다. 자바에서는 DOM 트리를 찾아 임의의 노드에 접근하는 것을 XPath로 검색합니다. 또한, DOM은 참조뿐만 아니라 XM..

ImageNet LSVRC2012 이미지넷 데이터셋 다운받기 [내부링크]

Step1: ImageNet 폴더 만들기 ~ $ mkdir ~/Downloads/ImageNet Step2: Dataset, Bounding boxes 다운받기 ~/Downloads/ImageNet$ wget http://www.image-net.org/challenges/LSVRC/2012/nnoupb/ILSVRC2012_img_train.tar ~/Downloads/ImageNet$ wget http://www.image-net.org/challenges/LSVRC/2012/nnoupb/ILSVRC2012_bbox_train_v2.tar.gz ~/Downloads/ImageNet$ wget http://www.image-net.org/challenges/LSVRC/2012/nnoupb/ILSVRC20..

[강남배달맛집/보쌈맛집] 돼지가 바다에 빠진 날 - 돼바빠 [내부링크]

강남 논현 반포 배달 맛집 보쌈 맛집 돼지가 바다에 빠진 날 반포동 논현동 촉촉한 보쌈 하면 1등인 돼바빠. 맨날 배달만 먹어봐서 어딘지 몰랐는데 영동시장이라니.. 비계랑 살고기랑 적당한 비율에 촉촉한 보쌈 개 추천 존맛탱 맛집이다. 이번에 주문한건 보쌈 대자 33,000원 + 밥 1000원 족발도 팔지만 여긴 보쌈이 맛있다. 기본 찬 무자비하게 마늘과 고추를 쏟아 부으셨다. 그리고 추가 메뉴가 아닌 서비스의 막국수... 막국수가 진짜 맛있다. 리뷰 이벤트 도 아닌데 사장님이 리뷰이벤트 받는게 귀찮으신지 리뷰 쓰든지 말든지 알아서 해라 서비스는 줄테니 하면서 주시는 서비스가 이 막국수다 근데 서비스라고 맛이 없는게 아니라 거의 메인 급임. 추가한 공기밥과 관자놀이 아플정도로 차가운 콩나물 국 비주얼은 촉..

COCO Data format과 Pycocotools [내부링크]

COCO Dataset은 Object Detection, Segmentation, Keypoint Detection 등을 위한 데이터셋으로, 매년 전 세계의 여러 대학과 기업이 참가하는 대회에서 사용되고 있습니다. COCO Dataset 자체를 이용하기도 하지만, 데이터를 저장하는 방식인 COCO Data format 역시 많이 활용되기도 합니다. 오늘은 이 COCO Data format과, 이를 불러오고 사용할 때 유용한 COCO API인 Pycocotools에 대해 알아보려 합니다. 모든 내용은 제가 일하고 있는 회사에서 제공받은 데이터셋을 기준으로 작성한 내용입니다. COCO format을 따르는 데이터라고 전달받았지만, 공식 홈페이지에서 다운로드한 데이터 형식과 차이가 있을 수 있습니다. CO..

[ Java ] TOLOWERCASE(), TOUPPERCASE(), TRIM() [내부링크]

자바 String 관련 함수 중 영문자를 전부 대문자로 또는 소문자로 변경 하는 함수와 인자값으로 입력된 문자열의 앞뒤 공백을 제거 하는 함수에 대한 정리 String toUpperCase() 대상 문자열을 모두 대문자로 변환합니다. String str1 = "hello java"; System.out.println(str1.toUpperCase()); hello java 라는 문자열이 모두 소문자로 되어 있습니다. 이를 toUpperCase() 함수를 이용하여 대문자로 변환 하겠습니다. 실제 코드는 아래와 같습니다. "hello java".toUpperCase(); 모든 문자열을 대문자로 변환하기 때문에 결과는 아래와 같습니다. HELLO JAVA String toLowerCase() 대상 문자..

YOLO(You Only Look Once)란? [내부링크]

YOLO란? YOLO는 You Only Look Once의 약자로 Object detection 분야에서 많이 알려진 모델이다. 처음으로 one-stage-detection방법을 고안해 실시간으로 Object Detection이 가능하게 만들었다. 현재 YOLO, YOLOv2, YOLOv3, YOLOv4, YOLOv5까지 나왔다.(YOLOv4, YOLOv5는 YOLO의 저자와 다른 개발자이다.) 모델마다 변화에 따른 장단점이 있다. YOLO 특징 및 장단점 Yolo의 첫 번째 특징은 이미지 전체를 한번만 보는 것이다. YOLO 이전의 R-CNN은 이미지를 여러장으로 분할하고, CNN모델을 이용해 이미지를 분석했다. 그렇기 때문에 이미지 한장에서 Object Detection을 해도 실제로는 여러장의 이미..

[MySQL] 데이터 타입 정의 [내부링크]

데이터 타입(DataType) 정의 데이터 타입(자료형)이란 컴퓨터 시스템과 프로그래밍 언어에서 실수, 정수, 소수 자료형 등의 여러 종류의 데이터를 식별하는 타입으로서, 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 할 수 있는 명령어, 데이터의 형태, 의미, 크기와 해당 자료형의 값이 저장되는 방식이다. MySQL데이터 타입 문자형 데이터타입 데이터 유형 정의 CHAR(n) 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다. VARCHAR(n) 가변 길이 데이터 타입(최대 65535byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간은 채우지 않는다. TINYTEXT(n) 문자열 데이터 타입(최대 255byte) T..

[MySQL] [MariaDB] ALTER TABLE 문법 총 정리 [내부링크]

문법 문법에 들어가기 앞서, 공통 테이블 예시 CREATE TABLE ex_table ( id INT, sFirst VARCHAR(32), sThird VARCHAR(32), nSecond INT, sFifth VARCHAR(32) ) 컬럼 추가 (Add) nSixth INT형 컬럼 추가 ALTER TABLE [테이블명] ADD [컬럼명] [타입] ALTER TABLE ex_table ADD COLUMN nSixth INT; 결과 특정 컬럼 뒤에 추가 (Add) sThird 컬럼 뒤에 sFourth VARCHAR형 컬럼 추가 ALTER TABLE [테이블명] ADD COLUMN [추가할컬럼명] [컬럼타입] DEFAULT [기본값] [컬럼위치] ALTER TABLE ex_table ADD COLUMN sF..

[건대맛집/감자탕맛집]돕 감자탕 Nope! 말고 Dope! [내부링크]

감자탕 맛집 건대 맛집 돕 감자탕 여기는 푸짐이가 나를 만나기 전부터 다녔다는 찐 맛집 건대 감자탕이다. 감자탕은 원래 다 맛있으니까 거기서 거기 겠지 하고 따라갔는데 찐찐찐 맛집 놉! 아니고 돕! 감자탕 (늙은이) 감자탕 (소) 27,000원 우리는 곱창 이 추가된 감자탕을 시켰다 가격이 기억나지 않는다. 32,000원 즈음...? 주문은 곱창감자탕 (소) 라면사리 볶음밥 나능 이로케 별거 아니지만 보리차 주고 녹차 주는데가 좋타.. 깨끗만 하다면.... 감자탕은 금방 숭 나온다. 채소만 익으면 바로 먹으라는 설명과 함께... 밑반찬들.. 이날은 신메뉴라며 시식(?) 느낌으로 냉채족발을 주셨다. 짱맛 코찡 미쳐 맛있었다 차가운데 부드럽고 소스도 찡 하니.. 반찬은 깍두기와 김치 , 쌈장에 찍어먹는 채소..

CNN: Single-label to Multi-label [내부링크]

Convolutional Neural Network (CNN)은 단일 라벨 이미지 분류 작업에서 유망한 성능을 입증했습니다. 그러나 CNN이 다중 레이블 이미지에 가장 잘 대처하는 방법은 주로 복잡한 기본 개체 레이아웃과 불충분 한 다중 레이블 훈련 이미지로 인해 여전히 열린 문제로 남아 있습니다. 이 작업에서 우리는 가설 -CNN- 풀링 (HCP)이라는 유연한 딥 CNN 인프라를 제안합니다. 여기서 임의의 수의 객체 세그먼트 가설을 입력으로 취한 다음 공유 CNN이 각 가설과 연결되고 마지막으로 CNN이 연결됩니다. 다양한 가설의 출력 결과는 최대 풀링으로 집계되어 궁극적 인 다중 레이블 예측을 생성합니다. 이 유연한 딥 CNN 인프라의 몇 가지 고유 한 특징은 다음과 같습니다. 1) 학습에 지상 진실..

[머신 러닝 :: 분류 문제] Multi-class VS. Multi-label 분류 문제 차이점은? [내부링크]

Multi-class 와 Multi-label 분류 문제의 차이점 1. Multi-class 분류 문제 먼저 Multi-class 분류 문제는 하나의 그림에 하나의 객체만 있어야 하고, 그리고 그 객체는 2개 이상의 카테고리에 속하는 경우이다. 즉, 아래와 같이 그림이 있을 때, 그림 속에 대상이 되는 객체는 하나만 있어야 하고, 각각은 고양이, 개, 토끼, 앵무새 등 2개 이상의 카테고리로 분류가 되는 경우이다. 2. Multi-label 분류 문제 다음으로 Multi-label 분류 문제에서는 앞의 경우에서 다른 부분은 하나의 그림 내에 하나의 객체가 아니라, 여러 객체가 있다. 따라서, 하나의 그림이 하나의 카테고리(2개 이상)에 속하지 않고, 두 개 이상의 카테고리에 속하게 된다. 예를 들어, 위..

[Object Detection] Darknet 학습 준비하기 [내부링크]

환경 Ubuntu 16.04 GeForce RTX 2080 1. 학습 준비하기 1.1 COCO 데이터 세트를 이용한 학습 COCO 데이터는 2014 , 2017 로 나뉘어져 있는데, 홈페이지에서 다운 받을 수도 있지만, 크기가 너무 커서 유틸리티 curl 를 이용하여 다운받아야 한다. COCO 데이터 세트 https://cocodataset.org/#download COCO 데이터 세트 종류는 다음과 같다. 이미지 2014 Train images [83K/13GB] 2014 Val images [41K/6GB] 2014 Test images [41K/6GB] 2015 Test images [81K/12GB] 2017 Train images [118K/18GB] 2017 Val images [5K/1GB]..

DataSet, DataTable이란? [내부링크]

Dataset(데이터셋) 인공지능을 개발하기 위해서 필수적으로 갖춰져야 할 것은 많은 데이터입니다. 데이터가 많을수록 학습의 정확도가 높아지고 예측을 더 정확하게 할 수 있습니다. 또한 좋은 인공지능을 만들려면 인공지능에게 학습시키는 데이터의 질이 매우 중요합니다. 특정한 작업을 위해서 데이터를 관련성 있게 모아놓은 것을 데이터셋 이라고 하며 여러 형식으로 된 자료를 포함할 수 있습니다. 데이터 파일, 또는 데이터베이스라고도 부르며 컴퓨터가 처리, 분석할 수 있는 정보의 세트를 말합니다. 기계 학습에 필요한 데이터를 수집하기 위해서는 엄청난 시간과 노력이 필요합니다. 하지만 모바일이나 웹상에서 공유되고 기록되는 정보와 데이터를 가지고 분석에 사용할 수 있습니다. 또한 데이터셋을 기관과 기업에서 공개함으로..

npm start 시 마주하는 error [내부링크]

npm error 1. npm start 시 error code 1을 마주할 때 package-lock.json과 package.json의 webpack을 지운 상태에서 npm install을 다시 한다. npm install시에 “Cannot read property ‘mach’ of undefined 에러가 나오게 되면 다시한번 package-lock.json을 지우고 다시 npm install을 한다. 2. cross-env: command not found 에러가 나온다면 ? npm install cross-env를 입력해주자. 3. Module not found: can’t resolve ‘react-router-dom’ 에러가 나온다면? npm install --save react react-..

[Java] 문자열 치환(Replace) 사용법 & 예제 [내부링크]

String변수나 배열같은곳에 많은 양의 데이터들이 들어가 있을경우 자신이 바꾸고자 하는 값만 골라서 바꾸기란 쉽지않습니다. 이럴때 유용하게 쓰일 수 있는 함수가 바로 Replace함수입니다. 이번 포스팅에서는 문자열 치환함수 Replace, ReplaceAll, ReplaceFirst 함수의 사용법에 대해서 알아보겠습니다. Replace String a = "무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 "; //replace([기존문자],[바꿀문자]) a= a.replace("대한", "민국"); System.out.println(a); //결과값 : 무궁화 삼천리 화려강산 민국사람 민국으로 길이 보전하세 String replace(CharSequnce target, CharSequence ..

[Java] 문자열 공백제거(Trim) 사용법 & 예제 [내부링크]

프로그래밍을 하다보면 예상치못한 경로로 문자열에 공백이 들어오는경우가 종종 발생합니다. 이럴경우 공백이 어디서부터 들어왔는지 소스가 길어질수록 찾아보기엔 굉장히 귀찮죠. 이럴경우 그냥 공백이 들어온 스트링값을 그냥 제거해주는 방식으로 프로그래밍을 진행할 수도 있습니다. 이럴때 유용하게 사용하는 함수가 바로 Trim이라는 함수입니다. Trim 문자열을 입력받거나 문자열을 합칠경우 가끔 쓸데없는 공백이 따라 들어오곤 합니다. 그럴때 유용하게 사용되는 Trim함수입니다. 사용법도 매우 간단합니다. 사용법 String str = " 문자열에 공백이 있습니다. "; System.out.println(str); str = str.trim(); System.out.println(str); 그냥 문자열.trim()이라..

[Java] 문자열 붙이기(Concat, StringBuffer(Append)) 사용법 & 예제 [내부링크]

자바에서는 문자열을 붙이는 방법이 여러가지 있습니다. String a = "첫번째 텍스트입니다. "; String b = "두번째 텍스트입니다. "; System.out.println(a+b); //결과값 : 첫번째 텍스트입니다. 두번째 텍스트입니다. 대부분 이런식으로 문자열에다가 + 를 시키는 방법으로 문자열을 합치지만 +연산자가 내부적으로 어떻게 돌아가는지는 전혀 모르고들 계시죠? 이번 포스팅에서는 자바String클래스의 문자열 붙이기 함수인 Concat과 Append 함수를 활용하여 문자열을 붙이는 방법에 대해 알아보도록 하겠습니다. Concat Concat과 +연산자는 같은 문자열을 합치는 기능을 합니다. 하지만 동작하는 방식이 다른데요. Concat은 합친 문자열을 String으로 생성해줍니다...

[Java] 문자열 자르기(Substring, Split) 사용법 & 예제 [내부링크]

SubString 문자열 자르기하면 가장먼저 생각나는 함수입니다. 문자열 함수에 익숙해지시면 SubString함수와 다른함수들을 섞어서 정말 다양하게 활용할 수 있는데요. 사용법에 대해 한번 알아보도록 하겠습니다. 활용예제로는 마지막 3글자 자르기, 특정문자 이후의 문자열자르기, 특정(단어) 부분만 자르기 를 준비했습니다. 우선 문자열을 자르기에 앞서 문자열이 어떻게 배치되어있는지 Index값부터 살펴야 문자열을 자를 수 있겠죠? String 클래스 자체가 char을 여러개 붙여놓은 효과를 주기때문에 String 클래스의 해당 Index값은 다음과 같습니다. String = char배열이라고 생각하셔도 무방합니다. 사용법 //사용법 String.substring(start) //문자열 start위치부터 ..

[Java] printf 출력 서식 - %d, %f, %c, %s [내부링크]

1. \n : new line: 한 줄 띄움 ex) System.out.println("안녕\n하세요"); ==> 출력결과: 안녕 하세요 2. \t : tab : 일정 간격 띄움 ex) System.out.println("아이유\t LvoePoem \t 2019년 12월 발매"); ==> 출력결과: 아이유 LvoePoem 2019년 12월 발매 3. \" : 쌍따옴표 출력 ex) System.out.println("\"Hello, Java\""); ==> 출력결과: "Hello, Java" 1. println: 출력 후 한 줄 띄움 2. pirnt: 출력 후 줄 띄우지 X. 한 줄로 쭉 출력. 3. 서식이 있는 출력 - JDK 1.5 이상에서만 가능. printf에서만 가능. println에서는 불가. ..

[Maven] 2. Maven 프로젝트 설정 [내부링크]

Maven의 Web환경을 정상적으로 사용하기 위해서는 Java의 Compiler 버전 설정 및 Web관련 라이브러리는 추가해주어야 합니다. 1. java Compiler 버전 설정 - Maven 프로젝트 설정시 기본 Java의 사용은 1.5로 되어있습니다. - java 1.5를 1.8 버전으로 변경해주는 작업이 필요합니다. 1) Maven 프로젝트의 설정 정보 열기 - 프로젝트 선택 -> 우 클릭 -> Properties 선택 2) Maven에서 사용되는 Java Compiler 버전 확인 - java Complier 선택 -> 현재 java의 Compiler 버전이 1.5로 되어 있습니다. - 현재 설치된 Java Compiler Version이 1.8이므로 Java Compiler의 버전 변경이 필요..

[Maven] 1. Maven 프로젝트 만들기 [내부링크]

1. Eclipse에서 Maven프로젝트 생성 - Maven에 대한 설명 참조 포스트([JSP] 6. Maven 이란?) - Java EE Perspective 를 사용 합니다. 1) 프로젝트 생성 - File -> New -> Maven Project 2) 프로젝트 생성 위치 설정 - 기본을 유지 해 줍니다. 2) Maven의 형태 선택 - Web프로젝트이므로, maven-archetype-webapp 로 선택 합니다. 2) 프로젝트의 이름을 정해 줍니다. 항목 설명 Group Id 프로젝트를 만드는 그룹, 조직, 회사 등을 나타내는 유일한 이름, 보통 자바 패키지처럼 URI를 거꾸로 써서 나타낸다. Artifact Id 아티팩트(artifact) 즉, 프로젝트를 나타내는 유일한 이름, 그룹 내 다른 ..

[Java] Maven 사용하는 스프링(이클립스) 프로젝트에서 'Plugin execution not covered by lifecycle configuration' 오류 [내부링크]

pom.xml 파일에서 다음과 같은 에러가 있었다. (이클립스 사용) 'Plugin execution not covered by lifecycle configuration' 이 경우에 몇가지 해결법이 있는 것으로 아는데, 가장 간단한 방법이 태그 바깥쪽에 태그를 감싸주는 것. -before ... .... 위와 같은 코드가 있을 것이다. 이코드를 아래와 같이 태그로 감싸주고 -after ... .... 저장해주면 pom.xml 파일은 더 이상 에러를 내지 않는다. pluginManagement 태그는 동일한 플러그인(plugin)들을 나의 모든 프로젝트(자식 프로젝트) 내에서 공유하여 사용하기 위한 태그이다. pluginManagement 태그는 부모(parent) pom.xml 파일에서만 정의되어 사용..

[eclipse] Maven 프로젝트 생성하기 [내부링크]

메이븐이란 아파치에서 라이브러리를 편하게 다운로드하고 추가하고 버전 관리하기 위해 사용하는 것을 말한다. 프로젝트 하나에 무수한 라이브러리를 하나하나 다운받아 추가하고 필요없는건 지우고 하는일은 굉장히 고될것이다... 스프링 프로젝트를 하다보면 자연스럽게 pom.xml에서 메이븐을 사용하고 있었을 것인데, 가끔 자바에서만 테스트하기 위해 메이븐 프로젝트로 java파일들을 만들어서 백단에서 돌아가는 데이터를 확인할 일들이 있다. 이럴때 메이븐 심플 프로젝트를 만들어서 유용하게 사용하고 있다. 이번엔 몽고DB 데이터 조회 및 작업을 해보기 위해 생성하게 되었는데 생성방식도 포스팅한다. 그럼 메이븐 프로젝트를 생성해보자. 생성하기 1. 먼저 이클립스에서 탐색기에 오른쪽 클릭을 하고 New - Maven Pro..

[Docker] 도커파일(Dockerfile) [내부링크]

Dockerfile 이란? 지금까지는 단순히 공식 허브에 이미지를 다운받아서 컨테이너를 생성하고 그 안에서 각종 도구를 사용하고나 파일을 생성하는 과정을 진행했었습니다. 하지만, 이렇게 되면 매번 애플리케이션을 동작하는 환경을 구성하기 위해 패키지를 설치하고 환경설정하는 과정을 반복해야 합니다. 이런 문제를 간소화하기 위해서 Dockerfile이란게 존재합니다. Dockerfile은 컨테이너에 설치해야하는 패키지, 소스코드, 명령어, 환경변수설정 등을 기록한 하나의 파일입니다. 그리고 이를 빌드하면 자동으로 이미지가 생성됩니다. 이렇게 되면 앞으로는 애플리케이션 빌드 및 배포를 자동화할 수 있게됩니다. 근데 생각해보면 컨테이너에서 작업을 한다음에 이미지로 커밋하면 되는거 아닌가? 뭐.. 그럴수도 있겠..

[파일 형식] XML, JSON, YAML 형식 내용 정리 및 비교 분석 [내부링크]

JSON, YAML, XML은 모두 데이터(Data)를 표현하는 형식입니다. 다만 그 형태와 문법은 조금씩 다르다는 점에서 그 차이점을 바르게 인지하고 있는 것이 중요합니다. 따라서 이번 시간에는 XML, JSON, YAML에 대해서 공부한 뒤에 이를 비교하는 시간을 가져보도록 하겠습니다. 세 가지 중에서 무엇이 가장 효과적이라고 말할 수는 없으며 상황에 맞는 형식을 이용할 수 있으면 됩니다. 1. XML XML은 데이터를 표현하기 위하여 많이 사용되어 온 방식으로 HTML과 흡사한 구조를 가지고 있습니다. XML이 가지는 고유한 문법이 있다는 점에서 소프트웨어 및 하드웨어에 대하여 독립적으로 데이터를 처리할 수 있습니다. XML의 특징은 꺽쇠()입니다. XML은 트리(Tree) 계층 구조를 가지고 있습..

[반포동 맛집/생선구이 맛집] 어랑 생선밥상 [내부링크]

반포동 맛집 신논현역 맛집 고등어 맛집 생선 구이 맛집 어랑 생선 밥상 http://naver.me/GIqtqYDR 어랑 생선밥상 : 네이버 방문자리뷰 422 · 4.53 · 매일 10:30 - 21:30, 토요일 휴무 m.place.naver.com 어랑은 원래 논현역 에서 신논현역 걸어가는 기 길쪽에 있었지만 이사를 갔따 21년 5월 중순에 이사를 갔다고 한다.. 주차하는 공간이 없어서 항상 걸어가야했는데 열심히 걸어서 도착했는데 이사 갓다 해서 멘붕 그렇게 멀지 않은 곳이라 열심히 또 걸었다. 일요일 점심으로 애용하는 공간 %주의% 토요일은 문닫는다. 이집 생선구이가 생선구이 맛집으로 유명한 집 뺨친다. 그리고 점심때 방문하면 자리가 없을정도로 가족 친구 혼자 많이 방문 하는 곳이다. 어랑의 메뉴..

[논현동 맛집/스시맛집] 김태완스시 논현 영동시장점 [내부링크]

논현역 맛집 영동 시장 맛집 스시 맛집 논현동에서 가장 유명한 스시집일것이다. 부담없이 밥이나 술 한잔 하기 좋은 곳이다. 김태완 스시 논현점은 내가 알기론 5년도 더 된거같다. 지금보다 젊을때 부터 있었으니까. 푸짐이랑 연애초에 가서 안주 5개 시켜놓고 맥주 한잔 마시고 오고 그랬던 곳이다. 원래는 이모 왕곱창9[맛집] 그 사거리 쪽에 있었는데 삼미 숯불 갈비[울트라 맛집] 앞쪽으로 이사했다. 가게 앞에 주차도 3대 정도 가능하다.[주차는 중요하니까] 메뉴판과 주문은 옆에 달린 태블릿으로 한다. 요로케 요로케 이곳에 오면 항상 주문하는 3가지이다. 연어를 좋아하는 푸짐이는 항상 연어회를 주문한다. 연어회 25,000원 수제히레까스 7,000원 (아니면 6,000원이다.) 특선초밥 15,000원 대략 4..

[Java] 자바 zip 압축 풀기 ( 파일 , 폴더 압축 풀기) [내부링크]

# 자바로 zip 파일 압축 풀기. - 폴더 안에 파일과, 하위 폴더 압축해버리기. - 아래의 ZIP 파일 압축 풀기. # UnZip.java - ZIP 파일 압축 풀기 package zipUtil; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.Charset; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class UnZip { /** * 압축풀기 메소드 * * @param zipFileName 압축파일 * @para..

[Java] MultiparFile 파일 업로드 의 메소드 [내부링크]

MultiparFile 인터페이스에서 많이 쓰이는 메소드들 메 소 드 내 용 String getName() 파라미터 이름 String getOriginalFilename() 파일 이름 boolean isEmpty() 파일이 존재하지 않으면 true 반환 long getSize() 파일 크기 byte[] getBytes() throws IOException 파일 데이터 InputStream getInputStream() throws IOException 파일 데이터를 읽어오는 InputStream을 얻어온다 사용이 끝난 후에는 알아서 잘 종료 해줄 것 void transferTo(File file) throws IOException 파일 데이터를 지정한 file로 저장

[네트워크] 노드(node)란? [내부링크]

컴퓨터 네트워크 관련 포스팅을 보다보면 "노드(node, ノード)"라는 용어가 사용되는 경우가 있다. "노드(node, ノード))"는 간단히 말하자면 컴퓨터 네트워크를 구성하는 기기 1개, 1개를 의미하지만, 이 포스팅에서 "노드(node, ノード))"가 가리키는 의미에 관해 조금 더 자세히 살펴보도록 하겠다. 노드(node)란? 단어의 사전적 의미 노드란 매듭, 절, 집합점, 중심점이라는 사전적 의미를 가지고 있으므로 여러 분야에서 넓게 이용되는 단어이다. 예를 들어 식물의 경우 줄기와 잎을 연결하는 곳을 노드라고 부르기도 한다. 컴퓨터 네트워크의 노드 컴퓨터 네트워크에 있어서 노드도 네트워크에 연결되어 있는 1개 1개의 기계를 의미한다. 구체적으로는 컴퓨터부터 시작해 네트워크를 교통 정리하는 루터나 ..

[Java] 자바 File 클래스 [북붙따라하기] [내부링크]

사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 예제 안에 주석으로 처리를 하였습니다. 필요한 부분을 고쳐서 사용하시면 되겠습니다. import java.io.File; import java.io.IOException; public class Sample { public static void main(String[] args) { ///////////////// 파일 클래스 예제 와 설명 입니다. try { // 디렉토리 와 파일을 만드는 과정입니다. // 먼저 디렉토리를 만듭니다. // c:/temp에 javatest라는 디렉토리를 만든다. File dir = new File("c:/temp/java/test"); dir.mkdirs(); // 실제로 디렉토리를 만드는 메소드 // 그리..

[Java] 파일 입출력 FileOutputStream [북붙따라하기] [내부링크]

FileOutputStream : byte단위로 파일을 기록하는 클래스 입니다. 사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 주석과 코드 아랫부분에 있습니다. import java.io.FileInputStream; import java.io.FileOutputStream; public class Sample { public static void main(String[] args) { try { ////////////////// 파일 스트림을 이용한 파일에 내용을 기록하는 예제 입니다. // 기존의 파일이 없으면 만들어지고 있으면 덮어쓰게 되어 기존 파일내용이 지워진다. FileOutputStream fos = new FileOutputStream("c:/temp/java/test/t..

[Java] 파일 입출력 FileInputStream [내부링크]

FileInputStream : byte단위로 파일을 읽어 오는 클래스 입니다. 사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 주석과 코드 아래부분에 있습니다. import java.io.FileInputStream; public class Sample { public static void main(String[] args) { try { //// 파일 스트림을 이용한 파일의 내용을 읽어오는 예제 입니다. //file open.. FileInputStream fis = new FileInputStream("c:/temp/java/test/test.txt"); //파일의 내용을 byte단위로 읽어옵니다.그래서 //읽어서 저장할 버퍼 byte 배열 설정 byte[] byteBuff = ne..

[Java] java.io.FileInputStream 주요 메소드 [내부링크]

[ FileInputstream ] java.io의 가장 기본 파일 입출력 클래스 입력 스트림(통로)을 생성해줌 사용법은 간단하지만, 버퍼를 사용하지 않기 때문에 느림 속도 문제를 해결하기 위해 버퍼를 사용하는 다른 클래스와 같이 쓰는 경우가 많음 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileInputStream(File file) new FileIn..

[Java] File.separator로 OS 상관없이 파일 경로 구분하기 [내부링크]

운영체제마다 파일 경로 구분자가 다르다. 윈도우는 \ (요즘 윈도우는 /도 인식한다고 한다), 리눅스와 맥은 / 로 말이다. 이런 OS에 따른 경로 차이를 신경 쓰지 않고, 파일 경로를 설정하고자 한다. 이럴 때, java.io 패키지의 File 클래스의 separator 필드를 사용한다. import java.io.File; ... String path = File.separator+"fileName"+File.separator+"sample.jpg"; 위 코드의 path는 /fileName/sample.jpg or \fileName\sample.jpg가 될 것이다. 윈도우의 루트(root)는 윈도우가 설치된 C드라이브로 인식한다. 그래서 /나 \로 시작하는 파일 경로는 root 경로 아래부터 시작한다..

NFS 설정하기 - 소스서버 [내부링크]

NFS 설정하기 - 소스서버 NFS란? NFS란 Network File system의 약자로 네트워크 상에서 파일 시스템을 공유하도록 설계된 파일 시스템의 한종류 입니다. 다른 호스트에 있는 파일 시스템의 일부를 자신의 디렉토리인 것처럼 사용해주는 것이 NFS입니다. NFS의 특징 NFS의 특징은 위 그림과 같이 한개의 서버에 NFS로 여러대의 웹서버로 연결하여 사용하여 여러대의 웹서버를 이중화 하는 과정으로 많이 쓰입니다 이러한 장점으로 여러호스트에서 저장된 정보를 공유할수 있습니다. NFS 구축순서 NFS 서버 구축 순서 1. NFS 서버 패키지 설치 2. NFS exports 설정(마운트를 허가할 디렉토리) 3. 방화벽 해제 4. NFS 실행 NFS 클라이언트 구축 순서 1. NFS 클라이언트 패키..

[Linux] grep 명령어의 기본적인 사용방법 [내부링크]

grep 명령의 기본옵션 grep (Global Regular Expression Print) 텍스트 파일에서 원하는 문자열이 들어간 행을 찾아 출력하는 명령어 주로 log파일에서 특정 날짜, 문자로 기록된 error 메시지를 찾는데 유용하게 사용할 수 있고 리눅스를 사용하는 사람이라면 필수적으로 익혀야 하는 명령어 중 하나이다. ]# grep 옵션 [문자열] [파일명] -b : 문자와 일치하는 줄의 시작점 출력 -c : 문자와 일치하는 줄의 수 출력 -h : 여러 파일에서 문자열을 찾을 때, 파일이름이 붙는것을 방지 -i : 대소문자를 구분하지 않는다. -n : 줄의 번호와 내용을 같이 출력 -v : 문자가 포함되지 않는 행 출력 -w : 문자와 한 단어로 일치해야 출력 -l : 문자가 들어간 파일 이..

[Ubuntu] Ubuntu의 apt-get 명령어 정리 [내부링크]

apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 팩키지 관리 명령어 도구입니다. 우분투에는 GUI로 되어 있는시냅틱 꾸러미 관리자도 있기는 하지만 이런 저런 개발관련 패키지를 설치할 때는 커맨드기반인 apt-get이 더 편하기도 합니다. sudo는 superuser권한으로 실행하기 위함입니다. 패키지 인덱스 인덱스 정보를 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있습니다. 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다. sudo apt-get update 설치된 패키지 업그래이드 : 설치되어 있는 패키지를 모두 새버전으로 업그래이드 합니다. s..

[LINUX] 3. 쉘 스크립트 [내부링크]

3. 쉘 스크립트 쉘을 사용해서 프로그래밍을 할 수 있음 서버 작업 자동화를 위해 기본적으로 익혀둘 필요가 있음 기본 명령어를 기반으로 하며, 이에 몇 가지 문법이 추가되는 형태로, 일반적인 프로그래밍 언어와는 달리 간단하고, 쉽게 응용 가능 3.1. 기본 문법 쉘 스크립트는 파일로 작성 후, 파일을 실행 파일의 가장 위의 첫 라인은 "#! /bin/bash" 로 시작 쉘 스크립트 파일은 실행 권한을 가지고 있어야 함 일반적으로 '파일이름.sh' 와 같은 형태로 파일 이름을 작성함 실습 bash 쉘에서 제공하는 echo 함수를 이용하여 화면에 "Hello bash" 를 출력 할 수 있도록 스크립트 작성 # cd ~ # vi test.sh 다음과 같이 작성 #! /bin/bash echo "Hello ba..

[LINUX] 2.리눅스 쉘(bash), 기본 명령어 이해 및 실습 [내부링크]

2. 리눅스 쉘(bash), 기본 명령어 이해 및 실습 2.1. 쉘 종류 쉘(shell) 운영체제 커널과 사용자 사이를 이어주는 역할 사용자의 명령을 해석하고, 커널에 명령을 요청해주는 역할 유닉스/리눅스 쉘 종류 Bourne-Again Shell (bash) : GNU 프로젝트의 일환으로 개발됨, 리눅스 거의 디폴트임 Bourne Shell (sh) C Shell (csh) Korn Shell (ksh) : 유닉스에서 가장 많이 사용됨 2.2. 리눅스 기본 명령어 정리 리눅스 명령어는 결국 쉘이 제공하는 명령어임 리눅스 기본 쉘이 bash 이므로, bash에서 제공하는 기본 명령어를 배우는 것임 whoami : 로그인한 사용자 ID를 알려줌 # whoami root passwd : 로그인한 사용자 ID..

[LINUX] 1. 리눅스 기본 이해 [내부링크]

1. 리눅스 기본 이해 1.1. 초간단 리눅스 배경 이해 컴퓨터의 운영체제 중 하나로 리누스 토르발스(Linus Torvalds)에 의해 시작된 다중 사용자, 다중 작업을 지원하는 유닉스(UNIX)와 유사한 운영체제 GNU 프로젝트 GNU = Gnu is not Unix 유닉스(UNIX) 운영체제를 여러 회사에서 각자 개발하며, 소스를 공유하지 않는 문화에 반발 리차드 스톨먼이라는 사람이 초기 컴퓨터 개발 공동체의 상호협력적인 문화로 돌아갈 것을 주장하며 1985년 3월에 GNU 선언문을 발표 GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과 GNU 공개 라이선스(GPL)라는 규약 제공 GNU 프로젝트와 리눅스 초기 운영체제 개발에 필요한 라이브러리, 컴파일러, 에디터, 유닉스 쉘 개..

[Linux] 자주 사용하는 cmd 명령어(명령 프롬프트) 알아보기. [내부링크]

CMD 명령어. 즉 명령 프롬프트를 말합니다. 윈도우OS 역사가 오래된 이 시점에 명령 프롬프트를 자주 사용하진 않겠지만 가끔 CMD 명령어를 이용해 관련 파일을 실행하거나 네트워크 환경을 살펴보기도 합니다. 문자로만 표현되는 것이 대부분이니 어렵게 느끼시는 분도 많은데요. 명령어가 많을 뿐 천천히 살펴보면 큰 어려움은 없습니다. 오늘은 CMD 명령어에 대해 간략히나마 글을 써보려 합니다. cmd (명령 프롬프트) 실행하기 우선 cmd를 실행하려면 단축키 Win+R을 눌러 실행을 활성화시킨 후 CMD를 입력 후 확인을 눌러주면 됩니다. 그러나 윈도우의 중요 사항을 변경하려면 CMD도 관리자 권한으로 실행해주는 것이 좋아요. 단축키 Win+S를 누르거나 윈도우10 하단 좌측의 돋보기 클릭 후 CMD를 ..

[Linux] 쉘 사용하기 [리눅스 쉘의 기능과 종류] [내부링크]

쉘 사용하기 [리눅스 쉘의 기능과 종류] 셸[Shell] - 사용자와 리눅스 커널 사이에서의 중간자 역할 우리가 사용하는 프로그램은 일반적으로 바이너리 형태의 명령어 집합체이며, 컴퓨터는 기본적으로 바이너리 형태의 정보들을 읽어들인다. 따라서 관리나자 사용자가 컴퓨터에 일정한 명령을 내리기 위해서는 매개체로서의 특정한 인터페이스가 필요했고 이런 역할을 하도록 하는 것이 쉘이다. [ 셸의 기능 ] ①명령어 해석기로서의 기능 (대화식 사용) 셸의 가장 기본적 기능으로서 셸은 사용자와 커널 사이에서 명령을 해석하여 전달하는 해석,번역 기능을 제공한다. 사용자가 로그인하면 셸이 자동으로 실행되 사용자 명령을 기다리는데, 이를 로그인 셸이라 하고 etc/passwd 파일에 사용자별로 지정되어 있다. 사용자의 요청..

[Linux] 디렉토리와 파일 사용하기 [디렉토리를 다루는 명령어] [내부링크]

디렉토리와 파일 사용하기 [디렉토리를 다루는 명령어] 현재 디렉토리 확인하기 : pwd (print working directory) pwd : 현재 디렉토리의 절대 경로를 출력 디렉토리 이동하기 : cd (change directory) 홈 디렉토리로 이동하는 가장 간단한 방법 : cd 상위 디렉토리로 이동 : cd .. 디렉토리 내용보기 : ls (list) ls -a : 숨김 파일을 포함한 모든 파일 목록 출력 (출력시 .으로 시작하는 것이 숨김 파일이다.) ls 디렉토리 : 해당 디렉토리로 이동하지 않고도 디렉터리 내용 확인할 수 있음 ls -F : 디렉토리(/), 심벌릭 링크(@), 실행파일(*), 일반 파일(아무 표시도 없음)등 파일 종류를 구분할 수 있다. ls -aF : 숨김 파일..

[Linux] 꼭 알아야 할 리눅스 기본 명령어 10가지 [내부링크]

꼭 알아야할 리눅스 기본 명령어 10가지 1. ls - 현재 위치의 파일목록을 조회하는 명령어 2. cd - 디렉토리를 이동하는 명령어 3. touch - 파일의 용량이 0인 파일을 생성, 날짜 변경하는 명령어 4. mkdir - 디렉토리를 생성하는 명령어 5. cp - 파일을 복사하는 명령어 6. mv - 파일을 이동시키는 명령어 7. rm - 파일을 제거하는 명령어 8. cat - 파일의 내용을 화면에 출력하거나 파일을 만드는 명령어 9. redirection - 화면에 출력되는 결과를 파일로 저장하는 명령어 10. alias - 자주 수행하는 명령어들을 쉽게 사용할 수 있도록 설정하는 명령어 01. ls (list segments) ls 는 현재 위치의 파일 목록을 조회하는 명령어 입니다. 주요 옵..

[Linux] 리눅스 쉘과 명령어 기초 [내부링크]

리눅스와 쉘 - alias alias란, 여러가지 옵션을 가지는 명령을 짧은 이름으로 대체하는 것으로써 윈도우의 바로가기 아이콘 정도로 생각하면 됩니다. 파일/디렉토리에 있어서는 바로가기 아이콘과 유사한 기능으로 리눅스에서는 심볼릭 링크라는 개념을 사용합니다. - 쉘과 쉘 스크립트 쉘이란, 운영체제에서 제공하는 명령을 실행하는 프로그램이며 운영체제의 관리하에 있는 파일, 프린팅, 하드웨어 장치, 그리고 애플리케이션과의 인터페이스 (커뮤니케이션 채널)를 제공합니다. 즉, 운영체제에서 제공하는 각종 명령들을 쉘 인터페이스에서 실행하면 운영체제가 그 명령에 해당하는 일을 수행하게 됩니다. 쉘 스크립트란, 인터프리터로써 다음과 같이 리눅스 시스템에서 지원하는 명령어들의 집합을 묶어서 프로그램화한 것을 말합니..

[Linux] 리눅스 쉘(shell)의 이해 [내부링크]

쉘(shell) 쉘(shell)은 명령어 해석기, 명령행 인터페이스이자 스크립트 언어이다. 유닉스 계열의 운영체제는 보통 텍스트 모드의 터미널 화면에서 명령행에 명령어를 타이핑 하여 사용한다. 이 명령어를 해석하는 프로그램이 쉘(shell)이다. 즉 쉘은 명령어 해석기 또는 명령행 인터페이스를 의미한다. 쉘을 사용하는 것은 윈도우의 '명령 프롬프트'에서 명령을 실행하는 것과 유사하지만 리눅스의 쉘은 훨씬 강력한 기능을 제공한다. 쉘 명령은 GUI 도구로는 수행하기 어려운 다양한 고급 기능을 제공한다. 또한 쉘은 스크립트 언어이기도 하다. 쉘 명령어로 구성된 쉘 스크립트 프로그램을 작성하면 쉘이 스크립트 파일을 읽어 일련의 명령을 수행할 수 있다. 쉘은 운영체제의 일부이며 커널과는 분리된 프로그램이다. 쉘..

[강남 배달맛집/ 로제 떡볶이 맛집] 삼첩분식 -기대가 크면 실망도 큰법 [내부링크]

강남 배달맛집 떡볶이 맛집 로제 떡볶이 맛집 삼첩 분식 로제떡볶이가 유행이라묘~~~ 해서 주문했던 일요일 마지막 만찬 "삼첩분식"이다. 나는 젊은이들 따라하기위해 로제떡볶이를 주문했다. 인터넷에서 엄청 유명한 삼첩분식으로 선택했다. 기대기대 왕기대 이전 포스팅도 있지만 로제 떡볶이 유행전부터 스쿨푸드에서 매운까르보떡볶이를 좋아했었다. 그래서 더 기대.. 얼마나 맛있길래 이렇게 유명한가 주의%이제 개인적 의견이 다분한 폭풍 디스가 시작 되겠다.% 배달을 받자마자 일단 놀랬다. 무슨 병문안 가는 오렌지 주스 박스 인줄 주문은 이렇게했다. 로제떡볶이 + 원기둥감자튀김 + 순살치킨 + 모둠튀김 로제 떡볶이다. 특이했던건 어묵이 면처럼 얇게 썰려있었다. 아이디어 인지 모르겠으나 펴저서 별로였다. (솔직한 개인적인..

Quartz Job Scheduler란? [내부링크]

1.1 Quartz란? Quartz는 Terracotta 라는 회사에 의해 개발된 Job Scheduling 라이브러리입니다. 완전히 자바로 개발되어 어느 자바 프로그램에서도 쉽게 통합해서 개발할 수 있습니다. Quartz는 수십에서 수천 개의 작업도 실행 가능하며 간단한 interval 형식이나 Cron 표현식으로 복잡한 스케줄링도 지원합니다. 예를 들면 매주 금요일 새벽 1시 30분에 매주 실행하는 작업이나 매월 마지막 날에 실행하는 작업도 지정할 수 있습니다. 1.2 장단점 스프링을 개발하면서 Quartz를 Job Scheduler로 자주 사용하는 이유도 있지만, 단점도 존재합니다. 장점 DB 기반으로 스케줄러 간의 Clustering 기능을 제공한다 In-memory Job Scheduler도 제..

Spring + Quartz 주기적으로 작업 실행하기 [내부링크]

SpringFramework 4.3.4 버전에서 Quartz 2.3.0 라이브러리를 사용해서 주기적으로 작업을 실행하는 방법을 알아보겠습니다. 전체 소스는 하단에 첨부해 두었습니다. 앞에서 계속 사용해오던 소스라 DB 연결, 엑셀 다운로드 등의 소스가 같이 있는데 필요 없는 부분은 주석처리하고 테스트 해보시면 되겠습니다. 1. pom.xml 파일에 quartz 라이브러리의 의존성을 추가합니다. org.quartz-scheduler quartz 2.3.0 org.springframework spring-context-support 4.3.4.RELEASE 2. 주기적으로 실행될 서비스 메소드를 생성합니다. com.tistory.pentode.service.BoardService.java파일에 메소드 인터페..

[JAVA] Quartz job Scheduler 기본 사용법 정리 [내부링크]

라이브러리 다운로드 http://www.quartz-scheduler.org/downloads/ 일정 시간, 주기적으로 작동되는 배치 프로그램을 만들때 사용하는 라이브러리, 회사에서 서로 다른 DB의 데이터를 마이그레이션 하거나 주기별로 DB데이터를 동기화 시키는 데몬을 만들게 되어 사용방법을 정리한다. 1. 구성 요소 JobDetail : 스케줄러에서 수행할 작업을 담을 JOB을 생성, Job을 상속하는 클래스를 JobBuilder.newJob()을 이용하여 전달 해야 한다. JobDataMap : 스케줄러에서 JOB이 실행될떄 사용할 변수 값을 전달하는데 사용한다. key-value 형식으로 값을 전달하고 JOB을 수행할떄 값을 꺼낼수 있다. Trigger : 스케줄러를 어떤 방식으로, 어떤 주기로 ..

[신사 맛집/닭한마리 맛집] 신사 닭한마리감자탕 [내부링크]

신사 맛집 닭한마리 맛집 신사에서 엄청 유명한 맛집중 하나인 닭한마리 감자탕 여기선 닭한마리는 100번 먹어보고 어느날 감자탕도 궁금해서 먹어봤는데 이 집은 단호하게 닭한마리 다! 감자탕이 맛없는건 아니지만 감자탕을 먹을거면 다른집을 가겠다. 원래는 진짜 떡뽂이집 사이즈에 작은 집이었다. 이사 가서 굉장히 커지고 고급스러워 졌다. 이사 가기전 집은 바로 10걸음 맞은편...ㅋㅋㅋㅋㅋㅋㅋ 거긴 떡볶이집 처럼 온벽에 낚서 있고 분위가가 정겨웠음 우리는 닭한마리 2인을 주문했다. 메뉴판에 적혀있는 닭한마리 맛있게 먹는방법 웃긴게 저렇게 먹으면 나한테는 겨자가 너무쎄서 코아프다. 기본적인 밑반찬들 그리고 이사간 이후로 추가 반찬은 셀프다. 이렇게가 닭한마리 소스 만드는 애둘 취향에 맞게 넣어서 만들어 먹으면 된..

[사당 맛집/돼지 특수부위 맛집] 사당 모소리 [내부링크]

사당 맛집 남성역 이수역 맛집 모소리 사당 사당 모소리 돼지고기 특수(?) 부위 특이 부위 집에 방문 금요일 칼퇴후 날아갔다. 대략 6시 20분쯤 도착 친구는 먼저 와서 혼고 (혼자 고기)를 하고 있었다. 내가 도착했을 시간도 그렇게 늦지 않았는데 사람들이 줄을 엄청나게 섰다. 아마 까딱 잘못했다간 밥때 놓친다. (그만큼 인기 맛집) 우리는 이 한판을 주문했다! 모소리살 + 가오리살 + 돈차돌살 메뉴판이다. 나는 친절하니까. 블로그 해야 되니까 찍어보았다. 그치만 난 눈이 침침해서 잘 보이지 않는다. 한판이 다나 온건 아니고 모소리살 + 가오리살 이 먼저 나온다 으메 으짜쓰까잉 곱다 고기는 언제나 이쁘다 심신의 안정 그리고 이 두 개는 색도 다르고 다른 부위지만 나는 기억이 나지 않는다 왜냐면 그냥 맛있..

[RSA] RSA MODULUS, EXPONENT [내부링크]

RSA키는 비대칭키로 개인키와 공개키로 되어있습니다. 여기서 공개키와 개인키는 위에서 보시는 것과 같이 구조가 되어 있습니다. 일반적으로 공개키는 n값과 e 값으로 구성되어 있습니다. n값은 Modulus이며 e값은 Public exponent값입니다. 개인키는 기본적으로 n, e, d, p, q, exponent1, exponent2, coefficient 값을 갖습니다. 여기서 가장 필요한 값은 d 값입니다. 개인키의 각 데이터는 공개키의 데이터를 포함합니다. 위의 RSAKeyValue에 해당하는 필드로 바꾸면 n : Modulus e: Exponent p : P q : Q exponent1 : DP exponent2 : DQ coefficient : InverseQ d : D 위의 XML 데이터(링..

암호화(AES, RSA, SHA) 관련 이야기 [내부링크]

우리 웹서비스에서 비회원과 통신하는 신규 기능을 개발하게 되었다 비회원과 통신이므로 보안에 신경을 많이 썼는데, 그 중 우리가 사용한 AES, RSA, SHA에 대해 이야기 해보려고한다 1.SHA-256 우리는 비회원의 로그인(!?)을 위해, 패스워드를 받았는데, 패스워드는 본인만 알고있어야 하므로, 복호화가 되지 않는 암호화 방법을 채택했다 복호화가 되지 않는 암호화 방법 중 유명한 것이 SHA 시리즈인데, SHA는 미국 NSA가 제작하고 미국 국립표준기술연구소(NIST)에서 표준으로 제작한 해시 암호 알고리즘이다 과거 SHA-0, SHA-1 버전을 거쳐 요즘은 SHA-2를 많이 쓰고있는데, SHA-2에는 SHA-224, SHA-256, SHA-384, SHA-512 등의 종류가 있다 현재 SHA-3도..

AES와 SHA 차이 [내부링크]

이것저것 알아보다 보니 SHA와 AES의 차이가 무엇인지 궁금해졌습니다.. 보통 평문이나 암호화를 해야하는 부분은 AES를 사용하고 서버에서 인증서의 암호화가 필요한 부분은 SHA를 사용해 이 개념을 확실히 하기 위해 조사를 했습니다. Encryption(암호화)와 Hash(해쉬)의 차이 암호화는 암호화 알고리즘을 이용하고, 인증은 해쉬함수를 이용하여 Verification Data를 만들어 원문에 태그(Tag)를 붙여서 전송하므로 해쉬함수를 이용합니다. 암호화 알고리즘과 해쉬 함수의 동작 방식을 이해하면, 암호화와 인증의 차이를 이해할 수 있습니다. 위의 왼쪽 그림은 암호화 알고리즘의 동작방식을 설명한 것이며, 암호화는 기본적으로 양방향 통신을 전제로 하므로 암호화와 복호화가 가능해야 합니다. 복호화되..

Docker 도커 - #1 기본 명령어 모음 [내부링크]

도커란 간단하게 말해 서버환경에서의 다양한 프로그램, 실행환경을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 이를 이용하면 복잡한 서버환경을 코드로 쉽게 관리할 수 있고 안정적인 배포환경 (무중단 배포 등) 구성할 수 있습니다. 그래서 이번 글에서는 도커에서 이미지를 받고 컨테이너를 생성하고 삭제 할 때, 자주쓰는 기본 명령어를 알아보려 합니다 :) docker 설치 리눅스 자동 설치 스크립트$ sudo wget -qO- https://get.docker.com/ | sh $ curl -fsSL https://get.docker.com -o get-docker.sh $ sh get-docker.sh우분투$ sudo apt-get update $ su..

Docker 명령어 정리 [내부링크]

Docker 사용법 CentOS Docker는 OS의 자원을 사용하기 때문에 기본적으로 Root 사용자에서 명령어를 사용해야한다 1. search (image 검색) # docker search centos - Docker Hub로부터 사용가능한 image를 찾는 명령어 - Docker는 Dokcer HUB 를 통해 Git Hub 처럼 사용자들간의 이미지 공유를 할 수 있는 환경이 구축되어 있다 - 공식이미지는 galid/centos 처럼 / 앞에 사용자의 이름이 붙지 않는 것 2. pull (image 다운로드) # docker pull centos:latest - docker hub로 부터 image를 다운받는 명령어 3. images (image 목록 보기) # dokcer images - 현재 H..

[Java] 버퍼(BUFFER)란? 버퍼 개념 [내부링크]

버퍼(Buffer)란 버퍼란 임시 저장 공간을 의미 합니다. 임시 저장 공간이라고 해서 쌩뚱맞게 보일 수 있지만 정확히 말하면 A와 B가 서로 입출력을 수행하는데에 있어서 속도차이를 극복하기 위해 사용하는 임시 저장 공간을 의미 합니다. 동영상 스트리밍 서비스에서의 버퍼 이 버퍼라는 개념은 굉장히 다양하게 사용되는데 가장 쉽게 접할 수 있는 곳은 유튜브같은 동영상 스트리밍 사이트입니다. 스트리밍 사이트에서 실시간으로 동영상을 보게 되면 보통 동영상이 진행되는 부분(빨간색)과 서버로부터 동영상을 내려받은 부분(밝은 회색) 그리고 앞으로 다운로드가 남은 부분을 본 적이 있을 것 입니다. 여기서 저 밝은 회색부분이 버퍼라고 볼 수 있습니다. 동영상 데이터가 내려 받아지는 속도에 비해 우리가 동영상을 1초씩 진..

[Java] BufferedReader의 EOF 처리 & 여러 줄 입력 처리 - .readLine() [내부링크]

BufferedReader.readLine() 패키지 메서드 설명 BufferedReader readLine() - text를 줄 단위로 읽어들인다. - 만약 stream의 끝에 다다르면 (EOF) null 값을 반환한다. BufferedReader로 여러 줄 입력 받기 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = ""; while((str = br.readLin..

[Java] 클래스 ProcessBuilder [내부링크]

java.lang.Object ->java.lang.ProcessBuilder 이 클래스는 OS 의 프로세스의 작성에 사용됩니다. 각 ProcessBuilder인스턴스는 프로세스 속성의 컬렉션을 관리합니다. start() 메서드는 이러한 속성을 가지는 새로운 Process 인스턴스를 작성합니다. 같은 인스턴스로부터 start() 메서드를 반복해 호출해, 동일한 속성 또는 관련된 속성을 가지는 새로운 서브 프로세스를 작성할 수 있습니다. 각 프로세스빌더 는 다음의 프로세스 속성을 관리합니다. 「커멘드」. 호출되는 외부 프로그램 파일과 그 인수 (존재하는 경우)를 나타내는 캐릭터 라인의 리스트입니다. 어느 캐릭터 라인 리스트가 유효한 OS 커멘드를 나타낼까는 시스템에 응해 다릅니다. 예를 들어 개념상의 인수..

[Java] 메소드의 개념 [내부링크]

메소드(method) 자바에서 클래스는 멤버(member)로 속성을 표현하는 필드(field)와 기능을 표현하는 메소드(method)를 가집니다. 그중에서 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할 수 있습니다. 메소드의 사용 목적 클래스에서 메소드를 작성하여 사용하는 이유는 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문입니다. 또한, 모듈화로 인해 코드의 가독성도 좋아집니다. 그리고 프로그램에 문제가 발생하거나 기능의 변경이 필요할 때도 손쉽게 유지보수를 할 수 있게 됩니다. 메소드를 작성할 때는 되도록 하나의 메소드가 하나의 기능만을 수행하도록 작성하는 것이 좋습니다. 메소드 정의 클래스에서 메소드를 정의하는 방법은 일반 함수를 정의하는 방법과 크게 다르..

Java concurrent 함수 - invokeAll() [내부링크]

java.util.concurrent에 있는 invokeAll() 함수에 대해서 얘기해보고자 합니다. ExecutorService에서 제공하는 함수로 callable list를 넘겨서 한꺼번에 수행하는 함수 입니다. 이 함수는 submit()이나 CompletionService와는 사용법이 좀 다르기에 예제로 간단히 설명해 보고자 합니다. invokeAll()의 간단한 사용 예제 ExecutorService에서는 submit(), execute()이외에도 다양한 함수를 제공합니다. 그중에서 테스트해 볼 함수는 invokeAll()이며 이 또한 두가지 형태가 존재합니다. Callable list를 받아 전부 끝나야 함수가 종료되는 형태 Callalbe list를 받고 timeout을 받아, 시간안에 끝나지..

[칼국수 맛집] 등촌 칼국수 방이점 포스팅만 3번째 [내부링크]

칼국수 맛집 버섯 칼국수 맛집 등촌 칼국수 방이점 포스팅만 어느덧 3번째.. 한번 꽂히면 그것만 먹고 요즘 날씨가 딱 뜨뜻한 칼국수 먹기 좋은 날씨니께~~~ 포스팅 안하려 했는데 푸짐이가 3번이나 왔음 찐 맛집이라며 또 올리라 한다. 푸짐이 말 잘들어야디. 그래야 자다가도 아이스크림 사준다. 주말 일 퇴근하고 데릴러온 푸짐이와 한여름 되면 너무 더워서 아마 자주 못올 등촌 칼국수 방이점을 또 방문했다 우리 의 주문은 언제나 버섯 칼국수 2인 + 소고기 2개 + 볶음밥 1개 추가 계란볶음밥은 맛있으니까.. 버섯 칼국수가 끓으면 고기 왕창 때려 넣고 소스 찍어 먹으면 꿀맛 여긴 칼국수 김치가 진짜 맛있다. 맨날 한번씩 더 받아먹는다. 언제나 소스 2개 + 물티슈가 항상 놓여잇는 테이블 방이점은 항상 고기 상..

[강남 배달 맛집/족발 맛집] 귀한 족발 [내부링크]

강남 배달 맛집 족발 맛집 귀한족발 매번 족발하면 마왕족발만 주구장창 먹던 나는 쫄족 (=쫄깃한 족발) 을 먹고싶어서 새로운 족발집에서 주문을했다. 사실 내의견은 1도 들어가지않았다. 푸짐이의 선택 소 사이즈 족발은 1.5인분이라 작다 생각이들어 중 사이즈를 주문 하고 싶었지만 우리가 먹고 싶었던 족발 반 불족발 반 반반메뉴에는 대 사이즈만 가능 그래서 2명이지만 대 사이즈 주문 먹다가 꼭 남기자고 약속 (다먹을까바) 배달을 받았는데 엄청 무거웠다 한보따리;; 포장이 특이 했음. 따뜻하게 먹으라고 따듯한 물을 비닐에 싸서 위에 덮어 주셧다 세심해..반했어..먹는거에 진심인 사람이 만드신듯.. 반반 족발인데 족발 한가득 진짜 쫄깃한 족발 먹고싶어서 주문한것인데 진짜 쫄족 이었음 불족발 나는 슈퍼 맵찔이다...

[Mysql] ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 오류 발생 [내부링크]

Mysql 설치 후 명령 프롬프트 창에서 mysql을 실행하려고 하니 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)와 같은 에러 메시지가 발생했다. 이는 mysql을 실행할 때 사용자 명과 DB이름을 입력해주지 않아서 발생하는 에러로 > mysql -u 사용자명 -p (DB이름) 위와 같이 입력을 해주면 패스워드를 입력하라는 창이 나타난다. > Enter password: 패스워드를 입력해주면 mysql 접속이 완료된다. 출처: https://override1592.tistory.com/15 [오버라이드]

MySql cmd 창에서 접속하기 (환경변수) [내부링크]

꼬바리 일기 : 디비버연결이 안되었다. 커맨드 창에 mysql -v 가 안먹혔디. mySQL 환경변수 path 설정 하고 ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) 오류 발생 하였다. mysql 실행시 사용자 명과 DB이름 입력이 안되어있어서 그런것 다음 포스팅연 입력 MySql cmd 창에서 접속하기, 환경변수 추가하기 를 포스팅 해봅니다. 물론 이렇게 안하고 그냥 접속할 순 있지만, 해놓으면 편하니까요! 몇몇 초보자 분들은 CMD창에서 MySql 명령어를 쳐보시고는 왜 안되냐고 당황하실 수 있는데 환경변수 추가만 해준다면 그런일이 없답니다. 이제 시작해 보죠! 일단 '내컴퓨터' 를 우클릭하고 속성..

[랜섬웨어] 악성 코드 주의.. 저도 당했습니다.. [내부링크]

| 랜섬웨어(Ransomware)란? 랜섬웨어란 몸값을 뜻하는 랜섬(Ransom)과 소프트웨어 제품을 뜻하는 웨어(Ware)가 합쳐진 단어. 악성코드로써 사용자의 동의 없이 컴퓨터에 설치되어 내부 파일을 인질로 잡아 금전적인 요구한다. 일반적으로 윈도우 운영체제가 설치된 PC에서 가장 많이 발생하지만 모바일 환경에서도 발생하며, 맥 OS도 감염될 수 있다. 프로젝트 산출물 작업을 위해 요구사항 정의서 양식을 찾고 있었습니다. 구글링 후 파일 저장하고 .js 파일 로 된 파일 이길래 궁금증(?)이 생겨 (악성코드인줄도 모르고) VS CODE 로 파일 오픈 하고 index.html 파일 만들어서 script src 연결 해서 오픈 해 주었습니다 ㅠㅠ. 파일을 여니 파워쉘 권한 승인 창이 뜨더라구요 처음 3번..

[웹기획]1단계 요구사항 정의서 [내부링크]

출처 : https://brunch.co.kr/@firstevan/6 [웹기획]1단계 요구사항 정의서 나는 기획 목적에 따라 웹기획, 서비스 기획, 사업기획으로 구분했었다. 1. 웹기획 프로덕트(웹) 완성에 최종 목적을 두고 있다. 개발 일정, 기능 작동에 문제가 없는지? 사용이 불편한지?를 위주 brunch.co.kr 나는 기획 목적에 따라 웹기획, 서비스 기획, 사업기획으로 구분했었다. 1. 웹기획 프로덕트(웹) 완성에 최종 목적을 두고 있다. 개발 일정, 기능 작동에 문제가 없는지? 사용이 불편한지?를 위주로 체크한다. UX/UI, 시스템 구조에 대한 지식이 필요하다. 2. 서비스 기획 고객을 정의하고 웹이 완성되면 고객이 새 기능 혹은 프로덕트를 사용할지에 대한 고민을 많이 한다. 관련 산업과 고..

프로젝트 산출물 [내부링크]

프로젝트 산출물 한국정보화진흥원은 “CBD SW개발 표준 산출물 가이드”를 통해 객체지향 및 CBD 개발의 분석, 설계, 구현 및 시험 단계별 산출물을 제시하였다. 가이드에서 제시된 총 25개의 필수산출물은 산출물간의 체계를 정립하고 산출물간 연관성 및 산출물 내 항목의 연관성을 정립하여 방법론으로서의 일관성, 완전성 및 추적성 확보하는데 주안점이 있다. 주요 산출물들 주요 산출물들은 분석, 설계, 개발, 시험 단계에서 각각 아래와 같다. 분석단계 요구사항정의서 : 개발자가 의뢰인의 요구를 정의한 정의서이다. 이를 통해 이후 기획이 되므로 이 단계에서 의뢰인과 개발자의 '합의'와 '절충'이 필요하다. 이 과정에서 합의가 되지 않거나 흐지부지되면 향후 개발 중 '뒤집기'가 빈번해 질 수 있다. 기능차트 :..

[git] "git push"와 "git push origin master"의 차이점은 무엇입니까? [내부링크]

안녕하세요 꼬바리입니다. git commit 후에 두 가지 옵션이 있습니다. git push git push origin master 내 의도는 로컬 리포지토리의 변경 사항을 GitHub 마스터 브랜치로 푸시하는 것입니다. 어떤 상황에서 차이가 있습니까? git push는 해당 분기에 대해 remote repository가 이미 정의되어 있다고 가정합니다. 이 경우 기본 원격 origin가 사용됩니다. git push origin master는 특정 리모컨 (이 경우 origin)으로 밀고 있음을 나타냅니다. 코드베이스에 여러 개의 원격 리포지토리를 만든 경우에만 문제가 됩니다. 하나의 원격 저장소 (이 경우 GitHub 저장소)에만 커밋하는 경우 두 저장소 사이에 차이가 없습니다.

[JSP] 이메일 라이브러리 java mail + activation 라이브러리 파일 [내부링크]

안녕하세요 꼬바리 입니다. 요즘은 jsp를 많이 사용 하지않지만 연습겸 공부겸 회원가입시 이메일 보내는 코드를 공부하였습니다. 오라클 아이디가 있으신 분들도 있지만 저 처럼 가입이 귀찮아 검색 하실 분들을 위해 파일 첨부 하겠습니다. 압축을 푸시고 lib폴더로 copy 하면 됩니다 (많은 분들이 이렇게 사용) 회원가입시 이메일 보내는 코드는 아직 미완성이니 나중에 포스팅 하도록 하겠습니다. (사실 너무 큰 오류가 계속 나서 저는 실패했습니다. 타임아웃 오류 해결하면 다음 오류.. 오류의 연결고리)

[Java] BufferedReader/BufferedWriter 자바 입출력 [내부링크]

[자바 입출력 함수] BufferedReader / BufferWriter BufferedReader/BufferedWriter은 이름처럼 버퍼를 이용해서 읽고 쓰는 함수입니다. 이 함수는 버퍼를 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 비교할 수 없을 정도로 좋아집니다. 한 번 거쳐가므로 느릴거 같은 데 왜 빠르냐고요? 하드디스크는 원래 속도가 엄청 느립니다. 하드뿐만 아니라 키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 생각보다 시간이 걸리는 작업이예요. 버퍼링 없이 키보드가 눌릴 때마다 눌린 문자의 정보를 목적지로 바로 이동시키는 것보다 중간에 메모리 버퍼를 둬서 데이터를 한데 묶어서 이동시키는 것이 보다 효율적이고 빠릅니다. 그냥 전송하게 되면 CPU와 성능 갭이 많이 나서 비효..

[Java] Process, ProcessBuilder 자바에서 프로세스 다루기 [내부링크]

1. 자바에서의 Process Runtime 클래스는 자바 런타임 환경을 캡슐화 한다. Runtime 클래스는 new 할 수 없지만 Runtime.getRuntime ()이라는 static 메소드를 이용하여 현재 실행중인 프로그램의 Runtime클래스에 대한 참조를 얻을 수 있다. Runtime의 exec() 메소드를 통해 프로그램을 실행 시키고 Process에 대한 참조를 얻는다. ProcessBuilder.start() 메서드를 통해 Process에 대한 참조를 얻을 수도 있다. Process 클래스는 프로세스에서 입력, 출력을 수행( getInputStream, getOutputStream, getErrorStream ), 프로세스가 완료 될 때까지 대기( waitFor ), 프로세스의 종료 상태를..

[Java] Java에서 ProcessBuilder를 이용하여 OS Command 실행 [내부링크]

1. 개요 자바 코드 상에서 OS 명령어를 실행하기 위한 방법 중 ProcessBuilder를 이용하는 예를 살펴본다. 2. 사전지식 OS 명령어 실행을 위한 Arugument는 List 형태로 전달한다. 예를 들면 다음과 같다. List command = new ArrayList(); command.add("ls"); command.add("-l"); command.add("/"); 3. 예제 코드 ProcessBuilder processBuilder = new ProcessBuilder(command); try { System.out.println("run " + StrUtil.getListString(command)); Process process = processBuilder.start(); Bu..

[Java] ProcessBuilder 클래스 - 운영체제 프로세스 생성 [내부링크]

이전 버전에서는 Runtime.exec()을 이용해 프로세스를 실행할 수 있습니다. 그런데 이 방법은 When Runtime.exec() won't에서도 소개 됐듯이 표준 입력과 출력에 대한 제한된 버퍼 사이즈로 인해 하위 프로세스가 block 되거나 데드락이 되기도 하는 문제가 있었습니다. 자바 JDK 7 이상에서는 이러한 문제점을 해결 하고자 Proccess Builder 클래스가 소개됩니다. 이 클래스는 운영체제 프로세스 생성할 때 사용합니다. Process Builder 클래스 인스턴스에는 프로세스를 제어할 때 필요한 유용한 속성을 제어합니다. 예를 들어 start() 메서드는 입력 받은 커맨드를 실행해 새로운 프로세스를 생성 합니다. 생성자의 역할 ProcessBuilder(List 커맨드): ..

[Java] ExecutorService를 사용하는 방법 [내부링크]

java.util.concurrent.Executors와 java.util.concurrent.ExecutorService를 이용하면 간단히 쓰레드풀을 생성하여 병렬처리를 할 수 있습니다. ExecutorService 생성 Executors는 ExecutorService 객체를 생성하며, 다음 메소드를 제공하여 쓰레드 풀을 개수 및 종류를 정할 수 있습니다. newFixedThreadPool(int) : 인자 개수만큼 고정된 쓰레드풀을 만듭니다. newCachedThreadPool(): 필요할 때, 필요한 만큼 쓰레드풀을 생성합니다. 이미 생성된 쓰레드를 재활용할 수 있기 때문에 성능상의 이점이 있을 수 있습니다. newScheduledThreadPool(int): 일정 시간 뒤에 실행되는 작업이나, 주..

[Java] Future 사용 방법 [내부링크]

Future는 비동기적인 연산의 결과를 표현하는 클래스입니다. Future를 이용하면 멀티쓰레드 환경에서 처리된 어떤 데이터를 다른 쓰레드에 전달할 수 있습니다. Future 내부적으로 Thread-Safe 하도록 구현되었기 때문에 synchronized block을 사용하지 않아도 됩니다. 예제를 보면 더 쉽게 이해가 됩니다. 간단한 Future 예제 아래 예제에서는 두개의 Thread가 생성되어있고, Future를 이용하여 어떤 쓰레드에서 처리된 데이터를 다른 쓰레드로 전달합니다. ExecutorService executor = Executors.newSingleThreadExecutor(); Future future = executor.submit(() -> { System.out.println(L..

[Java] Collection이란? Collection 개념, Collection Framework 구조 [내부링크]

Collection Framework 이란? 1. collection 2. map >> 크게 이 두 가지를 만들기 위한 인터페이스들, 인터페이스를 구현한 클래스들, 그리고 관련 알고리즘. ( A framework, by definition, is a set of interfaces that force you to adopt some design practices.) Framework는 쉽게 말하면 인터페이스 집합으로, 개발자의 설계 구현을 도와주는 밑바탕이라 생각하면 됨. 즉, collection framework는 collection 자료구조들을 구현할 수 있도록 도와주는 인터페이스 도구들이다. 우리는 이제 이 framework에서 깔아준 밑바탕 인터페이스들과 이걸 implement한 클래스들(Arra..

[Java] 문자 Stream : InputStreamReader / OutputStreamWriter [내부링크]

문자 Stream : InputStreamReader / OutputStreamWriter Stream은 바이트 단위는 바이트 단위로 연결하고 캐릭터 단위는 캐릭터 단위로 연결하는 것이 원칙이다. 하지만 캐릭터는 결국 바이트 2개가 모여서 구성한 데이터로 볼 수 있다. 따라서 두 가지 서로 다른 기준을 호환할 수 있는 통로가 제공되어야 한다. 이 두 클래스는 Stream 이라는 말고 Reader/Writer 라는 말을 동시에 가지고 있다. 결론적으로 이 두 클래스는 둘 사이의 연결을 담당한다고 볼 수 있다. Stream : 바이트 단위의 입출력 Reader/Writer : 캐릭터 단위의 입출력 InputStreamReader / OutputStreamWriter는 바이트 스트림에서 문자 스트림으로, 또는..

[Java] StringBuilder 사용법 및 사용하는 이유 [내부링크]

StringBuilder 사용법 및 사용하는 이유 자바에서 문자열하면 자연스럽게 String이 떠오른다. String은 소위 불변(immutable)객체라고 한다. String str1 = "abc";, String str2 = "def"; 2개의 String객체가 있을 때, 만약 str1 + str2;와 같은 연산을 하게 되면 새로운 String을 생성한다. 즉, String객체와 String객체를 더하는(+)행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능적으로 좋지 않다. 그래서 나온 것이 StringBuilder이다. 이름만 봐도 String 잘 만들게(?) 생겼다. StringBuilder는 String과 문자열을 더할 때 새로운 객체를 생성하는 것이 아니라 기존의 데..

[Java] 보조 스트림 : 문자 변환 보조 스트림 : OutputStreamWriter [내부링크]

OutputStreamWriter : 바이트 출력 스트림에 연결되어 문자 출력 스트림인 Writer로 변환시키는 보조 스트림. Writer w = new OutputStreamWriter(바이트출력스트림); 예제) import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; public class OutputStreamWriterExample { public static void main(String[] args) throws Exception { FileOutputStream fos = new File..

[Java] java.io.FileOutputStream 주요 메소드 [내부링크]

[ FileOutputStream ] FileInputStream과 마찬가지로 java.io의 가장 기본이 되는 파일 입출력 클래스 출력 스트림(통로)을 생성해줌 사용법은 간단하지만, 버퍼를 사용하지 않기 때문에 느림 속도 문제를 해결하기 위해 버퍼를 사용하는 다른 클래스와 같이 쓰는 경우가 많음 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileOutpu..

[Java] java.io.File 주요 메소드 [내부링크]

[ File 클래스 ] 파일 내용이 아닌, 파일 자체(껍데기)를 다룸 NIO2만으로는 파일 조작이 어려워 병행해서 사용하면 효율적 NIO2와 서로 변환할 수 있음 파일 클래스를 사용하면 파일 스트림을 열기 전에 실제 파일에 대한 정보를 확인할 수 있고, 또 파일 자체를 삭제하거나 이름을 변경하는 등의 작업을 수행할 수 있습니다. 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ]..

[OS] 폴더와 디렉토리의 차이 (Folder and Directory) [내부링크]

어렸을 적 MS-DOS 사용하던 때에는 폴더라는 용어 자체가 없었던 것으로 기억한다. 하지만 어느 순간 부터 폴더라는 용어가 종종 사용되더니 현재는 기존에 사용하던 디렉토리라는 용어를 오히려 낯설게 만들고 있다. 일반적으로 사용할 때는 폴더나 디렉토리나 크게 구분하지 않고 사용되고 있다. 그럼에도 불구 하고 새로운 용어가 등장하였을 때는 그 차이점이 있었을 것이다. 검색해본 결과 폴더는 디렉토리와 거의 유사하지만 좀 더 넓은 의미로 사용되는 용어였다. 윈도우가 대중화 되면서 탐색기가 널리 사용되고 있다. 탐색기에 보면 폴더는 파일을 담는 그릇이라고 보면된다. 여기까지는 디렉토리와 별반 다름이 없다. 하지만 윈도우 폴더 내에는 네트워크 환경, 내컴퓨터 등 특수한 항목들 까지 포함할 수 있다. 디렉토리의 경..

[Java] JsonObject , JsonArray 다루기 (JsonParser로 파싱하기) [내부링크]

데이터를 주고 받을 때 json형식을 많이 사용하는 JsonObject, JsonArray 사용법을 알아보겠습니다. 1. JsonObject JsonObject는 객체(주로 String)을 Json객체로 바꿔주거나 Json객체를 새로 만드는 역할을 합니다. ex) JsonObject jsonVar = new JsonObject() //json객체 생성 //json 객체에 key가 'key1'이고 value가 'value1'인 요소 추가 //{ "key1" : "value1" } jsonVar.put("key1","value1"); //키값이 'key1'인 요소 추출하기 jsonVar.get('key1') /return 'value1' Stirng을 json형태로 변환하기 String str = "{\"k..

[Java] JSONObject 사용하기 [내부링크]

01.JSONObject 란? - json형태의 데이터를 관리해 주는 메소드. - 0개 이상의 key/value 쌍으로 구성된 정렬되지 않은 컬렉션. JSONObject 라이브러리 다운로드 https://code.google.com/p/json-simple/downloads/list 기본 사용법은 Map과 매우 유사합니다. obj를 toJSONString()으로 받아오는데 toString()으로 받아와도 무방합니다. get(key)함수는 key값을 넣으면 key값에 해당하는 value를 출력해 줍니다. obj를 String 형식의 data라는 변수에 넣어주고 출력을 해보면 라는 결과가 나오게 되어집니다. 출처 : mindols.tistory.com/110

[Java] 자바 instanceof 사용방법 [내부링크]

instanceof는 객체타입을 확인하는데 사용한다. 속성은 연산자이고 형변환이 가능한 지 해당 여부를 true 또는 false로 가르쳐준다. 객체 타입이라 하니 어려운 개념 같은데, 주로 부모 객체인지 자식 객체인지 확인하는데 쓴다고 생각하면 된다. 현재 참조하고 있는 클래스를 확인할 수 있는 메소드인 getClass를 함께 알아두면 좋다. 관련글보기: - 자바(Java) getClass 메소드 사용방법 instanceof의 사용형식은 ‘객체 + instanceof + 클래스’ 이다. A를 부모, B를 자식 클래스로 세팅하고 두 클래스 간 형변환이 가능한지 확인해보았다. class A{} class B extends A{} class instanceofEx01 { public static void ma..

[Spring] @value(value annotation) 사용 방법 [내부링크]

Properties를 읽는 방법이야 무궁무진하겠지만, 스프링으로 프로퍼티를 읽을 때 자주 사용하는 방법으로 value annotation을 이용하기도 한다. 사실 필자는 properties를 xml로 설정하여 map에 담아 get형태로 읽는 것을 선호하지만 요즘 워낙 어노테이션이 대세니 코드가 올드해보이지 않기 위해 일정 부분은 어노테이션을 섞는다. 사용방법은 매우 간단하다. 우선 resource 위치에 properties 파일을 생성한다. 예를 들기위해서 이 포스팅에선 test.properties라는 설정파일을 생성하였다. resources에 test.properties를 생성하였다. test.properties test=테스트입니다. @Value 예제 import egovframework.rte.fd..

MyBatis - 동적 쿼리 사용하기 [내부링크]

1. 기본적인 동적 쿼리 SELECT * FROM KH.EMPLOYEE WHERE ${searchType} = #{keyword} map 형식으로 검색 타입과 키워드를 받아와서 처리했다. WHERE 절에서 검색 타입은 ${ } 로 전달하며 키워드는 #{ } 로 전달한다. ${ } 는 파라미터 값이 그대로 들어가며 #{ } 는 파라미터 값이 ' ' 으로 감싸진다. 달라지는 검색 조건에 대응할 수 있다. 2. if문을 이용한 동적 쿼리 SELECT * FROM EMPLOYEE WHERE 1=1 AND NAME LIKE '%' || #{keyword} || '%' AND GENDER = #{gender} if문을 이용한 동적 쿼리 이다. if문을 이용하는 방법은 EL 처럼 test 속성에 조건을 넣어주면 된다..

Mybatis란? (장점, 특징, 컴포넌트) [내부링크]

Mybatis Mybatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping)프레임워크이다. SQL을 별도의 파일로 분리해서 관리하게 해준다. Hibernate나 JAP(Java Persistence Api)처럼 새로운 DB프로그래밍 패러다임을 익혀야하는 부담 없이 SQL을 그대로 이용하면서 JDBC코드 작성의 불편함도 제거해주고 도메인 객체나 VO객체를 중심으로 개발이 가능하다는 장점이 있다. Mybatis의 특징 쉬운 접근성과 코드의 간결함 JDBC의 모든 기능을 Mybatis가 대부분 제공한다. 복잡한 JDBC코드를 걷어내며 깔끔한 소스코드를 유지할 수 있다. 수동적인 파라미터 설정과 쿼리 결과에 대한 맵핑 구문을 제거할 수 있다. SQ..

[git] 에러 | ! [rejected] main -> main (fetch first) [내부링크]

해석 상황 작업을 마친뒤 로컬에서 원격저장소로 git push를 했는데 ! [rejected] main -> main (fetch first) 에러가 발생했다. 원인 해당 에러는 원격저장소와 현재 작업중인 로컬저장소가 동기화되지 않았을 때 발생한다. 동기화되지 않은 상태에서 다시 push하면 데이터가 소실될 수 있어 하고 경고해주는 것. 나의 경우 원인은 이전에 깃허브 웹에서 README를 살짝 건드려봤었는데 그걸 로컬에 pull 하지 않고 작업, 다시 push하려고 해서 에러가 발생했다. (출처와 마친가지로 나의 경우도 git push후 , README 수정 했다. 그리고 수정된 코드 다시 push하려하니 동기화가 되지 않아 오류가 났다. ) 해결 두 가지 방법이 있다. 1. 동기화를 위해 pull g..

[JSP] JSP (JavaServer Pages ) 란 무엇인가? [내부링크]

JSP (JavaServer Pages ) 란 무엇인가? JSP 란 JavaServer Pages 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다. JSP 가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다. 위와 같이 정의만 보고는 어려운 용어가 많이 들어가기 때문에 몇가지 개념을 짚고 넘어 가겠다. 웹(web) 웹이란 인터넷 기반의 정보기술로 World Wide Web 의 줄임말로 쓰이며 WWW 라고도 한다. 전세계에 거대한 네트워크 망을 통해 정보를 공유하며 정보의 흐름은 양방향성을 가진다. 웹어플리케이션(Web Applicatio..

[Java] Java EE , Servlet 개념과 정리글 [내부링크]

1. Java EE ( Enterprise Edition ) * 기업에서 사용하는 프로그램을 만드는데 적합한 자바 개발 버젼 - Java EE Spec : Servlet , Jsp , EJB(Enterprise Java Beans) ㄴ Web 언어 ㄴ Service언어 : 업무를 모듈로 개발하여 서비스 하는 프로그램 * 의존성있는 프로그램이다 - servlet , JSP : web container에 의존성이 있다. (즉 Server에 의존) - EJB : EJB Server에 의존성이 있다. * WAS (Web Application Server) - Java EE의 모든 Spec을 서비스할 수 있는 프로그램 - Web logic(BEA사),Web share(IBM),JBOSS(무료),Jeus(TMAX)..

[자바(java)/스프링(spring)] 면접 질문 모음 [내부링크]

자바, 스프링 면접 질문 1. OOP가 뭐죠? 2. 자바의 메모리 영역에 대해서 설명해보세요. 3. 인터페이스가 뭐죠? 왜 사용하나요? 4. 메모리 상수풀 영역에 대해 설명해보세요. 5. jdbc가 무엇인가요? 6. 직렬화란 무엇인가요 ? 7. serialVersionUID를 선언해야 하는 이유는 뭔가요? 8. 리플렉션이란 무엇인가요? 9. 자바의 클래스 멤버 변수 초기화 순서에 대해 설명하세요 10. Servlet과 JSP를 비교해서 설명하세요 11. 제너릭이 무엇인가요? 12. 컬렉션 클래스에서 제너릭을 사용하는 이유를 설명하세요 13. pojo가 무엇인가요? 14. 박싱과 언박싱에 대해 설명하세요 15. 데드락이 무엇이고, 해결방법에 대해 설명해보세요 16. 상속과 컴포지션(합성)의 차이에 대해서..

[Java] 세션(Session) 이용하는 방법 [내부링크]

세션은 클라이언트 별로 서버에 저장되는 정보이다. 사용자 컴퓨터에 저장되던 쿠키와 다르게 서버에 저장되므로, 비교적 보안이 필요한 데이터는 쿠키보다 세션에 저장한다. 서버가 종료되거나 유효시간이 지나면 사라진다. 1. 세션 이용 방법 웹 클라이언트가 서버에게 요청을 보내면 서버는 클라이언트를 식별하는 session id를 생성한다. 서버는 session id로 key와 value를 저장하는 HttpSession을 생성하고, session id를 저장하고 있는 쿠키를 생성하여 클라이언트에게 전송한다. 클라이언트는 서버 측에 요청을 보낼 때, session id를 가지고 있는 쿠키를 전송한다. 서버는 쿠키의 session id로 HttpSession을 찾는다. javax.servlet.http.HttpSes..

[글꼴 세팅] 구글 폰트 사용하기 jeju폰트 추천 [내부링크]

안녕하세요 꼬바리입니다. 구글 폰트 사용법입니다. jeju폰트 무난하게 사용 하기 좋습니다. fonts.google.com/earlyaccess Google Fonts Making the web more beautiful, fast, and open through great typography fonts.google.com 위 사이트 방문후 crtl + F -> jeju검색 (원하시는거 검색) @import url(https//fonts.googleapis.com/earlyaccess/jejugothic.css); 혹은 @import url('https://fonts.googleapis.com/css2?family=Jua'); 등의 형식 복사 붙여넣기 앞에 https 붙여 주시고! 사용 하시면 됩니다! ..

[jsp 초반 세팅] 웹디자인 프레임워크 틀 /부트스트랩 & 제이쿼리 [내부링크]

안녕하세요 꼬바리입니다. jsp 초반 세팅 웹 디자인시 가장 많이 사용하는 부트스트랩 과 제이쿼리 세팅입니다. getbootstrap.com/docs/5.0/getting-started/download/ Download Download Bootstrap to get the compiled CSS and JavaScript, source code, or include it with your favorite package managers like npm, RubyGems, and more. getbootstrap.com 부트스트랩 사이트 방문 다운로드 받아서 압축을 풀어주고! bootstrap.min.css bootstrap.min.js 각 css 폴더와 js 폴더에 넣어줍니다. (기본적 개발 하시는분들은 ..

[jsp/spring오류]Unknown system variable 'query_cache_size' [내부링크]

Unknown system variable 'query_cache_size' MYSQL 버전 변경으로 인한에러 실데이터 서버의 데이터베이스 버전은 5.1.41버전이다. 하지만 테스트 서버의 데이터베이스 버전이 8.0.11버전으로 버전이 완전 다르다. mysql-connector-java-[버전명].jar 파일을 변경 나는 mysql-connector-java-5.0.4.jar 버젼 라이브러리를 넣었고 my sql 은 8.0.24 버젼 이여서 오류가 낫다. mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.24 위 사이트 방문 후, lib폴더에 라이브러리 변경 하니 잘 된다... 오류 천국~~

[JSP 오류] java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'. mysql 에러 [내부링크]

Authentication plugin 'caching_sha2_password'. mysql 에러 eclipse 에서 mysql 연동 시에 이런 오류를 발견할 때가 있다 그 이유는 바로 계정 권한 문제이다 그래서 현 ip에서 연결할 수 있는 권한 Alter문을 이용해야한다. 시작화면에서 command를 검색해서 위 프로그램을 실행한다 로그인을 한뒤 계정 권한을 허가하려하는 database를 선택한다. use 데이터베이스명; 그러고 ALTER USER '아이디'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호'; 를 입력해주면 끄읕! %작은 따옴표 빼지말자 % 아 위에 아이디와 비밀번호 부분은 자신의 mysql 아이디와 비번을 입력해줘야 한다. 그..

[Error] JDBC 사용 시 발생하는 오류 DB연동 오류 [내부링크]

MySQL 8.0이상의 버전을 사용하였다. Tue Jan 29 20:27:28 KST 2019 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You ..

mysql 제거 [내부링크]

mysql 기존에 설치했던 버전을 지우고 새롭게 깔려고하는데 제대로 설치가 안되는분들 많이 계실거라고 생각합니다..(저도 그중에 하나였습니다.ㅜ.ㅜ) 확인해보니 단순히 제어판에서 제거한다고 해서 완전히 제거가 되는 게 아니었던 것이었습니다. 제가 해결한 방법을 이용해서 mysql을 완전히 제거 해보겠습니다. 윈도우 10 기준으로 진행합니다. 1. 시작 -> 실행 -> 서비스 검색 클릭 -> mysql 속성 -> 시작 유형 -> 사용 안함 체크 확인 2. 시작 -> 실행 -> regedit 검색 클릭 -> 편집 -> 찾기 mysql 검색 -> 찾은 레지스트리 전부 제거 3. C:\ProgramData 에서 MySql 폴더 제거 ( 저는 C드라이브에 숨긴 파일로 되어있어서 숨긴 파일 보기 체크 후 들어가서 ..

[톰캣 오류] several ports 8080 required by Tomcat [내부링크]

자바톰캣 오류중 흔한 오류 톰캣 실행시 8080 포트번호가 다른곳에서 미리 사용되어 생기는 오류 이러한 오류가 뜨면 명령 프롬프트 cmd를 켜서 해결가능하다. cmd 실행 netstat -an | findstr 8080 입력하시면 8080포트를 사용중인 프로세스(들)이 뜬다. 현재 764에서 8080포트를 사용 중이므로 764을 Kill taskkill 명령어로 저 프로세스를 죽이는것 taskkill /f /pid 764 프로세스가 종료되고 다시 톰캣을 실행시키면 해결

[MySQL] MySQL 다운로드 및 설치 방법(Workbench) [내부링크]

MySQL을 Windows10 운영체제에서 간단히 설치하는 방법에 대해서 알아보도록 하겠습니다. 저는 MySQL 간단 설치와 WorkBench까지 설치하여 간단히 확인해 보도록 하겠습니다. 아래는 MySQL의 홈페이지입니다 간단히 참고만 하세요. www.mysql.com MySQL Over 2000 ISVs, OEMs, and VARs rely on MySQL as their products' embedded database to make their applications, hardware and appliances more competitive, bring them to market faster, and lower their cost of goods sold. Learn More » www...

[노마드코더] ReactJS로 영화 웹 서비스 만들기 + Router [내부링크]

안녕하세요 꼬바리 입니다. 노마드 코더 에서 무료 강의인 ReactJS로 영화 웹 서비스 만들기를 완료 했다. 리액트를 처음 배우는거라 props state locetion등 어려움이 많았지만 강의 초반 기본 문법을 배우고 들어간다. 작은 app을 만들었지만 사실 이번에 배운 강의에 완전히 이해했다고 하기 어렵다 내가 만든 리액트 app으로 조금더 정리해야겠다. (난 아날로그 인간이므로 공책에 쓰는게 더 쉽게 이해된다.) 결과물 => main home이다. 영화 사이트에서 api이용 json형식으로 영화의 정보를 가져와 출력했다. 왼쪽 상단 작은 네이게이터 추가했다. 영화리스트들중 한 section 서머리의 내용이 길어서 리스트가 깨지는걸 방지하기위해 slice사용하여 180글자씩 잘라냈다. 영화 클릭시..

[Github] 파일 수정하고 다시 커밋하기 [내부링크]

1. Working Directory(작업 디렉토리)에서 파일 수정 이미 원격 저장소에 push했던 C++파일을 수정했다. 수정한 파일은 로컬 저장소(내 컴퓨터 내의 저장소)에만 적용되었고 원격 저장소(git)에는 반영되지 않았다. 즉, 현재는 로컬 저장소와 원격 저장소의 상태가 다르다고 할 수 있다. 수정 내역을 원격 저장소에도 반영시켜보자. 2. Tracked & Modified 상태인 파일 Stage하기 (스테이징 영역으로 이동) git bash로 커맨드를 열고 git status명령으로 파일 상태를 확인했다. changes not staged for commit 이라며 방금 수정한 파일이 modified(수정)됐다고 나온다. changes not staged for commit를 직역하면 "변경사..

[군자 맛집/부대찌개 맛집] 신의주 부대찌개 [내부링크]

군자 맛집 중곡동 맛집 부대찌개 맛집 군자에 푸짐이네 헬스장이 있어서자주 방문한다. 그때마다 방문하는 신의주 부대찌개나는 신의주는 순댓국이 더 유명한거 같은데 푸짐이랑 다니면서 부대찌개가 인지도를 이겨버렸다. 가격도 저렴하고 맛도 있다. 간판이 짱크다 주차는 가게 사이드 (?) 옆에 차 2대 정도 가능하다.항상 그곳에 주차를 하고 입장 검은 실루엣의 코난 범인 같은 실루엣은 푸짐이다. 이 집의 메뉴들메뉴판을 받아본적 없다. 항상 들어가면서부대찌개 2인에 우삼겹사리 라면사리 추가해주세요.멘트를 하며 들어가기에.. 메뉴판을 보니 순댓국도 있고 곱창도 있고 삼계탕도 있다니..딱 한잔 아쉬울때 순대 한접시도 술먹을 기회가 있다면먹어보고싶다 나란 인간 술먹을 기회만 있다면 빼지않는 인간하지만 자주 마시지 않는다늙..

[강남 배달 맛집/곱창 맛집] 만득이곱창 야채곱창 배달 짱 맛 [내부링크]

야채곱창 맛집 강남 배달 맛집 만득이 곱창 논현 반포 사는 분들은 다 아는 이동네 유명 곱창 맛집만득이곱창 지도로 찾으면서 알았다 체인이었다니.. 영동시장 북적거리는 골목에 또 골목으로 들어가면 매장이 있다.매장도 가보고 배달도 자주 시켜먹는곳 갠적으로 매장에서 먹는게 더 맛있다. 왜냐면 내가 좋아하는 마카로니샐러드가 있따... 글구 저 쪼꼬마한 마늘두 마니 준다..헤헤 야채곱창에 양념막창에 날치알 볶음밥을 주문했다.찍어먹는 소스2종과 상추깻잎마늘 세또~~ 1인분씩 주문한것인데양이 많은 편이다.몇년전인 이렇게 주문해도 둘이서 다 못먹었다.. 지금은 싹 다 먹고 배 통통 친다.양이 줄어든게 아니라 내가 많이 먹어진것이다. 냄새도 1도 안나고 진짜 맛있는 야채곱창이다.야채가 많이 들어갔으니 살은 안찔꺼다. ..

[github] 꾸미기 기술스택 뱃지 추가 [내부링크]

안녕하세요 꼬바리입니다. 깃허브 readme 프로필 꾸미기 simpleicons.org/ Simple Icons 1913 Free SVG icons for popular brands. simpleicons.org 심플 아이콘 사이트 에서 아이콘명과 컬러 복사 해서 원하는 기술 스택에 붙여넣기 하면된다. 나는 어렵게 직접 해라 가 아닌 그냥 코드 붙여넣어주고 어떻게 바꾸는지만 설명하겠다. logoColor=white or black 으로 변경하면된다. apache tomcat 과 amazon AWS 같은 경우는 두단어로 아이콘의 이름에 띄어쓰기가 들어가있다.아이콘 출력이 되지 않는다. 아시는분 알려주시면 ㄳ 합니다!

[github] 깃허브 프로필 꾸미기 readme 뱃지 [내부링크]

안녕하세요 꼬바리입니다. github.com/ohbyul ohbyul - Overview ohbyul has 8 repositories available. Follow their code on GitHub. github.com 내 깃허브 사이트다. 방문 부탁드립니다. 팔로워도 없고 아무 관심 없는 내 깃헙.. 열심히 하면 언젠간 늘겠지 뭐든 꾸미면 더 보기 좋고 이뻐진다. 내 병들고 관심 밖 이었던 깃허브 프로필을 꾸며 줬다. readme.md는 마크다운 으로 되어있다. 처음엔 가운데 정렬도 헤맸는데 로 쉽게 해결 되었다. 저 사이에 마크다운 코드들을 넣으니 코드 링크가 그대로 노출되고 가운데 정렬이 되지않아 애먹었는데 계속 하다 보니 된다;; 나는 블로그에 잘 설명 되있는것 따라했지만 복잡해서 그대로 ..

MySQL - 자료형 CHAR와 VARCHAR의 차이점 [내부링크]

안녕하세요 꼬바리입니다. 문자열 자료형 - CHAR, VARCHAR 자료형 의미 대응하는 범위 CHAR 고정형 문자열 255자 까지 VARCHAR 가변형 문자열 1 ~ 65535바이트 문자 수의 상한은 이용하는 문자 코드에 따라 다르다. 자료형 CHAR와 VARCHAR은 문자열을 표현할 때 사용하는 자료형으로 사용할 때 길이를 명시해 주어야 한다. CHAR 타입은 고정 사이즈이기 때문에 CHAR(20)으로 했을 경우 20byte만큼만 공간이 할당되기 때문에 20byte를 넘어가면 데이터가 잘리게 된다. 이러한 특성은 VARCHAR도 동일하다. ↑ char(20),varchar(20) 컬럼에 20byte가 넘는 문자열을 넣었을 때 20byte가 넘는 경우 데이터가 잘린다. # CHAR(20)=char(20..

[git] VS Code로 현재 프로젝트를 github에 연동하기(push only) [내부링크]

안녕하세요 꼬바리입니다. GIT VSCODE사용 간단정리. 아래 모든 명령어는 vscode 터미널에 입력하는 것임. 1. git config --global user.name 깃허브유저네임 2. git config --global user.email 깃허브이메일 3. git init (기존에 있었으면 숨김파일 보기해서 삭제하고 다시) 4. git add . (add뒤에 쩜 있다. 현재 프로젝트의 모든 파일을 git에 올리는 명령어임) git add -A 도 가능 5. git commit -m "메세지"(ex.오늘날짜) (너가 아까 쓴 first commit같은 메세지인듯) 6. git remote add origin https://github.com/유저네임/프로젝트이름.git (복붙하삼) 현재프로젝트 ..

[GitHub] git 폴더 클릭이 안될때, git 충돌 레파지토리 [내부링크]

안녕하세요 꼬바리입니다. vs code 로 코드를 짰습니다. vs code 로 git 에 올리려 하다가 하던대로 하자 해서 cmd로 깃에 올리는데 처음 보는 오류로 구글링해보니 명령어를 이거를 쓰고 저거를 써서 삭제를 해서 다시 커밋을 하고 하랍니다. 그래서 따라했는데도 안되서 몇시간 고생했습니다. 깃 허브 레파지토리를 몇개를 생성하고 삭제한건지ㅡㅡ 그냥 commit 해서 push 억지로 하니까 깃허브에 올린 폴더 클릭이 안되더라구요 충돌의 이유는 제가 올릴려는 폴더안에 git이 생긴거라 합니다. 그래서 ls -al로 리스트 찾아서 출력해서 삭제하라는데 안보이는겁니다 터미널이고 나발이고 전 수동으로 해야겠다 마지막 도전이다 해서.. 깃에 올릴 파일의 폴더로 들어옵니다. 상단 보기 -> 숨긴항목 체크 숨겨..

[GitHub] GitHub Pages 사용법 [내부링크]

안녕하세요 꼬바리입니다. Github Pages 란 무엇인가? Github Pages 는 Github 저장소의 내용을 웹페이지로 만들어 주는 서비스이다. Github 저장소의 내용을 직접 웹페이지를 통해서 보여줄 수 있다는 것이다. 간단하게 말하자면, 무료로 웹 서버를 구축할 수 있다. 아래와 같은 URL 형태를 경험해봤을 것이다. https://username.github.io VS Code 로 git pages만들기 1. vs code 에 터미널을 켜준다. npm i gh-pages 입력 후 설치 i => install 2. package.json 파일 설정 아래에 homepage 입력 #주의사항 마지막 슬래쉬 써줄것 "homepage": "http://깃허브아이디.github.io/프로젝트명/" 3..

VS Code 한 번에 여러 개 선택하여 수정하는 법(다중 선택, 다중 수정, 동시 수정) [내부링크]

여러 코드를 작성하면서, 비슷한 단어나 여러 문구를 한 번에 수정하는 법이 있다. 뭐.. 그냥 복붙 여러번하면 안되냐 일 수도 있는데, 특정 부위만을 바꿀 수도 있고, 페이지에서 사용된 모든 코드들을 한 번에 바꿀 수도 있는 능력을 가지고 있다. Ctrl + Shift + L 버튼이다. 일단 수정하려는 단어를 드래그해서 선택하고, 이 버튼을 누르면, 선택한 단어와 같은 모든 단어가 동시에 선택이 된다. 이 때 입력을 하게 되면, 동시에 모든 단어가 변경이 된다. 정말 유용한 기능이다. 그리고 한가지 더!! Ctrl + D 기능이다. 이 기능은 위에 기능이 모두 선택이라면, 이 단축키는 낱개 선택이 가능하다. 한 마디로, 한 번에 같은 단어로 수정이 가능한 것은 똑같지만, 한 번 Ctrl + D를 누를 때..

[VS Code] 자동줄맞춤 자동정렬 플러그인 "Beauty" [내부링크]

Visual Studio Code에서 자동줄맞춤 하는 방법 ! 기존에 사용했던 방법은, 드래그 + Tab , 우측으로 밀기 드래그 + Shift + Tab , 좌측으로 밀기 등 수작업으로 작업해야 했다. 일일이 이렇게 할 필요없이, 드래그 영역을 한번에 자동으로 줄 맞추고 예쁘게 해주는 플러그인이 뷰티 ! Vscode Beauty VS Code 에디터에서 사용하는 Beauty라는 플러그인 이걸 이용하면, 드레그한 영역을 Ctrl + Shift + B 단축키를 통해서 자동으로 줄맞춤 해줄 수 있다. #결과화면 Before after

[리액트] 움직이는 Component-노마드코더 [내부링크]

안녕하세요 꼬바리입니다. app.js import React from 'react'; class App extends React.Component{ state ={ isLoading: true, movies : [] }; componentDidMount(){ setTimeout(() =>{ this.setState({isLoading:false}); },6000 ); } render(){ const { isLoading } = this.state; return ( {isLoading ? "Loading..." : "We are ready"} ); } } export default App; //movies:[] 주석 처리 가능 ^^ setTimeout 으로 6초 후에 loading -> we are rea..

[리액트] Component State &Life cycle -노마드코더 [내부링크]

안녕하세요 꼬바리입니다. public -> index.html src 폴더에 index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; ReactDOM.render(,document.getElementById('root')); // ->componant는 HTML 을 반환하는 함수 src폴더에 App.js import React from 'react'; import PropTypes from 'prop-types'; class App extends React.Component{ constructor(props){ super(props); console.log("hello"); } state={ ..

spring에서 web.xml 의 classpath: log4j.xml 경로 지정 [내부링크]

안녕하세요 꼬바리입니다. log4j 설정시 1. pom.xml 디펜던시 설정 2. log4j.xml 설정 3. web.xml 설정 context-param/ listener설정 3번째 설정시에 log4jConfigLocation classpath:log4j.xml org.springframework.web.util.Log4jConfigListener --> classpath : 경로 설정시 log4j.xml 파일은 여기 존재했습니다. 경로 설정을 어떻게 해줘야할지 몰라서 구글링중 저와 같은 질문자를 찾았습니다. 저와 같은 log4j.xml 위치 아래는 고수님의 답변 저쪽 경로에 log4j.xml 을 그대로 둔다면 굳이 따로 설정을 안해줘도 된다한다. 그래서 찍히긴 찍혔구나.... 더보기 참고 : okky..

[Spring] 절대경로와 상대경로 ${pageContext.request.contextPath} [내부링크]

절대 경로 개념 최초의 시작점으로 경유한 경로를 전부 기입하는 방식 경로의 처음부터 마지막까지 완전히 적힌 경로 어떠한 웹페이지나 파일이 가지고 있는 고유한 경로 최상위 디렉토리가 반드시 포함된 경로 실전 예시 Browser http://www.google.com Windows C:\chrome\chrome_shutdown_ms.txt Linux cd $CATALINA_HOME/bin/ 윈도(Windows) 절대 경로 C:\chrome\ Spring 절대 경로 servlet-context.xml JSP 결과 상대 경로 개념 현재 위치한 곳을 기준으로 해서 목표로 하는 (파일이 있는 곳) 위치이다. 상대 경로는 항상 비교할 대상이 있어야 합니다. 결국 내가 어디있냐에 따라 경로가 달라지는 것! 내 위치와 ..

[반포 맛집 /해장국 맛집]제주 어멍 해장국 제주도의 해장국 느낌! [내부링크]

반포 논현 맛집 강남맛집 해장국 맛집 제주 어멍 해장국 반포점 집 근처 자주 애용 하는 해장국 집 주말 아침 퉁퉁 부은 눈으로 한 뚝배기 하는곳이다. 갠적으로 선지해장국을 너무 좋아한다. 어멍 해장국 (선지 유/무 선택 가능) 8,000원 선지가 들어간 소고기 해장국이 메인이지만 내장탕 도 팔고 설렁탕도 팔고 돔베 고기 도 판다 먹어본건 해장국이랑 소곱창 뚝배기 돔베고기 갠적으로 해장국이 제일 낫다. 선지 해장국 비줠 오져버림 나같은 국밥충에게 아주 알찬 한끼.. 요즘 젊은이들은 점심시간에 샌드위치 먹고 버티던데 나는 샐러드 샌드위치 먹으면 뒤돌면 배고프다. 한끼 세트.. 국밥을 끊어야 살이 빠질텐데 이 집에서 가장 맛있는 깍두기? 아니고 동치미? 동치미 가 맞겠다. 동치미 존맛탱.. 김치와 부추무침도 ..

[청담 맛집/와인 맛집]하두스살롱뒤뱅 이름이 너무 어려워 하우두유두뱅 [내부링크]

청담 맛집 강남 와인맛집 하두스살롱뒤뱅 와인고수 친구를 만나서 추천 받은 와인 집을 갔다. 검색해봐도 안나와서 이곳은 무엇인가..? 의문을 갖고 출발 아이파크 에 커다란 신한은행이있고 그쪽 계단으로 내려가면 상가 같은 곳이있다. 위치가 어려우니 잘 찾아야한다. 짠! 등장 와인 모임 공간 대여도 가능하다고 한다. 알려지지 않은 곳이라 사람이 많이 없을꺼라 생각했는데 초 저녁부터 사람이 꽉 찼다! 여기 정보가 너무 없어서 사장님께 여쭈어보니 오픈한지 2달도 안된! 공간이다! 입구쪽에 이렇게 와인을 고를수 있는 공간이있다. OSM 은 이곳에서만 마실수 있는 와인이라고 해서 바로 픽! 찹스테이크와 먹을 OSM 65,000원 와인 창고! 여기서 야무지게 와인을 골라가서 자리에 앉으면 된다. 여기는 와인 구매샵이고..

[log4j] 레이아웃 패턴 기본 설정 [내부링크]

log4j 패턴 레이아웃의 기본설정입니다.appender.console.type = Console appender.console.name = console appender.console.layout.type = PatternLayout appender.console.layout.pattern = [%d{yyyy-MM-dd HH:mm:ss}] [%-5p] [%c{1}:%L] - %m%n rootLogger.level = debug rootLogger.appenderRef.console.ref = console 출력[2019-11-04 07:10:15] [INFO ] [Driver:2181] - Starting task [Stage-0:DDL] in serial mode # [%d{yyyy-MM-dd HH:..

이클립스 어두운 테마 적용 방법 [내부링크]

이클립스를 처음 설치를 하게 되면, 화이트 색의 밝은 테마로 설치가 되어있습니다. 그런데, 코드를 작성하다 보면 몇 분도 아니고, 몇 시간씩 모니터를 보면서 집중해서 봐야 되는 경우가 많을 겁니다. 이러면 밝은 화면 덕분에 더더욱 눈에 피로가 쌓이는데요. 이를 해결하는 방법은 이클립스 테마를 어둡게 하는 방법입니다. 테마 변경은 매우 간단합니다. Window → Preference → Appearance → Theme 순서대로 들어가면 끝 Window - Perference 사진을 보면 위쪽 상단 탭에 'Window'버튼이 있습니다. 클릭을 하면 'Perference'가 있는데 이걸 클릭하면 팝업창이 뜨게 됩니다. Apperance - Theme 이 'Perference'가 이클립스를 설정해주는 창인데요..

JAVA 예외처리 공부 try catch 정리 했던 기록 [내부링크]

트라이 캐치 파이널리는 말 그대로 시도하고 잡고 마지막으로 출력! 하는 순이다. try{ //오류가 날만한 의심스러운 코드를 넣고 }catch(Eception e){ //어떤 오류인지 알아내고 }finally{ //무조건 출력하는 코드 } 자바 공부했을 시절에 정리했던 글 매우 기초적이지만 중요한 개념이다. 자바만을 할수 없으니 다른 공부를 하다보면 자꾸 잊혀지게 되는 것중 하나다.

날짜별/특정 패키지별 logger 파일 생성 log4j.xml 추가 appender [내부링크]

Log4J를 사용하기 위해서 Jar파일을 필요로 한다. pome.xml 에 디펜던시 추가 org.springframework spring-context 3.0.0.RELEASE runtime log4j log4j 1.2.14 runtime Log4j Listener를 등록한다 ( web.xml ) log4jConfigLocation classpath:log/log4j.xml org.springframework.web.util.Log4jConfigListener Log4j 의 내용을 출력하는 Config 파일은 3가지 방법이 있다. 1. 자바 소스로 직접 기술하는 방법 2. Properties 파일을 작성하여 사용하는 방법 3. xml 파일로 작성하여 사용하는 방법 (꼬바리 기준 가장 권장) Xml 파일로..

파일로 저장 되는 log4j.xml appender설정 [내부링크]

log4j.xml 에 appender추가 시, PC에 파일로 로거 가 저장 사용자에게 보여지지 않고 관리자만 관리할때 사용 날짜별 패키지별 에러별로 출력가능

[jQuery/AJAX ] Jquery를 이용한 AJAX연결과 예제 [내부링크]

#Jquery #AJAX #JAVASCRIPT 지금까지는 javascript를 이용하여 함수를 생성하고 비동기 통신을 하는 방식을 하였는데, 코드가 길고 좀 복잡한 경향이 있었습니다. 이번엔 깔끔하게 JQUERY를 이용하여 해보도록 하게습니다. 핵심 코드 $.ajax({ 1. url : 자원 (XX.do, json, xml, jsp, html) 2. dataType : 넘겨오는 데이터 형태 ex) json, xml, html, text 3. type : 어떤 방식으로 데이터를 가져오느냐? post, get 4. success(){data} : 연결해서 성공적으로 데이터를 가져왔을 때, 처리 내용 들어온 데이터 내용이 data라는 값 5. error(){} : 에러가 나서 실패했을 때, 처리할 내용 기술 ..

[jQuery] 제이쿼리 AJAX [내부링크]

AJAX가 jQuery 고유의 기능은 아닙니다. 하지만 jQuery는 간단한 문법으로 AJAX를 사용할 수 있게 도와줍니다. AJAX AJAX란 asynchronous Javascript and XML입니다.(요즘은 XML보다 HTML이나 JSON을 더 많이 쓰는 것 같습니다. 그래도 AJAH, AJAJ라고 부르기는 좀 이상하네요 ㅎㅎ) 기존의 웹에서는 한 번 페이지를 로딩하면 다른 페이지를 로딩하기 위해서 링크를 타고 넘어가야 했습니다. 그렇게 되면 흔히 말하는 페이지 깜빡임이 발생합니다. 뭐 예전에는 거의 모든 웹페이지가 그랬고, 현재도 많은 페이지가 그렇기 때문에 별 불편함은 느끼지 못하실텐데요. Google에서 페이지 깜빡임 없이 웹앱을 구현해서 주목을 받았습니다. 구글 검색을 해보면, 페이지를 ..

[jQuery] vanilla JS -> JQuery 표현법 [내부링크]

funtion f`1 과 funtion f`2 는 같은 코드 이다. 스크립트 문법 만 본다면 제이쿼리 사용하기 위해 head안에 넣어주고 getElementsByClassName 하여 클래스 네임을 가져오는건 바닐라 JS 제이쿼리는 $(" ") 안에 클래스 -> .클래스명 아이디 -> #아이디

[JAVA 예외처리] Throws by 생활코딩 [내부링크]

내가 처리하는 게 부적절하다면(내가 처리하는 게 귀찮다 ㅋㅋ할때) throws를 한다. 이 코드를 사용하게 되게 되는 곳에서 트라이 캐치를 요구 받게 된다.

[JAVA 예외처리]finally와 resource 다루기 by 생활코딩 [내부링크]

외부에서 가져오는 데이터들을 리소스라고 한다. 굉장히 불안정한 상태 파일, 데이터베이스와 같은 자원들은 작업이 끝났을 때 연결을 끊어줘야 한다. => close(); 이렇게 반드시 해야 할 작업들을 처리해야 할 때 finally를 이용 한다. close() 또한 체크드 익셉션 이 안에서 또 트라이캐치를 던져줘야한다. 자바는 어렇게 장황하지만 정확한걸 좋아한다. 최신 자바를 쓴다면 이러한 장황한 코드가 아닌 오토 클로저블 기능으로 간결하게 사용 가능하다. 두 코드는 동일 하다. 왼쪽 코드가 더 간결하고 가독성이 높다.

[JAVA 예외처리] checked vs unchecked exception by 생활코딩 [내부링크]

checked exception vs unchecked exception checkedexception unchecked exception - 컴파일러가 체크 함. -컴파일러가 익셉션이 일어날지 안일어날지 파악 -이건 익셉션 처리 해야하는데 왜 안했냐고 컴파일러가 컴파일도 안하는 익셉션 트라이 캐치를 하건 말건 본인의 재량인 익셉션 - checked exception 은 runtimeException을 제외한 나머지 익셉션들 - 그중 가장 대표 : IOException unchecked exception 은 runtimeException을 포함 한 자식들. checked Exception 의 대표인 IO Exception으므로 트라이 캐치 문을 사용하지않으면 무조건 익셉션 발생

[JAVA 예외처리]Try Catch 구문의 기본적 사용법 by 생활코딩 [내부링크]

가장 기본적인 자바 코드 문법을 복습 하기 위해 공부 정리 해 둔것 입니다. ERROR EXCEPTION 내가 만든 프로그램이 아닌 프로그램이 동작하는 환경의 문제를 에러 라고 한다. 내가 만든 코드가 문제가 발생할때를 익셉션 예외적인 상황 자바로 일부로 오류가 나게 만들어 보았다. 자바에서는 나누기 0을 지원하지않기때문에 익셉션이 뜬다. 1까지 는 출력이 되고 2에서 에러가 나기때문에 3이 출력 되지않는다. 익셉션이 뜨더라도 순서대로 출력을 원하는 상황이 있을수 있음으로 try catch문을 사용한다. try{} -> 안에는 익셉션이 날꺼같은 의심스러운 코드를 넣고 catch{} -> 안에는 익셉션 발생시 대신할 코드를 넣는다. sout2번이 문제이므로 캐치문의 코드가 실행 되었다. 또 다른 오류를 만..

미트리 가입 코드 [추천인 링크 O] [내부링크]

metree.co.kr/index/index.php?sponsor=100606401 미트리 공식쇼핑몰 미트리 공식쇼핑몰 - 닭가슴살, 소시지, 스테이크, 스팀, 훈제, 핫바, 볶음밥, 만두, 도시락, 헬스, metree.co.kr 미트리 닭가슴살 큰 쇼핑몰 인데 전 사실 랭킹닭컴만 이용했다가 이번에 처음 미트리 가입 했습니다. metree.co.kr/index/index.php?sponsor=100606401 미트리 공식쇼핑몰 미트리 공식쇼핑몰 - 닭가슴살, 소시지, 스테이크, 스팀, 훈제, 핫바, 볶음밥, 만두, 도시락, 헬스, metree.co.kr 여기 클릭하셔서 해택 받으세요! 물이 79원이라길래 가입했는데 닭가슴살을 샀습니다 전 다들 늦지 않았어요 5월부터 닭찌지 먹으면 8월엔 조금은 날씬해 지..

[리액트] JSX & Prop 정리 -노마드코더 [내부링크]

노마드 코드 무료 강의 리액트 공부 중입니다. 개념이나 이론 보다 히스토리를 남기기위해 기본 코드마만 적은것 입니다. 기본 설치후 리액트를 실행후, 필요 없는 파일은 다 지운 상태 (필요없다기 보다 내가 사용하지 않는.) JSX와 Props 개념만 배운 후 중간 정리 단계. 폴더를 다 닫은 상태 public 폴더와 src 폴더 연 상태 Public 폴더 > index.html //여기가 루트 src 폴더 > index.js import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; ReactDOM.render(,document.getElementById('root')); // ->componant는 HTML 을..

React | Component의 Lifecycle [내부링크]

React는 컴포넌트 단위로 화면에 렌더링하는데, 이 때 각각의 컴포넌트는 Lifecycle을 갖는다. 다음은 라이프사이클 다이어그램이다. 이번에는 리액트의 LifeCycle API에 대해 알아보자. Lifecycle 자세한 다이어그램은 이곳에서 볼 수 있다. 다음은 라이프 사이클 API를 컴포넌트가 1) 생성될 때, 2) 업데이트 할 때, 3) 제거 할 때로 나누어서 정리해보았다. will이 붙은 메소드는 특정 작업 전에 실행되는 메소드이고, did가 붙은 메소드는 작업 후 실행되는 메소드라는 것을 기억하자. Mount 1. constructor() 컴포넌트 생성자 함수. 컴포넌트가 새로 만들어질 때마다 이 함수가 호출된다. 이 메소드는 컴포넌트가 마운트 되기 전에 호출 된다. 페이지 로드 되고 컴포넌..

React | Component의 State [내부링크]

State state란 말 그대로 컴포넌트의 상태 값입니다. state와 props는 둘 다 object이고, 화면에 보여줄 정보(상태)를 가지고 있다는 점에서 서로 비슷한 역할을 합니다. props는 컴포넌트를 사용하는 부모쪽에서 전달해야만 사용할 수 있고, state는 컴포넌트 내에서 정의하고 사용합니다. 위의 코드를 설명하자면, render() { 이 부분이 실행할 함수가 들어가는 부분이다. } div를 클릭하면 clicked라는 상태를 수정한다. 여기서 setState() 함수는 state를 업데이트한다. {clicked: !this.state.clicked}라는 말은 현재 clicked의 반대로 (toggle처럼) 저장한다는 의미이다. {this.state.clicked ? '좋아요' : '싫어..

React | Component와 Props [내부링크]

0. 리액트는 component 기반 라이브러리이다. 리액트는 컴포넌트 기반 라이브러리이다. 컴포넌트는 UI의 여러 부분을 분할해서 코드의 재사용성과 유지 보수성을 향상시킨다. 즉, 컴포넌트는 독립적으로 재사용 가능한 코드로 관리할 수 있도록 도와준다. 웹페이지를 하나의 완성품이라고 했을 때, 컴포넌트는 하나의 부품이다. 웹페이지가 특히 복잡할수록 각 컴포넌트로 나누어 관리한다면! 당연히 유지 보수가 필요할 때에도 전체를 건드리지 않고 해당 컴포넌트만 수정하면 된다. 혹은 비슷하지만 기능이 조금은 다른 웹페이지를 만들 때에도 컴포넌트를 조립하듯이 만들 수 있어서 재사용성이 향상되는 것이다. 컴포넌트를 나누는 기준? 기능을 단위별로 캡슐화하는 리액트의 기본 단위이기 때문에, 내부적으로 각자의 상태를 관리할..

React | JSX란? 렌더링 Rendering이란? [내부링크]

0. 들어가기에 앞서: React란? JSX를 정리하기에 앞서 간단히 리액트를 정리해보자. 리액트는 페이스북이 만든 사용자 UI 구축을 위한 라이브러리이다. 하나의 단일 url을 가지고 SPA(Single Page Application)으로 사이트를 표현하는 것을 가능케하는 프레임워크다. 이 리액트는 3가지의 대표적인 특징을 가지고 있다. 1. JSX 문법 2. Component 기반 3. Virtual DOM 이번엔 먼저 JSX에 대해 알아보도록 하자. 1. JSX란 쉽게 말해 HTML 문법을 JavaScript 코드 내부에 쓴 것. 그것이 바로 JSX다! 어렵게 말해 JavaScript eXtension.. JavaScript의 확장 버전이고 결론은 자바스크립트이다. "React에서 HTML을 표현할..

[React] 리액트 프로젝트 생성과 빌드 [내부링크]

해당 글은 리액트에서 제공하는 자습서에 내용을 덧붙이고 풀어서 작성한 글입니다. 원문 : https://ko.reactjs.org/docs/getting-started.html 시작하기 – React A JavaScript library for building user interfaces ko.reactjs.org 리액트 프로젝트를 만들기 위해선 creact-react-app을 이용합니다. npm install -g create-react-app create-react-app 프로젝트이름 저는 프로젝트이름을 react-tutorial으로 생성하였습니다. cd react-tutorial npm start 해당 폴더로 접근한 뒤 npm start로 실행할 수 있습니다. 정상적으로 리액트 페이지가 로드됩니다...

[React] React.js란 무엇인가? [내부링크]

React.js란 무엇인가? React는 현재 현업에서 인기 있는 웹/앱(RN)의 View를 개발할 수 있도록 하는 라이브러리이다. 보통 우리가 생각하는 어플리케이션(웹, 앱 혹은 데스크톱용 소프트웨어)을 만들기 위해서는 사용자가 조작하기 위한 UI(User-Interface), UI를 컨트롤 하기 위한 로직, 데이터를 처리하는 비즈니스 로직 등 3가지 부분으로 개발이 필요하다. 이렇게 특정 부분을 나누어 개발하는 방법론을 MVC 패턴, MVVM패턴 이라고하며, React.js는 View 즉, 사용자가 조작하기 위한 UI를 만드는 것을 도와주는 라이브러리이다. 개발을 처음 공부한다면 MVC 패턴, MVVM패턴 외에 다양한 패턴들을 익히고, 손으로 직접 구현해보길 바란다. 다양한 패턴들이 처음에는 익숙하지..

java에서 사용하는 log와 logger의 차이 [내부링크]

- java에서 사용하는 log와 logger의 차이 - Logger * example : Logger logger = Logger.getLogger("com.foo"); - Log * example : Log log = LogFactory.getLog(CLASS.class); Logger는 log4j의 framework에서 제공하는 api이고, Log는 Commons-logging에서 제공하는 logging framework에 대한 추상화 layer라고 하는 듯... 출처: http://stackoverflow.com/questions/13871337/differences-between-log-and-logger

간단한 logback 설정하기 [내부링크]

pom.xml 설정 org.slf4j slf4j-api ${version.slf4j} ch.qos.logback logback-classic 1.1.7 로그 레벨 ERROR, WARN , INFO, DEBUG, TRACE logback 설정파일 일반적으로 logback.xml으로 만들며 src/main/resources/ 아래에 위치시킨다. 기본 구조 Appender 설정 Logger 설정 logback.xml %d{HH:mm:ss.SSS} [%thread] %-5level %logger{32} - %msg%n LogTest.java public class LogTest { private static final Logger LOG = LoggerFactory.getLogger(LogTest.class);..

LOGBACK 설정방법 [내부링크]

SLF4j 특징 SLF4j(Simple Log Facade for Java) 는 사용자가 원하는 로깅 프레임워크(log4j, logback, 등)으로 변경하여 사용 할수 있도록 추상화하는 기능을 제공한다. 1. gralde 추가 compile("org.slf4j:slf4j-api:1.7.7") compile('ch.qos.logback:logback-classic:1.1.2') 2. logback.xml 파일을 src/main/resource 아래 생성 후 아래 내용을 추가해준다. %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ${APP_HOME}/sujemall-webapp.log sujemall-webapp.%d{yyyy-MM-dd}.log 30..

log4j, logback 그리고 log4j2 [내부링크]

Java의 여러가지 Logger들 Java 진영에는 여러가지 로깅 관련 프레임워크가 있습니다. 흔히 접하기 어려운 commons logging과 JUL(Java Uitl Logging)도 있고요. 이번에 비교할 대상인 log4j, logback 그리고 log4j2가 있습니다. 간단하게 시간 순서대로 비교하면 log4j, logback, log4j2 순서로 등장했습니다. 그러니까 log4j2가 상대적으로 최근에 등장한 로깅 프레임워크지요. logback과 log4j2는 log4j를 기반으로 하고 있어서 설정하는 방법이나 사용 방법이 유사합니다. 비슷하긴 하지만 다른 로깅 프레임워크로 전환할 때를 생각한다면 slf4j 라는 녀석의 도움이 필요합니다. slf4j는 Java 진영의 로깅 프레임워크들의 추상체(f..

[Spring] 스프링 Logback 설정 및 사용법 [내부링크]

Logback Logback은 SLF4J의 API를 사용하며, log4j의 아키텍쳐 기반으로 재작성 되었으고, 성능은 10배 정도 좋다고 합니다. 설명은 아랫분이 엄청 잘해주셔서 링크 남깁니다. https://beyondj2ee.wordpress.com/2012/11/09/logback-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0-reasons-to-prefer-logback-over-log4j/ pom.xml Logback을 사용하기 위하여 pom.xml에 slf4j와 logback을 추가해 주면 됩니다. org.slf4j jcl-over-slf4j ${jcloverslf4j.version} ch.qos.logba..

logback 설정하기 [내부링크]

자바 개발자라면 한번쯤은 들어봤고, 한번쯤은 사용했을법한 logger 로 log4j 가 있을것이다. 하지만 최근들어 logback 이라는것을 알게되었고, 왜 logback 을 사용해야 하는 이유라는 글이 있을정도로 여러 측면에서 개선이 된듯 하다. (링크) 이번에 작성할 글의 목적은 logback을 설정하고 어떻게 사용하는지에 대해 작성해 보고자 한다. ※ 공식사이트 : https://logback.qos.ch/ pom.xml maven구조라고 가정했을때 logback Dependency를 가져오기 위해서는 아래와 같이 pom.xml 에 설정해 주면 된다. ch.qos.logback logback-classic 1.1.7 로그레벨 ERROR, WARN, INFO, DEBUG or TRACE # logba..

LogBack [내부링크]

1. LogBack이란 LogBack이란 Log4J를 만든 개발자 Ceki Gülcü가 Log4J를 기반으로 더 빠른 속도와 더 적은 메모리 점유율 등의 성능을 개발하여 만든 Logging Framework입니다. 2. LogBack의 특징 Level 로그에 레벨을 설정할 수 있습니다. 개발 시 디버깅을 위해 출력하도록 한 로그들은 개발 완료 후 운영 시점에서는 더 이상 출력하지 않게 합니다. 로그마다 레벨을 설정해두고 설정 파일에서 출력 로그 레벨을 설정하여 원하는 단계의 로그만 출력할 수 있습니다. Appender 출력 방법을 선택할 수 있습니다. 로그의 기록을 담당하는 Appender에게 출력 위치(콘솔, 파일 등)나 출력 내용(날짜/시간, 레벨 등)에 대한 패턴을 설정할 수 있습니다. Logger..

[Spring] Model, ModelMap, ModelAndView 차이점 [내부링크]

Model, ModelMap Vs ModelAndView 차이점 데이터만 저장한다 vs 데이터와 이동하고자 하는 View Page를 같이 저장한다 Model, ModelMap 공통점 model.addAttribute("변수명"); modelMap.addAttribute("변수명"); 둘 다 addAttribute를 사용함 Model or ModelMap에 데이터만 저장 후 View에서 사용목적 Model, ModelMap 차이점 Model - 인터페이스 ModelMap - 클래스 Java Controller @RequestMapping(value = "/test.do") public String test(HttpServletRequest request, Model model, ModelMap modelM..

Log4j의 정의, 개념, 설정, 사용법 정리 [내부링크]

목차 Log4j 정의 Log4j 특징 Log4j 구조 Log4j 레벨 Log4j Pattern Option Log4j 주요 클래스 Log4j 설정 Log4j 정의 Log4j : Log for Java 로그문의 출력을 다양한 대상으로 할 수 있도록 도와주는 도구(오픈소스) 오픈소스 링크 Log4j 특징 - log4j는 속도에 최적화 - log4j는 이름있는 로그 계층에 기반 - log4j는 fail-stop이지만 신뢰성은 없음 - log4j는 thread-safe(멀티스레드 환경에서 사용해도 안전하다:역주). - log4j는 융통성이 풍부 - 설정 파일은 property 파일과 XML 형식으로 실행 중 수정 적용 가능 - log4j는 처음부터 자바의 예외를 처리하기 위해 디자인 - log4j는 출력을 파일..

[Java] 트랜잭션 처리하기 [내부링크]

트랜잭션이란? 트랜잭션(Transaction)이란 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말한다. A가 B에게 만원을 송금한다고 가정한다. 먼저 A의 통장에서 만원을 인출하고, B의 통장에 만원을 입금해야 한다. 이때, 인출과 입금의 두가지 일이 합쳐져 '송금'이라는 하나의 논리적 기능을 이루는 것이다. 트랜잭션의 성질(ACID) 원자성(Atomicity) 트랜잭션은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 한다 예) 송금 과정에서 A에게서 만원을 인출했지만 B에게 만원을 입금하지 않는 경우가 발생하면 안된다 일관성(Consistency) 트랜잭션이 성공적으로 완료되면 일관적인 데이터를 유지한다 독립성(Isolation) 둘 이상의 트랜잭션이 동시에 ..

[Spring] Quartz 라이브러리를 이용한 스케쥴러 설정 [내부링크]

스케줄러 - 주기적으로 매일, 매주, 매월 등 주기적으로 특정한 프로그램을 실행하기 위한 것 - Spring의 경우는 Spring-batch 혹은 Quartz 라이브러리를 이용하면 프로그램이 실행되는 동안 주기적인 스케줄링이 가능하다. Spring에서 Quartz 라이브러리 설정 1. pom.xml org.quartz-scheduler quartz 2.3.0 org.quartz-scheduler quartz-jobs 2.3.0 - quartz와 quartz-jobs 디펜던시 등록. 2. root-context.xml 의 namepace에서 task 항목을 체크! - task:annotation-driven 태그 추가 - 스케줄러가 실행될 컨트롤러가 속한 패키지를 component-scan 처리한다. 3...

이클립스 디버그 모드 사용하기 [내부링크]

이클립스에는 디버그 모드라는 것이 있다. 디버그 모드란 사용자가 좀 더 쉽게 디버깅을 할 수 있도록 도와주는 기능이다. 디버그 모드를 사용해보면 어디서 에러가 발생하는지를 좀 더 쉽게 알 수 있다. 그러면 디버그 모드를 사용하는 방법을 알아보자. 디버그 모드 사용하기 디버그를 하려면 우선 브레이크 포인트를 걸어야 한다. 브레이크 포인트란 코드가 실행되다가 일시적으로 멈추게 되는 지점이다. 이 지점부터 사용자가 순차적으로 코드를 진행시키며 코드를 분석할 수 있다. 소스 코드 좌측을 보면 숫자 옆에 빈 공간이 있다. 이 부분에 더블클릭을 하여 브레이크 포인트를 지정할 수 있다. 브레이크 포인트가 걸리면 위처럼 작은 아이콘이 나타난다. 여기가 디버그 시작점이다. 이렇게 브레이크 포인트를 걸고 난 뒤 디버그 모..

[jQuery] 제이쿼리에서 아작스(AJAX) 사용 [내부링크]

#7 jQuery에서 Ajax 사용하기 제이쿼리를 사용하면 자바스크립트에서보다 쉽게 아작스 기술을 사용할 수 있습니다.(xhr을 사용하지 않아도 됨) 아작스는 페이지를 새로 로딩하지 않고 동적으로 페이지의 내용을 바꿀 수 있는 기술입니다. Ajax 지원 메서드 $(document).ready(function () { // 1.html 등의 text 문서 읽기 $("#t1").click(function () { // $("#disp").load("jq9_a.html");// load() : Ajax 관련 메소드 $("#disp").hide().load("jq9_a.html", function () { $(this).fadeIn();// fade effect }); }); // 2. json 문서 읽..

[jQuery] 제이쿼리 기초 : 조작하기, 이벤트, 이펙트 [내부링크]

#4 jQuery 조작하기 $(document).ready(function () { var p = document.getElementsByTagName("p"); // alert(p.length + ", " + p.size()); p[0].style.color = "red"; // javascript p[1].style.color = "blue"; p[2].style.color = "green"; $("p").eq(1).css("color", "aqua"); // jQuery // alert($("p").index($(".kbs"))); $("p").eq($("p").index($(".kbs"))).css("color", "yellow"); //$("요소~요소2") : 요소2를 요소 1에서부터 검..

[jQuery] 제이쿼리 기초 : 시작하기, 선택자 [내부링크]

jQuery 기초 jQuery(제이쿼리)는 HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리다. 존 레식이 2006년 뉴욕 시 바캠프(Barcamp NYC)에서 공식적으로 소개하였다. jQuery는 오늘날 가장 인기있는 자바스크립트 라이브러리 중 하나이다. (자료출처 : https://ko.wikipedia.org/wiki/JQuery) 제이쿼리를 사용하는 이유는 다음과 같습니다. 페이지 내부 요소에 접근하기 쉽다.제이쿼리를 사용하지 않으면 DOM 트리를 이용해서 요소(element)에 접근해야 합니다. 이는 배우기도 어렵고 불편한데, 제이쿼리를 사용하면 CSS의 선택자를 이용해서 간편하게 접근할 수 있습니다. 페이지의 보여지는 모습을 변경하기 쉽다.동적으로..

[공릉/태릉 삼겹살 맛집] 쇠뿔정육식당 강추강추 개강추 [내부링크]

공릉 맛집/태릉입구역 맛집 삼겹살 맛집 쇠뿔 정육 식당 갑자기 삼겹살이 먹고 싶어서 찾아간 곳입니다. 원래는 푸짐이가 회사 사람들이랑 회식 한 3번 정도 했던 곳인데 갑자기 생각나서 저를 데리고 갔드랬죠 야외 노포집처럼 테이블도 있고 제가 좋아하는 분의기 였어요 야외 자리 불편하지만 비오는날 소주 먹으면 안취하잖아요 기본 찬입니다! 저 상추무침 콩나물무침 무침s들이 깡패였어요 한번 리필 또 해서 먹었어요 그만큼 맛있다능 기본 찬입니다. 무생채가 맛나더라구요 서비스라고 툭 던져주고 가십니다. 불판에 툭 오다 주웠다 차돌박이를.. 저게 삼겹살 2인분입니다. 요즘 100g을 1인분이라고 파는곳도 있고 거의 대부분 150g에 1인분으로 팔잖아요? 200g에 12,000원 이었어요 이제 이런 식당 많이 없어진듯 ..

[신사 맛집/ 오마카세 맛집]신사 김수사 위치좋은 오마카세 맛집 [내부링크]

신사 맛집 신사 오마카세 김수사 작년 여름에 방문했다. 특별한날 좋은 곳 가고싶은데 찾다가 위치적으로도 가깝고 사진 비주얼이 좋길래 방문 그리고 엄청 유명하드만 예약은 당일에 했다 그래서 오마카세를 못느끼고 테이블에서 한번에 가져다 주셨다. 오마카세는 쉐프님께 설명 하나하나 들으면서 먹어야 제맛인데 한번에 스시 나오고 한번에 초밥 나와서 아쉽긴했다. 만약 방문시 꼭 오마카세로 예약 하시길 우린 당일 예약이라 다른곳은 다 차이고 이곳 겨우 되서 왔다. 1인에 7만원인가 9만원 이었다. 본격 식사전 나오는 음식 전복과 문어 그리고 우니! 좌측 아래는 오징어에 생선알을 넣어서 만든 거라했다. 속을 달래줄 계란찜 본격 식사 시작 사람도 많고 엄청 시끄러워서 불편했던 기억이있다. 공간이 시끄러울수 밖에 없는 공간..

[을지오 맛집] 보틀러 특별한 날 예쁜 추천 공간 [내부링크]

을지로 맛집 을지로 와인 보틀러 을지로에 맛집 이 많은데 여긴 분위기 오지고 이쁜 공간이다. 음식도 맛잇고 대신 양이 작음 이런곳은 맛잇어서 가는곳은 아니니까..,?(밥집에 음식 맛 말고 뭘로 가는데) 작년 여름 내 생일에 방문한 곳이다. 미리 예약해야만 한다. 혹시 모르니까... 토요일이라 자리 없을까바! 더운날이었는데 안쪽 공간은 천장이 넓고 탁 띄여 있어서 시원했다. 여자들이 좋아하는 공간일 수 밖에 없는것이 온통 거울 천지 다. 나같은 거울 공주에게 딱 기본 테이블 세팅과 신기하게 생긴 과자 효자손인줄 여자친구들 3명이서 갔고 트러플 감자 샐러드(?) 와 새우토마토파스타 , 명태구이 와 고로케 ? 를 주문했다 와인이랑 같이 마실거여서 안주? 같은 걸 주문했다. 위에 캐비어랑 트러플오일이 뿌려져 있..

[해방촌 루프탑] 오리올 야경깡패! 없던 사랑도 생겨나는 공간 [내부링크]

해방촌 루프탑 서울 루프탑 오리올 여긴 어디 동네라고 할수있을까?무튼 핫한 공간이다.정엽 카페로 유명한곳인데 정엽님은 못만났다.작년 여름 내생일에 방문했던 곳이다. 오리올의 이쁜 간판 자세히 보면 개구진 직원분이 사진에 찍혀있다.난 그냥 저문을 찍고싶었는데 ... 이름이 아직도 기억이 난다. 특이한 이름을 가지고 계셨다. 직원분들이 친절하시고 전문성 있으셨다.원하는 스타일과 주종, 주량을 물어보시고 딱딱 추천해 주시는데 이런 바를 갔을때 입맛에 안맞는적도 있었지만 이곳은 직원분이 자부심도 있으신거 같고 전문성이 뛰어나셔서정말 취향 대로 추천해주셨다. 가자마자 주문한 맥켈란.난 독주를 좋아한다맥켈란 한병도 마실수 있는데한잔으론 날 채우지 못하지. 저뒤에 분위기 바라아주 미쳤다 같이 방문한 친구의 손야외 테..

[대창 오마카세 맛집/청담 맛집] 호루몬 어서와 대창 오마카세는 처음이지? [내부링크]

대창 오마카세 오마카세 맛집 호루몬 청담 작년 8월 여름에 방문했던 청담 호루몬 입니다. 대창 좋아하는데 대창 오마카세라니 너무너무 기대했던 곳입니다. 주차 앞에 그냥 대는거 ...;;; 같아요 ㅎㅎㅎ 예약은 필수입니다 무조건 지금은 어떤지 모르겠지만 작년엔 네이버 예약도 안되고 가게 번호도 안적혀 있어서 사장님 개인 폰인지 가게 폰인지 핸드폰 번호로 예약해서 방문했습니다. 너무 더운 날이여서 기린 맥주 한잔 했습니다 들어가자마자... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 근데 더운날 생맥주 한잔 디지죵..

[청담 맛집/한우 맛집] 한와담 청담 맛은 있지만 특별하진 않은 [내부링크]

청담맛집 한우 맛집 한와담 청담 맨날 맛집포스팅할때 혼잣말 형식으로썻다 존댓말 햇다 섞어쓰는데 이젠 혼잣말 형식이다. 혼잣말 형식이지만 예의범절있는 나는 이렇게 소소하게 공지한다오늘도 여전히 고기 포스팅이다고기만 올리니까고기 덕후인줄 알겠다 사람들이.. 걸렸네 한와담은 약간 고급 스러운 느낌의 고기집직접 구워주시고 그릇도 정갈하고고기 상태도 좋고고기도 비싸다^^ 내가 만약 100억 있는 부자라면 저렴한거겠지만난 100원 있는 인간이므로 비싼 편이다. 인터넷에서 본 이집의 매력은 콜키지 라고 하지만우린 술을 마시지않는다. 고기만 먹을뿐 이렇게고기 두덩이를 구워주신다. 3인분인지 4인분을 주문했는지 기억나지 않지만 1인분에 150g 이었고 1인분 가격이 4만원 대였다. 3-4인분 주문하면 저렇게 두덩이가 나..

[제주도 맛집/고등어회 맛집] 제주도 미영이네 고등어회 강추 맛집 [내부링크]

제주도 맛집 제주도 고등어회 미영이네 제주도 여행했을때 추천 받았던 고등어회 맛집이에요 늦게가면 당일 재료 소진으로 고등어가 없답니다! 성수기 때만 그럴수 있지만 예약 안되고 가서 번호적고 시간되면 불러주셔요 어떤 항구 앞에 횟집이 있었어요. 한여름 방문 했고 저녁 즈음 이있답니다. 주차는 앞에 항구에 가능해요! 차에서 기다리다가 전화받고 냉큼 달려 갔어요. 제주도 고등어회 맛집 “미영이네” 대기가 많았어요! 고등어 회+탕 주문 했어요. 2인분 양 이라고 합니다 가격은 50,000₩ 지금 검색해보니 55,000₩으로 오천원 오른듯 합니다. 앉자마자 세팅이 호로록 태어나서 처음 먹어보는 고등어 회 저기 가장 왼쪽에 넓게 펼쳐진 밥은 “고등어 밥” 이에요. 고등어를 넣어서 지은 밥인가? 비린내는 안났어여. ..

[한우 오마카세 맛집/합정 맛집] 우마담 가격이 착한 한우 오마카세 [내부링크]

한우 오마카세 맛집 합정 맛집 우마담 작년 에 방문 했던 우마담이예요.작년 10월말 푸짐이 생일로 갔어요 오마카세는 많이는 아니지만 꽤 다녀 봤는데한우 ! 오마카세는 처음이었어요 한우 오마카세에 비해 가격도 저렴한 편이라서젊은 커플들도 많이 오는거 같아요 예약은 정말 미리미리 하셔야해요 ㅠㅠ저도 원하는 날 예약 못했어요2주전에 했지만 자리가 없어서다른날로 예약했어요 때깔 고운 고기 입니다.시그니처 2인 예약했어요 고기는 순서에 맞게 직원분께서 다 구워주셔요 에피타이저로 나온 육회!맛있엇어요고기 is 몬들 작고 예뿐 뚝배기 그릇에 나온 계란 찜 이예요위에 올라간 새우까지 부드러웠어요 고기를 순서에 맞게 구워서 주신답니다. 첫빠따는 부채살너무 맛있고 부드럽고..육즙 보이시죠 (순서가 섞일수도 있지만 제 기억..

[강남 배달 맛집/ 치킨 맛집] 꾸브라꼬 치킨 강남점 치밥 맛집 인정~~! [내부링크]

강남 배달 맛집 강남 맛집 치킨 맛집 꾸브라꼬 치킨 강남점 숯불 치킨계의 존맛탱꾸브라꼬 치킨이예요일주일에 두번이나 시켜먹었답니다.맛잇으니까요 여기 숯불치킨은 아예 치밥을 먹으라고! 참기름이랑 김 까지 보내주셔요밥만 잇으면 바로 치밥 완성 다른곳 에서 먹으면 치밥 먹고싶어도 소스 부족 현상으로 아쉬운 적 잇잖아요?여긴 진짜 소스도 많이 주시고딱 치밥하기좋아요 순살 치킨 입니다.매운맛 조절 할수있는데덜매운맛 = 신라면정도근데 저는 이것도 너무 매워요왜냐면 전 신라면을 못먹으니까요 진라면 순한맛만 먹는데;;;맛있게 매워요! 추가한 우동사리.. 우동사리를 따로 주셔서비주얼적으로 깰꼼 해요~! 배달의 민족에서 주문했고리뷰이벤트로 감자튀김을 부탁드렸어요전에는 새우링 이었는데 둘다 맛있어요리뷰 이벤트 음식도 깔끔하니..

[ atom ] 아톰 완전 삭제 ( 미삭제 파일 포함 삭제 시 ) [내부링크]

제어판 > 아톰 삭제 이렇게 삭제를 하면 설치폴더에 있는 파일들은 모두 삭제가 된다. 하지만, 남아있는 찌꺼기가 존재해서 새로 설치를 하게 되면 다시 그 파을들을 설치해 버린다. 완전삭제는 폴더를 찾아서 삭제해줘야 한다. C:\Users\\.atom folder (설정, 패키지…). C:\Users\\AppData\Local\atom (응용 프로그램 자체) C:\Users\\AppData\Roaming\Atom 폴더 (캐시 용) 이 폴더들이 남아 있다면 강제로 삭제를 해준다. 그러면 패키지나 추가 설치된 부분도 모두 초기화를 할 수 있다. 출처 : funyphp.com/archive/editor/21?sst=wr_good&sod=desc&sop=and&page=3

GAN 동작 원리 (참고 링크) [내부링크]

안녕하세요 꼬바리입니다. sensibilityit.tistory.com/505?category=731657[GAN] Generative Adversarial Network 정리GAN 중에서 가장 기본적인 "Generative Adversarial Network"에 대해 논문을 읽고 참고자료를 본 후 정리한 공부자료 입니다. + 정리하다가 Autoencoder와 VAE 개념을 먼저 알아야 GAN을 이해하기 쉽다는 생각이.sensibilityit.tistory.com

[JavaScript] 천단위 콤마 찍기, 소수점 포함 [내부링크]

javascript 정규식을 사용하여 input text box에 입력받는 숫자들을 천단위로 콤마를 찍어보자. 물론 소수점도 입력된다. JavaScript //문자 제거 function removeChar(event) { event = event || window.event; var keyID = (event.which) ? event.which : event.keyCode; if (keyID == 8 || keyID == 46 || keyID == 37 || keyID == 39) return; else //숫자와 소수점만 입력가능 event.target.value = event.target.value.replace(/[^-\.0-9]/g, ""); } //콤마 찍기 function comma(obj)..

[Spring] 메이븐(Maven)이란? [내부링크]

* Maven - Spring 프레임 워크 기반의 프로젝트를 진행하려 spring에 대해서 알아보던 중 maven을 프로젝트에 추가해야 할 필요성을 느꼈다. 그럼 메이븐이란 무엇인가? - 프로젝트를 진행하게 되면 단순히 자신이 작성한 코드만으로 개발하는 것이 아니라 많은 라이브러리들을 활용해서 개발을 한다. 이때 라이브러리들의 수가 수십개가 넘는 일이 발생하곤 하는데, 라이브러리들이 많아지면 관리가 힘들어지게 된다. 이때 필요한게 메이븐이다. - 메이븐은 내가 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다. - 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 네트워크를 통해서 라이브러리들을 자동으로 다..

[Maven] Nexus란? [내부링크]

Nexus란? Sonatype 에서 만든 저장소 관리자 프로젝트 다양한 Format의 사설 저장소를 만들 수 있으며 메인 저장소를 Cache 할 수 있는 기능 또한 제공하여 저장소를 관리할 수 있도록 도와주는 관리자 도구 Maven 에서 사용할 수 있는 가장 널리 사용되는 무료 저장소 1️ 필요성 사설 리포지토리가 왜 필요할까? 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 Proxy 역할 특히 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는 등 여러 상황에서도 빠르게 받을 수 있음 현재 Maven에 올라와 있지 않은 자료들은 효율적으로 관리하기 위하여 한번 다운로드 받은 dependency는 로컬에 저장되어서 협업 시 다른 PC에도 설치해야 함 서버에도 동일한 설정들을 ..

localhost 또는 127.0.0.1 이란? [내부링크]

보통 자신의 PC에서 웹서버를 띄우고, 브라우저 주소창에 그 자신의 PC서버로 접속하기 위해서 브라우저를 띄우고localhost 혹은 127.0.0.1이라고 입력 한다.자신의 IP주소를 손수 입력해도 괜찮지만, 다른 클라이언트에게 내 서버의 접속경로를 알려주는 용도가 아니면localhost 혹은 127.0.0.1을 사용한다. 당연하게 사용해왔지만, 갑자기 궁금해졌다.뭘까? 127.0.0.1은 생긴모양은 IP주소같은데 왜 웹상에서 IP주소의 역할을 못하는 것이며,localhost는 뭐길래 저 127.0.0.1과 똑같은 역할을 하는것이며,이 둘은 뭐길래 내 본래 IP주소와 동일한 곳을 가르키는것인가..검색을 해봤다. 아래의 질문URL에서 딱 필요한 만큼의 간결한 질문, 그리고 필요한 만큼의 간단한 대답을 설..

윈도우 10 호스트 파일 위치 및 변경 방법 [내부링크]

윈도우 10에서 hosts파일 변경하는 방법을 확인해보겠습니다. 특정 도메인 주소를 호출할때 특정서버로 호출하고 싶은경우hosts파일 수정을 통해 특정서버 호출이 가능합니다. 먼저 메모장을 관리자 권한으로 실행합니다.*hosts파일 수정시에는 항상 관리자권한으로 실행해줍니다. 파일->열기를 눌러 hosts파일을 찾아 보겠습니다. hosts 파일 위치 : C:\Windows\System32\drivers\etc파일확장자를 모든 파일로 지정해주면 hosts파일을 확인할 수 있습니다.hosts파일을 선택하고 열기를 눌러줍니다. hosts파일이 메모장에서 열리면 아래와 같이 ip주소 도메인 순으로 입력해줍니다.입력을 완료하고 ctrl+s 를 눌러 저장해줍니다. 아래와 같이 설정할 경우 해당 url을 브라우저에서..

host란? 호스트란 무엇일까? [내부링크]

호스트(host)란? 영어사전에서 확인해보면 host는 주인, 주최국, 진행자라는 뜻을 갖습니다. IT에서는 네트워크에 연결되어 있는 컴퓨터들을 호스트(host)라고 칭합니다. 인터넷은 TCP/IP 프로토콜을 이용하여 통신을 하는데, 통신을 하려고 해도 목적지와 출발지가 없으면 어디로 데이터를 보낼지 받을지 모 르죠.(현실의 택배 시스템이라고 생각하면 이해가 쉽습니다.) 하지만 이것을 IP라는 약간의 고유한 주소를 통해 정할 수 있습니다. 즉 호스트는 IP주소를 갖는 시스템이라고 말할수 있겠네요. 하나의 예를 들자면 친구 컴퓨터에 원격 접속을 하고싶어서 텔넷을 이용할 때 호스트에 친구컴퓨터의 IP를 적어주는 것이죠. 이렇게 IT에서 호스트는 IP를 가지고 있고 양방향 통신이 가능한 컴퓨터라고 생각하면 이..

[Spring] 양방향 암호화_AES256 [내부링크]

아이디와 비밀번호 암호화하기 [해야 할 일] (0) 라이브러리 설치 (1) ID와 비밀번호를 입력받을 View 생성 (2) AES256의 서비스 클래스 생성 (3) 서비스 클래스를 사용할 Controller 생성 (4) servlet-context.xml에 서비스 클래스 빈 등록 (5) 결과 응답 View 생성 (6) home.jsp에서 인덱스 생성 (0) 라이브러리 설치 http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html 에 접속해서 jce8을 다운로드한다. Accept License Agreement 후 Download. 압축을 풀면, 이 두 Jar 파일이 나온다. (0)-1 Build Path - Con..

java와 mariaDB연결하기 [JDBC Driver] [내부링크]

java와 mariaDB연결하기 [JDBC Driver] java와 mariaDB를 연결하려면, JDBC 드라이버가 필요하다. 그러므로, JDBC 드라이버를 다운 받아야한다. https://downloads.mariadb.org/connector-java/2.4.4/ 다음 그림에 따라 JDBC 드라이버를 다운 받는다. 드라이버를 다운 받았으면, eclipse을 켜서 접속부를 작성할 프로젝트와 클래스를 만든다. 그럼 eclipse-workspace\해당 프로젝트 이름\WebContenct\WEB-INF\lib 에 다운로드 받은 jar파일을 넣어준다. 해당 프로젝트에서 마우스 오른쪽 버튼을 누른 후, properties를 눌러준다. 왼쪽 탭에서 Java Buiild Path 탭을 선택한 후, Add Exte..

Mysql 사용자 추가, 제거 및 권한 부여 [내부링크]

Mysql 서버 로그인 먼저 사용자를 추가하기 위해 로그인이 필요하다. $ mysql -u root -p Enter password: 로컬에서 접속 가능한 사용자 추가하기 $ create user '사용자'@'localhost' identified by '비밀번호'; mysql ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 라는 에러가 발생하면 Mysql password policy requirements 에러 validation 제거하여 해결하기 을 참고하자. DB 권한 부여하기 $ grant all privileges on *.* to '사용자'@'localhost'; $ grant all privi..

[Kubeflow] Kubeflow란? [내부링크]

Kubeflow Kubeflow? Kubeflow란 Kubernetes 환경에서 간단하게 머신 러닝 워크플로우를 배포할 수 있게 도와주는 시스템이다. 다양한 환경에서 실행하는 머신 러닝 워크플로우를 단일 환경에서 손쉽고 직관적으로 배포하게 하는 것이 Kubeflow의 목적이다. 다양한 인프라 환경에 쉽고 재사용 가능하고 포터블한 배포 가능 loosely-coupled 마이크로서비스 배포 및 관리 요구에 따라 가능한 스케일링 Kubernetes? Kubernetes는 디플로이 자동화, 스케일링, 컨테이너화된 애플리케이션의 관리를 위한 오픈 소스 시스템으로서 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있다. 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영..

[ Database ] 윈도우 10 MariaDB 설치 [내부링크]

0. 설치하기 앞서 #1 마리아 DB (Maria DB)란? - MariaDB는 MariaDB사가 제작한 오픈소스 RDMBS 소프트웨어 이다. - MySQL : 교육 및 개발, 개인용으로 사용시 무료, 상업용으로 사용시엔 유료. - MariaDB : 무료 (linux 진영에서도 이에 MariaDB를 표준으로 채택) MySQL - 1995년 5월 스웨덴의 MySQL AB사에 의해 최초의 MySQL 버전이 출시 - 하지만 썬 마이크로시스템스에서 인수, 이후 오라클이 썬 마이크로 시스템스를 2010년에 인수해가면서 MySQL은 오라클 것이 되었다. - 이후 오라클은 상업적 목적으로 MySQL을 이용시 유료 정책을 적용 하였다. MariaDB - 몬티 와이드니어스(오라클의 정책에 반발한 AB사의 핵심 창..

MariaDB란 무엇일까? MariaDB 소개 [내부링크]

MariaDB란? MariaDB는 MariaDB사가 제작한 오픈소스 RDMBS 소프트웨어입니다. MariaDB가 무엇인지 알기위해서는 MySQL이란 유명 RDBMS를 알아야합니다. 왜냐하면 MySQL에서 떨어져나온 RDBMS가 MariaDB이기 때문이죠. MySQL은 AB사에서 제작했던 소프트웨어 입니다. 썬 마이크로시스템스에서 당시 10억 달러, 우리나라 돈 1조 가량에 인수했다가 양복기업의 대표주자 오라클이 썬 마이크로 시스템스를 2010년에 72억 달러 8조 ㅎㄷㄷ 에 인수해가면서 오라클 것이 되었죠. 오라클은 MySQL을 인수하면서 상업적으로 MySQL을 이용할 시 사용료를 내도록 정책을 바꾸어 버렸습니다ㅠㅠ 그러나 오라클의 정책에 반발한 AB사에서 핵심 창업자중 한 명이었던 몬티 와이드니어스..

[팔당 베이커리/팔당 카페] Bake on 팔당 베이크온 [내부링크]

팔당 카페 팔당 데이트 팔당 베이커리 Bake On 팔당에서 유명한 온누리 장작 구이! 옆에 이쁜 카페가 있어서 가보았습니다. 작년 겨울 그 쪽에서 밥 먹고 나왔는데 이쁜 카페가 있었어요 가보고 싶었지만 그때는 코로나로 인해 카페 취식이 불가할 때라 바깥 구경만 했었어요. 1층 야외가 굉장히 이쁩니다. 클럽 같아요 이건 이번에 찍은 사진 이건 겨울에 방문했을 때 찍었던 사진이에요 주인공은 푸짐이랍니다. 이때 조명이 더 화려했어요 어두운 실외와 달리 실내는 밝았어요 베이커리 카페니까 빵 팔쥬 전체 샷 찍어 봤어요 BEST 1은 다 팔렸고 ㅠㅠ 마늘 크림치즈 바게트와 인절미 슈크림 빵 구매했어요 크림치즈 마늘빵은 아는 맛이에요 한 번쯤은 먹어본 아는 맛 우유를 주문했는데 얼음에 넣어주네요 우유 얼음 넣어 먹..

[강남 맛집/ 삼겹살 맛집] 봉우이층집 반찬도 야무진 맛집 [내부링크]

강남 삼겹살 맛집 강남역 맛집 봉우 이층집 강남역 에 위치한 삼겹살집입니다. 강남 CGV 뒷골목에 음식점들 많잖아요? 거기서 완전 언덕배기를 조그만 올라가면 나와요 1층은 봉우집? 위에 2층인 봉우이층집 입니다! 1층은 이름은 비슷한데 냉명의 대가? 이런게 적혀있어요 ㅎㅎㅎ 정말 사람이 바글바글해요 전 일요일 저녁 8시 30분쯤 방문을 했고 대기 줄인 없었지만 자리가 치워지길 기다린 상황이었어요 직원분이 대기석에서 기다리시면 자리 안내해 주신다 하셔서 대기중이었습니다 몇분후, 다른 직원분이 오셔서 저희 재료 소진으로 마감 되었다고 저희를 돌려 보내려 하셨어요 "다른 직원분이 안내해준다 해서 기다린거다" 하니 자리를 안내해주셧네요 ㅠㅠ 직원분들끼리 소통이 이뤄지지않아 실수하신거라고 사과 받았습니다. 이런 ..

[강남 배달 맛집] 스쿨푸드 추천 메뉴! 매운 까르보나라 떡볶이 / 오도독 짱아찌 물냉면 강추강추 [내부링크]

강남 배달 맛집 논현 배달 맛집 스쿨푸드 자주 시켜 먹는 체인 분식 이예요 너무 유명해서 다들 아시는 곳이지만 제가 생각하는 스쿨푸드의 대표 메뉴 추천 드려요 요즘 가장 최애하는 1위는 매까떡 입니다. 요즘 로제 떡볶이 유행이잖아요? 배떡 엽떡 전 이런거 몰라요 예전부터 매까떡 먹었습니다.. 전 신라면도 매운 편인 맵찔이 인데 매까떡 또한 맵습니다. 어떤분은 "매운"까르보 떡볶이지만 매운맛이 안느껴진다고 말하는 사람도 있어요 전 매워요 근데 가격에 비해 양은 솔직히 작습니다.. 그치만 1위엔 이유는 맛있어요 짱나게 양송이버섯에 베이컨에 ! 이름은 떡볶이지만 떡 몇개 안들어있어요 빨리 먹어야 쟁취할수 있습니다. 스파게티 면도 있고 맛은 ㅇㅈ 원조 부동의 1위 지금도 1위지만 매까떡이랑 비등비등한 오도독 짱..

[Java] equals와 ==의 차이점 [내부링크]

equals와 == 은 어떤 차이점이 있을까요. 기본적으로 이 둘은 모두 양 쪽에 있는 내용을 비교한 값을 boolean type으로 반환한다는 공통점을 가집니다. 하지만 차이점이 분명 존재합니다. 1) 형태의 차이 가장 단순한 차이점은 형태의 차이입니다. equals () 는 메소드 입니다. 객체끼리 내용을 비교할 수 있도록 합니다. == 은 비교를 위한 연산자 입니다. 2) 주소값 비교와 내용 비교 차이점이라 말할만한 내용으로는, 비교할 수 있는 대상에 대한 부분입니다. equals 메소드는 비교하고자 하는 대상의 내용 자체를 비교하지만, == 연산자는 비교하고자 하는 대상의 주소값을 비교합니다. 주소값이라는 것은 확실하게 집주소나 이메일주소처럼 확정적으로 정해져서 보여지는 것은 아니지만 대상을 구별..

[이클립스 오류] 서버 시작 타임아웃(Timeout) 오류 해결법 [내부링크]

가끔 이클립스(Eclipse) 개발 환경에서 자바(Java) 개발을 하다 보면, 45초 서버 실행(Server Start) 제한 때문에 오류가 발생할 때가 있습니다. 45초 이내에 서버가 시작이 안 되면 문제가 있다고 보기 때문이에요. 다만 서버에 이것저것 라이브러리를 추가하다 보니까 어쩔 수 없이 서버가 실행되기까지 45초가 넘어가는 경우도 존재합니다. 그럴 때 45초 제한을 해제하는 방법을 알려드리고자 합니다. 오류 메시지: Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server edi..

이클립스 웹프로젝트(WAR파일) Import, Export 하기 [내부링크]

웹프로젝트(WAR파일) Export 먼저 Export할 웹 프로젝트를 선택한다. 그리고 마우스 우클릭을 하여 [Export] - [WAR file] 메뉴를 선택한다. 그러면 Export 화면이 나타난다. 우선 Browser 버튼을 클릭해 내보낼 경로를 지정한다. 다음으로 Export source file에 체크를 한다. 체크를 하지 않는다면 Export시 Java 파일들이 포함되지 않는다. 그렇기에 꼭 체크를 해줘야 한다. 그리고 나서 Finish를 클릭하면 Export가 된다. 웹프로젝트(WAR파일) Import 이클립스 상단에 있는 File 메뉴를 클릭한다. 나타나는 하위 메뉴 중 Import를 클릭한다. Import 창이 나타나면 [Web] - [WAR file]를 클릭하고 Next를 누른다. 다음..

녹화프로그램! HTML, JS로 직접 만들어보기 [내부링크]

유투브 '코드 스캘퍼' 님의 영상을 보고 만든 것입니다. 스크립트 코드로 촬영하고 녹화하고 저장까지 비교적 간단한 코드였습니다 그치만 Blob이라는 코드와 vodeo 코도도 처음 사용해보았습니다. 녹화를 누루면 녹화가 실행됩니다. 저렇게 제 모습이 녹화되고 오디오도 들어갑니다. 중지를 누르면 녹화가 중단 됩니다. 녹화보기 버튼을 누르면 방금 녹화했던 제 영상이 미리보기 화면에 출력됩니다. 그리고 다운로드 버튼에 링크가 걸리게됩니다. 다운로드 까지 됩니다. 모든 기능들이 문제없이 실행됐으나 전 다운로드된 영상을 보면 소리는 들리는데 화면이 블랙화면이었습니다. 코드상 문제는 없는것 같으나 유투브 댓글로 여쭤보니 라이브 서버를 다운받으라는 말씀을 하셔서 해보았으나 여전히 화면 출력이 되지 않습니다.ㅜㅜ 안타깝..

[스시 오마카세 맛집/영종도 맛집] 스시캡틴 강추강추왕강추 ※사진 많음 주위※ [내부링크]

영종도 맛집 스시 오마카세 미들급 맛집 스시 캡틴 런치 오마카세 40,000 디너 오마카세 70,000 서울에서 가기 꽤 멀지만시간 투자 해서 가도 가치 있는 곳입니다.인천 국제공항 가는 길이고저희는 디너 배 터지게 먹고을왕리 가서 커피 마시고 바다 보고 왔습니다. 사진은 인스타 스토이에 올렸던 사진입니다.사진만 찍어노면 이름이 넘 헷갈려서 ㅠㅠ 주석처럼 달아놨지요그래서 정보가 정확해요하나나오며 찍고 몬지 적어놨기때문에! 메뉴판입니다.간단 해 보이죠? 그치만 어마무시하게 나오기 시작합니다. 저희도 추천 받아서 왔어요남친 회사 대표님이 미식가 신데 강추 강추 왕강추 해주셔서 왔습니다. 계란찜입니다.계살이 들어간게살죽 같았어요 전채요리로 딱따뜻하니.... 아귀간!옆에는 계란이 아니라오징어에 알이 들어간 요리..

[논현/반포 배달 맛집] 갓포아카 배달회 맛집! [내부링크]

논현 배달 맛집/반포 배달 맛집 논현역에 위치하고있어매일 지나가면서 봤던 집입니다.코로나로 인해 이자카야도 배달이 되더라구요 ㅎㅎㅎ겨울은 방어 아니겠습니까?푸짐이가 요즘 회에 꽂혀서의도치 않게 자주 해산물을 먹습니다.전 회 좋아합니다.예전엔 너무 하다 싶을 정도로 고기만!! 고기! 만 먹었습니다. 배달로 10만원 어치 시켜먹는 사람이 누가 있겠나 생각하지만ㄴㅏ야 나! 이날 아마 저의 입사 합격 축하 파티를 핑계로 위장을 채웠던 푸짐이 일겁니다. 때깔 고운 방어 입니다.크기가 어마 무시합니다.맛있엇어요기름진게 촤라락 모듬 스시와 고등어초밥입니다.강원도에선 방어가 꽂히고 제주도에선 고등어가 꽂힌 푸짐이는맛있는걸 한번먹으면매일 노래를 부릅니다.육지에서 먹는 고등어회는 초절임이지만오랜만에 먹는 고등어라 너무 맛..

[기술] 데이터 라벨링 툴 for Machine Learning [이미지만] [내부링크]

데이터 라벨링이란? 데이터 라벨링 작업은 머신러닝이나 딥러닝 모델링 작업 전에 학습 데이터에 특정 값을 부여 해주는 것이다. 이는, AI 산업의 기본이기도 하지만, 기업의 AI 사업의 획기적 발전을 이루기 위한 핵심 요소로 인식된다. 하지만, 사람이 일일이 하다 보니 비용이 많이 들고 시간이 오래 걸리는 작업이다. - 첫째, 머신러닝을 위해서는 많은 양의 데이터가 필요한데, 이미지를 분류할 때 최소 수천, 수만 장의 이미지가 요구된다. - 둘째, 시간을 포함한 많은 비용이 든다. - 라벨링 작업자가 많아질수록 일관되고 정확한 라벨링 작업이 어려워진다. 얼마나 어렵고 오래 걸리는 작업인지 보여주는 실제 사례: 영국 경제지 파이낸셜타임스(FT)는 "자율주행차 알고리즘이 도로 표지판 등을 학습하려면 수천 시간..

바닐라 JS로 그림판 만들기 [내부링크]

이번엔 바닐라JS로 그림판 만들기 수업을 들었습니다. 좀더 낯선 api 를 사용했으니 쉽고 재밌는 강의였습니다. only JavaScript로 만든 그림판의 기능은 다음과 같습니다. 1. 캔버스에 마우스로 그리기 (8가지 색) 2. paint 뿐 만아니라 Fill 채우기 기능 3. range로 브러쉬 두께 조절 4. 마우스 오른쪽 방지 5. sava 버튼으로 이미지 저장 그림판 디폴트 형태입니다. 아래 기능들로 색을 변경하거나 캔버스를 채우거나 브러쉬의 두께를 조절 할수있습니다. 첫번째와 두번째 선의 두께 차이가 있습니다. SAVA버튼 클릭시 내가 그린 그림이 자동 저장 됩니다. jpg파일보다 png파일이 픽셀이 덜 꺠져서 png파일로 설정했습니다. FILL 과 PAINT 버튼이 스위치 됩니다. 코드 공..

[Kubernetes] 쿠버네티스란 무엇인가? [쉽게 이해하기] [내부링크]

참조 : https://ko.wikipedia.org/wiki/쿠버네티스 https://www.aquasec.com/wiki/display/containers/Kubernetes+Guide 도커란 무엇인가? 포스팅에 이어 쿠버네티스에 정리하고자한다. 위키백과에서 쿠버네티스를 찾아보면 "쿠버네티스(Kubernetes, 쿠베르네테스, "K8s"[3])는 디플로이 자동화, 스케일링, 컨테이너화된 애플리케이션의 관리를 위한 오픈 소스 시스템으로서[4] 원래 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리되고 있다. 목적은 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼을 제공하기 위함이다.[3] 도커를 포함하여 일련의 컨테이너 도구들과 함께 동작한다.” ..

쿠버네티스 시작하기 - 쿠버네티스 기본 개념 [내부링크]

쿠버네티스 기본 개념 쿠버네티스가 어떻게 동작하는지, 설치는 왜 이리 어려운지, 설정 파일은 왜 그렇게 복잡한지 이해하기 위해 쿠버네티스의 디자인과 구성 요소, 각각의 동작 방식을 알아보겠습니다. Desired State 쿠버네티스에서 가장 중요한 것은 desired state - 원하는 상태 라는 개념입니다. 원하는 상태라 함은 관리자가 바라는 환경을 의미하고 좀 더 구체적으로는 얼마나 많은 웹서버가 떠 있으면 좋은지, 몇 번 포트로 서비스하기를 원하는지 등을 말합니다. 쿠버네티스는 복잡하고 다양한 작업을 하지만 자세히 들여다보면 현재 상태current state를 모니터링하면서 관리자가 설정한 원하는 상태를 유지하려고 내부적으로 이런저런 작업을 하는 단순한(?) 로직을 가지고 있습니다. 이러한 개념 ..

쿠버네티스 시작하기 - 쿠버네티스 특징 [내부링크]

쿠버네티스 특징 컨테이너 오케스트레이션의 기본 기능 외에 쿠버네티스가 가지는 차별화된 특징은 다음과 같습니다. 갓구글 + 고오오오급 회사들의 참여 ECO System 전 세계적 스케일의 경험과 기술이 고스란히 녹아들어 있습니다. 거대한 커뮤니티와 생태계가 있어 잘 안 되는 건 찾아보면 되고 이런 거 만들어 볼까 하면 누군가 만들어 놨습니다. 서비스메시(Istio, linkerd), CI(Tekton, Spinnaker), 컨테이너 서버리스(Knative), 머신러닝(kubeflow)이 모두 쿠버네티스 환경에서 돌아갑니다. 클라우드 네이티브 애플리케이션 대부분이 쿠버네티스와 찰떡궁합입니다. 다양한 배포 방식 컨테이너와 관련된 많은 예제가 웹(프론트엔드+백엔드) 애플리케이션을 다루고 있지만, 실제 세상엔 더..

쿠버네티스 시작하기 - 쿠버네티스란? [내부링크]

쿠버네티스란? 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼입니다. 몇 가지 수식어로 “운영환경에서 사용 가능한(production ready)”, “de facto(사실상 표준)”, “조타수(helmsman)”, “조종사(pilot)”, “행성 스케일(Planet Scale)”, “갓(god)” 등을 가지고 있습니다. 쿠버네티스kubernetes가 너무 길어서 오타가 많아서 흔히 케이(에이)츠k8s 또는 큐브kube라고 줄여서 부릅니다. 1주일에 수십억 개의 컨테이너를 생성하는 구글이 내부 배포시스템으로 사용하던 borg를 기반으로 2014년 프로젝트를 시작했고 여러 커뮤니티의 아이디어와 좋은 사례를 모아 빠르게 발전하고 있습니다. 단순한 컨테이너 플랫폼이 아닌 ..

쿠버네티스 시작하기 - 쿠버네티스의 과거, 현재, 미래 [내부링크]

쿠버네티스는 다른 컨테이너 오케스트레이션 도구보다 비교적 늦게 등장했습니다. 도커 스웜이 쉽고 간단한 사용법끼워팔기을 앞세워 세력을 넓히고 있었고 AWS에서 ECS, 하시코프에서 Nomad, 전통의 강호 Mesos에서 Marathon을 발표했습니다. 컨테이너 오케스트레이션이 하는 일은 여러 개의 서버에 컨테이너를 배포하고 운영하면서 서비스 디스커버리Service discovery같은 기능을 이용하여 서비스 간 연결을 쉽게 해주는 것입니다. 서버마다 app01, db01, cache01 같은 이름을 지어주고 하나하나 접속하여 관리하는 것이 아니라 server1, 2, 3, 4..를 하나로 묶어 적당한 서버를 자동으로 선택해 애플리케이션을 배포하고 부하가 생기면 컨테이너를 늘리고 일부 서버에 장애가 발생하면..

쿠버네티스 시작하기 - Kubernetes란 무엇인가? [내부링크]

docker logo 2013년 등장한 도커docker는 인프라 세계를 컨테이너container 세상으로 바꿔버렸습니다. 수많은 애플리케이션이 컨테이너로 배포되고 도커파일을 만들어 이미지를 빌드하고 컨테이너를 배포하는 게 흔한 개발 프로세스가 되었습니다. 2019년 DockerCon 발표에선 무려 1052억번의 컨테이너 image pull이 발생했다고 합니다. 이러한 도커의 인기와 함께 쿠버네티스kubernetes의 인기도 엄청나게 치솟고 있습니다. 클라우드와 관련된 행사에 가면 여기저기서 다음과 같은 이야기를 들을 수 있습니다. 쿠버네티스 클러스터에 Deployment를 배포하고 Ingress를 연결하자. Nginx말고 Traefik Ingress도 좋다던데? AWS에 설치할 땐 kops가 좋고 요즘엔..

GAN의 종류와 발전 [내부링크]

- Style GAN을 공부할 때, 논문에서는 나오지 않고, 따로 설명에도 나오지 않는 부분이 많길레 찾아봤더니 아직 공부 안한 부분이 있더군요. 그래서 GAN의 종류와, 어떤 부분에서 발전한 것인지를 간략하게 나열합니다. 0. GAN 이안 굿펠로우가 만든 GAN은, 구조적으로는 크게 Generator와 Discriminator의 역할을 하는 두 아키텍쳐가 상호작용을 하는 Generative 모델이며, Generator는 데이터를 생성해서 Discriminator를 속이는 역할을 하고, Discriminator는 Generator가 생성한 이미지의 거짓을 밝혀내는 역할을 하도록 합니다. 즉 Loss값은, 최종단인 Discriminator가 이것이 거짓데이터인지 진짜 데이터인지를 판단하는 참 거짓의 확률 ..

GAN의 종류 [내부링크]

GAN의 종류 DCGAN(Deep Convolutional GAN) 생성자와 감식자에 CNN 적용 조작된 가짜 이미지 생성 SRGAN(Super Resolution GAN) 저해상도 이미지를 고해상도 이미지로 변환 StackGAN 입력된 문장과 단어를 해석해 이미지를 생성 3D-GAN 2D 이미지를 3D 이미지로 전환 CycleGAN 이미지의 스타일을 다른 이미지로 변환 밤 사진을 낮 사진으로, 모네풍을 피카소 풍으로 DiscoGAN 서로 다른 객체 그룹 사이의 특성을 파악하여 양자 사이의 관계를 파악 가방 이미지로, 유사한 느낌의 신발 이미지 생성

[남양주 맛집/삼계탕 맛집] 누릉지 삼계탕 존맛 남양주 옛고을 [내부링크]

남양주 맛집 서울 외곽 맛집 데이트 남양주 옛고을 지도에 보이는것 처럼저렇게 계곡 따라 식당이랑~쫘악 있다!옛고을 옆엔 셀프 바베큐장이 있엇는데! 다음엔 거기 가보고싶다.. 오늘의 먹부림은 바로 삼계탕!! 그것도 누릉지 삼계탕 나는 이번에 이직? 이라기 보다 새로운 직업을 가졌다. 30살 넘어서그래서 31살먹은 신입 사원으로 회사를 다니고주말엔 주말알바까지엄청 지쳐 있었다. 남자친구는 나만보면 가엽고 불쌍하다며...그래서 나의 블로그 제목도 가엾은 스토리 ..ㅎㅎㅎㅎㅎ 가여운 나를 먹여 살리겠다고 2주만에 주말 하루 쉬는날이었는데!그날 나 힐링 시킨다고 멀고도 먼 여기까지 데리고 와줬다.마음이 너무 고맙고슬프당 식당 바로 앞 계곡식당 자리만 잘잡으면야외에서도 먹을수 있는데그럼 계곡 옆에서 힐링 오져버림 ..

[한강 푸드트럭/ 반포지구 푸드트럭] 타코야끼 푸드트럭 [내부링크]

반포지구 한강 푸드트럭 타코야끼 푸드 트럭 반포대교 라인에 몇개의 푸드트럭이 보여서 간식 겸 먹게된 타코야끼예요 전 방금 삼겹살을 먹고 운동할겸 남자친구와 따릉이 를 탔습니다. 새가 방앗간을 어케 지나치겠어요 새 = 남자친구 방앗간 = 푸드트럭 문아빵이라고 해서 뭐 특별한건줄 알았어요 타코야끼랍니다. 오늘은 3대의 푸드트럭이있었어요 2개는 타코야끼 1대는 목살 꼬챙이에 껴서 돌려서 로티세리식 목살 구이었는데 그게 비주얼이 오졌는데 방금 삼겹살먹었어요 타코야끼에 눈이멀어 버림받은 따릉이 두대 주문했던 모듬 타코야끼 10알(7,000원)이 나왔습니다. 흠.. 특별하진않아요 그래서 제가 맛집이라고 안썻잖아요 ㅋㅋㅋㅋㅋ 그냥 날도좋고 한강 야경도 이쁘고 간식거리로 좋아요 근데 비밀인데 타코야끼가 안익었어요 속이..

[강남맛집/냉동 삼겹살 맛집] 청담 "나리식당" 냉동이지만 디지버져 [내부링크]

강남/청담 맛집 나리식당 나리식당은 냉삼 좋아하는 분들 에게 엄청 유명한곳! 원조는 이태원쪽에 있지만 나는 청담만 가 보았다. .. 그것도.. 자주... 냉삼이 한참 유행이 왔었는데 지금도 꾸준히 다니는 집.. 분기별로 떠오는 맛집이다. 냉동 삼겹살인데 왜 맛있지? 냉동 삼겹살 150g에 13,000원으로 기억하고 있다. 이집은 특이한게 다른 냉삼집은 볶은밥이 필수인데 여기는 팔지않는다.(볶은밥으로 큰 돈 벌수 있을텐데..) 대신 내가 직접 볶아먹는다. 찌개도 맛있다고 인터넷에서 그러는데 제 입맛엔 별로..^^..솔직해야지... 그래서 그냥 고기를 더먹지 찌개를 시키지 않는다. 나는 남친이랑 2명이서 항상간다. 우리의 주문은 냉동삼겹살 3인분 + 공기밥2개 이게 뭐라고 맛있을까,,,,,,,,,,, 같이 ..

[강남 배달 맛집/ 반포 논현 배달 맛집]푸짐하개 먹고 싶은 날엔 마왕 족발! [내부링크]

강남 배달맛집(매장이용도 가능) 마왕족발 오늘은 족발하면 떠오르는 마왕족발! 족발먹고 싶을때 여기서만 주문한다. 그만큼 맛있.... 마왕족발은 특히 그 소스랑 당면이 디지버진다. 예쁘죠? 곱죠? 같이 나오는 반찬들도 다 맛이 좋다. 난 특히 무말랭이 덕후 이건 족발 뽂끔 밥! 족발 볶음밥이라고 여기서 첨 먹어봤다. 강남에서 주문 하는 지점은 리뷰이벤트를 참여하면 서비스로 무ㄹㅕ! 볶은밥을 준다. 아마 주방장님이 볶은밥 고수인거 같다. 이게 진짜 뭐라고 맛있는거냐.....! 어느 중국집 계란 볶은밥 보다.... 퐌타도 서비스로 주셨다. 감사해라.. 야무지게 먹을 준비 완료 당면을 잘 섞어 줘야한다. 아래로 소스가 쏠려서 포자 뜯기 전에 한번 디집어에서 쉑쉑 강남에서 배달이나 혹은 매장이용도 좋다. 개인적으..

CSS 로 드래그 방지 / 금지 [내부링크]

body { -ms-user-select: none; -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; user-select: none; /*글자 드래그 금지*/ } CSS로 간단하게 드래그 방지/금지 할수 있는 코드입니다.

바닐라 JS로 크롬 앱 만들기 [내부링크]

Vanilla JS를 익히기 위해 찾다가 "노마드코더"라는 강의 사이트를 찾았습니다. 무료 강의가 좋은게 많이 있습니다. 초급 javaScript 를 배우고 싶으신 분들에게 추천 드립니다. (html css 를 전혀 모르는 상태라면 어려울것이라 생각됩니다) only JavaScript만으로 만든 크롬앱의 기능은 1. 시계 기능 2. 비교적 가벼운 데이터인 이름 및 todo 리스트를 브라우저 자체에 저장 3. todo리스트 삭제가능 4. 현재 위치 위도경도 값 받아 외부 날씨 api로 날씨 출력 (오른쪽 상단) 5. 랜덤 배경화면 출력 코드 공유 하겠습니다 clock.css body { background-color: #34495e; color: white; margin: 0; text-shadow: 1p..

[VS Code] 단축키 정리 [내부링크]

혼자서 자주 쓰는 명령어들을 잊지 않기 위해 만드는 Cheat Sheet 개념으로, 많은 단축키가 없음을 유념해주시기 바랍니다. 공통 명령어 단축키 내용 Ctrl+/ 주석 생성 / 주석 삭제 Ctrl+K+F 소스코드 정렬 Ctrl + [ 들여쓰기 왼쪽으로 이동 Ctrl + ] 들여쓰기 오른쪽으로 이동 Ctrl + 1 좌측으로 화면 분할 Ctrl + 2 우측으로 화면 분할 Ctrl + G 입력한 라인으로 이동 Ctrl + L 현재 라인 선택 Ctrl + P 해당 디렉토리의 파일 목록 열기 Ctrl + B 좌측 토글 사이드바 열기 / 숨기기 Ctrl + K -> Z 에디트 창 확대 Ctrl + Shift + ` 터미널창 열기 Ctrl + Shift + E Exploer 사이드바 열기 C/C++ 명령어 단축키..

[남양주 맛집/팔당 맛집] 동동국수집 남양주 존맛탱 무조건 호 ! 맛집 [내부링크]

남양주 맛집 팔당 맛집 서울 외곽 맛집 동동국수집 진짜 한국인이라면 (사실 외국인도) 무조건 호불호 안갈리고 호! 인 맛집 몇년째 다니는건지.. 주말이었던 일요일 저녁6시 에 갔더니.. 차가 .....주차는 당연하 가능! 예상 대기 시간 50 분 이었고.. 어차피 여기까지 와서 다른 식당 가는 시간도 30분 이상 걸릴꺼 같고 맛도있고 기다리기로 다짐했다. 경기도 광주시 아니고! 남양주에 있음. 가실분들은 주소 잘찍으셔요 주문은 신메뉴인 곱개탕면 (곱창과 양이 들어간 육개장 칼국수 + 밥 ) 12,000원 + 비빔국수 (명태 무침이 들어간 비빔 국수) 7,000원 + 육전 (기본이지만 핵 맛) 11,000~12,000원 인지 정확히 기억나지 않지만 그쯤 가격.. 육전 이다. 배불러도 꼭 시켜먹어야 한다. ..

[잠실 맛집/방이동 맛집] 등촌 칼국수 일주일만에 또 방문 @찐맛집@ [내부링크]

잠실 맛집 방이동 맛집 등촌 칼국수 저번주 주말에 방문이후 또 같은 지점 등촌 칼국수 방문했다. 일주일만에 또 온 이유는 저번주에 너무 맛있게 먹었더니 아는 맛이 무섭다고 ... 또 먹고싶으니꽈.. 저번주와 같은 메뉴 버섯 칼국수 2개 + 샤브샤브 소고기2개+ 오늘은 특별히 죽을 1개 더 추가했다. 왜냐면 죽 많이 먹을꺼라서 끓어라~ 주말알바끝나고 제대로 된 식사... 여기는 참좋은게 주차가능 곱쥬? 나는 언제나 배운 돼지기 때문에 고기를 한판씩 떄려 넣는다. 그래야 고기를 한번에 많이 먹을수 있고 그러면 행복하니까 이걸 먹으려고 그 먼길을 돌고 돌아 온거 아닐까 계란볶음밥... 올때마다 언제나 후회하지 않은 집 byul91oh.tistory.com/94?category=986435 [잠실 맛집/방이동 ..

[건대 맛집/ 마라 맛집] 해룡 마라롱샤 [내부링크]

건대 맛집 마라 맛집 해룡 마라롱샤 마라 가 유행 하기 전부터 롱샤 (가재) 먹으러 다녔던 건대 맛집. 건대 메인 먹자골목이 아닌 양꼬치 골목에 위치해있다. 주차는 안됨 ㅜㅜ 갈때 마다 주차 때문에 고생... (혹시 모르니 가게에 전화해보세요) #주차문의 기본 찬은 짜사이! (중국짠지?) 와! 땅콩! 주문은 세트A. 마라 롱샤 + 계란볶음밥 + 꿔바로우 (49,000원)를 했다. 먼제 마라롱샤가 나왔음. 세트 A에서 마라 새우랑 롱샤중 선택 할수있는데! 난 마라 새우는 안먹어봤다. 항상 선택은 가재! 마라 롱샤 ~~~~꺄르륵 나는 여자 치고 손이 큰 편이다. 가재도 만만치 않게 크다. 그치만 난 인간이기에 이겼다. 가재를 까먹을때 장난아니다. 비닐 찢어지고 노력에 비해 얻는게 적다고 할까? 근데 꿀팁이라..

S2FGAN 개인 공부 [내부링크]

github.com/Yan98/S2FGAN Yan98/S2FGAN Contribute to Yan98/S2FGAN development by creating an account on GitHub. github.com 통한 코드 www.arxiv-vanity.com/papers/1907.01710/ Mask Embedding in conditional GAN for Guided Synthesis of High Resolution Images Recent advancements in conditional Generative Adversarial Networks (cGANs) have shown promises in label guided image synthesis. Semantic masks, such a..

[Computer Vision] 엣지 검출(Edge Detection) [내부링크]

Edge란? Edge pixels : 영상내 특정한 픽셀 주변의 밝기 값이 급격하게 변하는 픽셀 Edges : 엣지 픽셀들의 연속된 집합 1차원에서는 edge를 어떻게 감지할까? 1차 미분(변화량)을 구한다. = 주변 값과의 차이 미분을 수행했을 때 크기가 0이 아닌 특정한 값을 가지는 부분을 활용해 edge를 검출할 수 있다. 2차원에서는 edge를 어떻게 감지할까? image gradient를 활용한다. Gradient vector는 해당 픽셀의 변화량이 가장 급격한 방향을 가리킨다. Gradient vector와 Edge direction은 수직관계에 있다. → Gradient의 방향을 구하면 Edge의 방향을 구할 수 있게 된다. 잡음(noise)의 영향 미분 값의 크기로 edge를 찾을 수 없다..

딥러닝 학습을 위한 국내외 데이터셋 현황- 이미지편 - [내부링크]

오늘 날 괄목할 만한 인공지능 기술과 서비스의 출현은 딥러닝을 중심으로 한 기계학습 기술의 급속한 발전에서 기인한다.특히 많은 전문가들이 딥러닝 기술의 발전 요인으로 꼽는 것이 GPU 등의 하드웨어 발전, ArXiv, Github 등으로 대변되는 적극적인 기술 공유 문화를 통한 짧은 시간내 많은 전문가들의 등장, 그리고 방대한 양의 신경망 파라미터를 효과적으로 활용가능토록 하는 대규모 학습데이터 구축 및 공개 등이다. 본 고에서는 이 요소들 중 딥러닝 학습에 널리 그리고 유용하게 활용되고 있는 대규모 공개 데이터 특히 computer vision 기술 연구에 활용되고 있는 이미지 데이터 셋에 대하여 공유한다. 글. 하정우 (네이버 Clova AI Research) 1. 범용 대규모 이미지 데이터셋 200..

학습 모델의 종류 [내부링크]

1. 비지도 학습 (Unsupervised Learning) 비지도 학습은 학습 벡터에 목표값 (target value)이 없을 때, 학습 데이터의 관계를 추론하여 학습을 진행하는 방식이다. 예를 들어, 비지도 학습에서는 고양이라는 것을 알려주지 않고 아래의 그림을 보여준다. 비지도 학습의 목표는 머신러닝 알고리즘이 아래의 [그림 1]을 보고 '네 마리의 동물은 고양이다'라고 학습하는 것이 아니라, '네 마리의 동물은 서로 같은 종'이라는 사실을 추론하는 것이다. 비지도 학습은 통계학의 밀도 추정 (density estimation)과 깊은 연관이 있으며, 머신러닝 및 데이터 마이닝 분야에서는 클러스터링 (clustering)에 많이 이용된다. 비지도 학습 또는 생성 학습 (generative learn..

ANN, DNN, CNN, RNN, GAN 이란? [내부링크]

www.youtube.com/watch?v=r7gWQicV-Yw 출처는 엔쓰리엔클라우드 유투브 입니다. 설명과 함께 들어보세요 아래는 저 혼자 공부하기 위한 기록 입니다. 딥러닝의 학습 모델 중 가장 대표적인 5가지 입니다. ANN 가장 대표적은 예시로는 퍼셉트론 Perceptron 이 있습니다. DNN ex) 대표적인 예시로는 심장 질환 환자들의 심장 박동수로 건강상태를 예측 합니다. CNN 최근 가장 인기 있는 모델입니라고 합니다. 대표적인 예시로는 알파고가 있고, 알파고는 13개의 은닉층을 사용 했습니다. ALGORITHMIA 사이트는 흑백 사진 -> 컬러 사진 으로 변경해 줍니다. demos.algorithmia.com/colorize-photos Colorize Black and White Ph..

쉽게 씌어진 GAN [내부링크]

이 글은 마이크로소프트웨어 391호 인공지능의 체크포인트(THE CHECKPOINT OF AI)에 ‘쉽게 쓰이는 GAN’이라는 제목으로 기고된 글입니다. 블로그에는 이 글의 원제이자 윤동주 시인의 ‘쉽게 씌어진 시’를 따라 지어진 제목인 ‘쉽게 씌어진 GAN’으로 포스팅합니다. 페이스북 인공지능 연구팀의 리더이자 딥러닝의 아버지라 불리는 얀 르쿤(Yann LeCun) 교수는 GAN(Generative Adversarial Network)을 가리켜 최근 10년간 머신러닝 분야에서 가장 혁신적인 아이디어라고 말했다. 요즘 가장 주목받는 기술인 딥러닝 중에서도 GAN은 가장 많은 관심을 받고 있는 기술이다. 그만큼 GAN은 새로운 연구가 활발히 이루어지고 혁신이 빠르게 일어나고 있는 기술이기도 하다. GAN을..

딥러닝 GAN 튜토리얼 - 시작부터 최신 트렌드까지 GAN 논문 순서Deep Learning GAN Tutorial - GAN start to new GAN trand [내부링크]

이번 포스팅에서는 GAN의 개념, GAN의 종류, 주요 논문들에 대한 짧은 리뷰를 이야기하려고 합니다. GAN의 종류들은 중요하게 언급되는 모델들을 선정하였고, 이 모델들에 대해서 간단히 설명을 듣고 활용하실 수 있도록 리뷰도 같이 준비해보았습니다. 출처 : ysbsb.github.io/gan/2020/06/17/GAN-newbie-guide.html 딥러닝 GAN 튜토리얼 - 시작부터 최신 트렌드까지 GAN 논문 순서 | mocha's machine learning 이번 포스팅에서는 GAN의 개념, GAN의 종류, 주요 논문들에 대한 짧은 리뷰를 이야기하려고 합니다. GAN의 종류들은 중요하게 언급되는 모델들을 선정하였고, 이 모델들에 대해서 간단히 설명을 듣 ysbsb.github.io GAN이란? ..

딥러닝을 활용한 객체 탐지 알고리즘 이해하기 [내부링크]

인공지능의 기반 기술 중 하나인 딥러닝은 눈부신 혁신을 거듭하고 있습니다. 텍스트 번역이나 이미지 분류 애플리케이션에 적합한 새로운 수준의 신경망이 개발되면서 사물인터넷(IoT)과 자율주행 관련 기술에도 활용되고 있는데요. 딥러닝 기술의 발전과 함께 객체 탐지 기법도 많은 주목을 받고 있습니다. 그렇다면 객체 탐지(Object Detection)는 무엇일까요? 객체 탐지는 이미지에서 관심 객체를 배경과 구분해 식별하는 자동화 기법으로, 컴퓨터 비전(Computer Vision) 기술의 하위 집합이기도 합니다. 아래와 같이 그림 1에는 전면에 있는 객체를 보여주는 두 개의 이미지가 있는데요. 왼쪽에는 새가, 오른쪽에는 개와 사람이 있습니다. 올바른 객체 탐지를 위해서는 경계박스(Bounding Box)를 ..

[Apache Tomcat] Windows 10에서 삭제하는 방법 [내부링크]

Apache Tomcat 재 설치를 하고 싶을 경우, 폴더만 삭제할 경우 서비스가 남아있기 때문에 완전히 삭제가 되지 않는다. 아래의 방법으로 하면 완전히 삭제된다. 1. cmd(관리자 권한)실행 2. sc 명령어로 삭제 (sc delete 서비스명) sc delete Tomcat9

딥러닝의 종류와 개념 [내부링크]

1. CNN Convolutional Neural Network, 합성곱 신경망 인간의 시신경 구조를 모방한 기술 1989년 LeCun이 발표한 논문에서 처음 소개가 되었으며, 필기체 zip code 인식을 위한 프로젝트를 통해 개발이 되었다. 2012년 Image Net 대회에서 기존의 모든 알고리즘을 압도하는 성능으로 1등을 차지함. 이미지를 인식하기위해 패턴을 찾는데 특히 유용하다. 데이터를 직접 학습하고 패턴을 사용해 이미지를 분류한다. 자율주행자동차, 얼굴인식과 같은 객체인식이나 computer vision이 필요한 분야에 많이 사용되고 있다. 이미지의 공간정보를 유지한채 학습을 하게하는 모델 2. RNN Recurrent Neural Network, 순환신경망 순차적 정보가 담긴 데이터에서 규..

[Java] Java의 설치 [내부링크]

자바 프로그램의 동작 자바로 프로그램을 만들기 위해서는 아래와 같은 과정이 필요하다. 코드 작성 컴퓨터가 실행할 수 있는 형태로 코드를 컴파일 컴파일된 프로그램을 실행 용어 Java를 처음 접하면 혼란스러운 경험을 하게 되는데 다양하고 복잡한 버전들 때문이다. 이것들에 대한 정리를 좀 하고 설치를 진행하자. Java SE, JDK, JRE Java SE(Java Platform, Standard Edition)는 자바의 표준안이다. 자바라는 언어가 어떠한 문법적인 구성을 가졌는지와 같은 것들을 정의하고 있다. 이것은 구체적인 소프트웨어가 아니고 그 소프트웨어의 설계도라고 할 수 있다. 소프트웨어에서는 설계도라는 표현 대신에 명세서(spec, specification)이라는 말을 사용한다. 이 명세서에 따..

2021 웹 개발 테크트리 총정리(나는 무엇을 배워야 할까?) [내부링크]

안녕하세요 꼬바리입니다. 개발 공부를 시작할 때 필요한 언어들입니다. 이 모든 걸 다 할 수도 하지 않아도 되지만 유튜브를 보고 저도 정리가 된 거 같아 초보 개발자님들이 도움이 될 거 같아서 올립니다. 웹 개발의 가장 큰 틀입니다. 가장 양이 많은 프론트엔드입니다. 프론트 엔드 쪽에 관심 있으신 분들은 보시면 좋을 거 같아요 저는 백엔드 개발자로 시작하고 싶어서 가장 관심이 가는 분야입니다. 프론트엔드 기술도 어렵지만 백엔드가 없다면 프론트엔드는 이쁘기 한만 빈병 이기 때문에 백엔드를 중점으로 공부하고 있습니다. 기타 확장도 중요한데요. 요즘 핫하다는 인공지능과 앱 등이 있습니다. 무한정 발전하고 새로운 언어가 생길 가능성이 큰 분야 입니다. 작아서 안보이실 수도 있음으로 파일도 올려드리겠습니다. Re..

[종로맛집/명동맛집]차돌박힌쭈꾸미 (추천 맛집은 아님) [내부링크]

종로맛집 명동역 맛집 차돌박힌쭈꾸미 오늘은 명동 차돌박힌쭈꾸미 방문! 인터넷에서는 따로 나와있진않았는데 3~5시까지 브레이크 타임. 방문시 참고하세요. 일요일 오후 4시에 도착해서 1시간을 차에서 기다렸다. 또 인터넷에서는 주차 가능이라 적혀있지만 주차할 공간이 없어서......개 빡...정돈 아니고 그냥빡 주문은 차쭈불고기 (전골)을 주문했다. 2인세트 39,000\ 고구마 튀김 + 볶음밥 + 계란찜+치즈퐁듀 포함된 금액이다. 전골말고 차쭈구이도 있었는데 2인세트기준 40,000\이다. 전골이 인가가 더 많다해서 전골 주문했다. 비주얼이 엄청남... 쭈꾸미랑 차돌박이 고기를 질좋은걸 쓰시는게 느껴졌다. 계란찜 과 치즈 퐁듀.. 특별한 맛은 아니었음. 둘다 다 익은후! 익히 들어서 알고는 있었지만 여기서..

[잠실 맛집/방이동 맛집]등촌칼국수 (너무나 유명한 체인맛집) [내부링크]

잠실맛집 방이동맛집 등촌칼국수 이미 체인점으로 유명한 맛집이지만 자주 가는 곳이므로 추천!한다 등촌 칼국수 방이점은 #주차가능 #넓고 #깔끔 원래 같은 체인이여도 멀어도 항상 구리점을 갔었는데 저번에 방이점 한번가고 꾸준히 이 지점만 방문 하게 된다 주문은 버섯칼국수2 + 샤브고기 2개 기본 찬은 딱 김치만 나온다. 근데 그 김치가 딱! 칼국수 김치 그 맛이다. 주문과 동시에 미나리 가득 넣은 버섯 칼국수가 나온다. 팔팔 끓이고 주문한 고기 2개 이 날 특히 다른때 보다 고기상태가 좋았다...왜지.. 나는 토요일 오후 9시에 방문해씀 칼국수를 주문하면 기본으로 나오는 죽! 계란 볶음밥 먹으러 여기 오는거쥬~~~ 그리고 칼국수 집이니까 칼국수까지... 우리는 배운 돼지니까 샤브샤브 고기를 한방에 때려 넣는..

[git] 깃 설치하기 [내부링크]

깃 (Git) 설치하기 깃 다운로드 페이지 가기 : https://www.git-scm.com/ 깃 설치파일을 다운받는다. 운영체제에 맞게 설치하면 된다. 설치하기. 현재 Git. 2.19.1 ver을 설치했다. 기본으로 설정된 내용으로 'next'를 진행한다... (새로운 버전이 구버전에 비해 선택지가 많아졌다...왠만하면 기본으로 넘기면 되는데...) 기본 Git Editor를 선택한다. 나는 'sublime text'를 사용하려 했는데 next활성화가 되지 않아 기본적으로 설정되어있는 vim을 설치 후, 후에 sublime text로 바꾸려 한다. Use Git from the Windows Command Promot : Git 명령어를 수행하기 위한 환경설정 선택. 환경변수를 추가하기 위해 두 번..

[git] 깃기본 명령어 [내부링크]

Git 깃의 기본 명령어를 알아보자. 참고 : http://unikys.tistory.com/323Git 명령어를 입력할 수 있는 Git Bash를 실행해서 'git'을 실행해 보자. 'git'을 실행하면 기본적 명령어 목록이 친절히 나온다. [ ] 안에 있는 파라미터와, 명령어 2가지로 나눌 수 있다. [파라미터 형]- 기본적인 설명을 보거나 설정을 할 수 있는 명령어- 사용 방법 예 : git --version 파라미터 명 설명 예 [--version] git 버전을 보여준다git --version [--help] git 기본 도움말을 표시한다git --help [-c name=value] 커맨드 라인을 통해서 config 값을 설정하여 보낸다, config에서 설정하는 것과 같은 값을 name으로 ..

[git] 깃이란? 깃 허브란? What is Git? Git hub? [내부링크]

프로그래밍을 하면 GitHub를 '꼭' 사용하자! 구글링을 통해 필요한 코드를 검색하다 보면 심심치 않게 GitHub에서 코드를 볼 수 있다. GitHub는 어떤 것인지 알아보자. 자 그렇다면 먼저 Git에 대해 알아봐야 한다. What is 'Git'? '깃'이란? - 깃 허브는 '깃 git'을 쉽고 편리하고 잘 제공하는 곳이다. 그렇다면 '깃 git'이란? 오픈소스계의 영원한 아이돌 리누스 토발즈는 리눅스 커널을 관리하는 기존 툴이 엉망인 것에 너무 빡친 바람에 git이라는 소스관리 툴을 만든다. 리누스는 하도 빡친 나머지, 단 2주만에 완성하는 기염을 토했다. (그러고는 후에 “git 만드는게 제일 쉬웠어요”라는 인터뷰로 나와 같은 빠돌이를 지리게 했다). - 오픈소스의 승리 중에서. 출처) 나무위..

클라우드 컴퓨팅 [내부링크]

클라우드 컴퓨팅(cloud computing) 클라우드 컴퓨팅(cloud computing)이란 인터넷상의 네트워크를 경유하여 사용자에게 컴퓨터 자원을 서비스의 형태로 제공하는 시스템을 의미합니다. 즉, 사용자는 인터넷 상에 데이터를 저장해 놓고 언제 어디서나 필요할 때 저장된 정보를 사용하거나, 필요한 프로그램을 자신의 컴퓨터에 따로 설치하지 않고도 인터넷을 통해 이용할 수 있습니다. 클라우드 컴퓨팅에서 대부분의 작업은 전 세계에 분산되어 위치한 데이터 센터(data center)라는 곳에서 수행되며, 사용자의 컴퓨터는 단순히 클라우드에 접속할 수 있는 최소한의 환경을 제공해 주는 것입니다. 클라우드 컴퓨팅의 분류 클라우드 컴퓨팅은 제공하는 서비스의 종류에 따라 다음과 같이 분류할 수 있습니다. 1. ..

인공지능 학습 데이터 구축에 필요한 ‘데이터 라벨링’이란? [내부링크]

온라인 알바 및 디지털 신생 일거리로 핫한 데이터 라벨링 누구나 aiworks 플랫폼 상에서 기본 가이드에 따라 blackolive 가공 도구를 활용하여 쉽게 참여할 수 있습니다. 데이터 라벨링이란 이미지, 영상, 텍스트 등의 데이터에 사람이 데이터 가공 도구를 활용하여 인공지능이 학습할 수 있도록 다양한 정보를 목적에 맞게 입력하는 것을 의미합니다. 데이터 라벨링 예시 먼저, 사진 이미지 상의 사물에 대한 객체인식 데이터 라벨링 예시를 들어 보겠습니다. 인공지능 데이터 라벨링을 위해서는, 데이터 이미지 위에 사람 또는 자동차 등의 객체의 위치를 표시할 수 있는 박스를 그리고, 해당 박스가 사람인지 자동차인지 분류하기 위해 주석을 다는 작업이 필요합니다. 아래의 이미지로 쉽게 이해하실 수 있습니다. 자동..

딥러닝 객체 검출 용어 정리 Deep learning Object detection terminology [내부링크]

공부를 하다 보면 용어의 정의에 대해서 정확히 알아야 할 필요가, 그리고 정리해두어야 할 필요를 느끼게 됩니다. 잘 정리해서 저장하고 저와 같은 필요를 느낄 분들의 불편함도 줄이고자 블로그에 정리합니다. 아래 사용되는 이미지들은 포스트 최하단에 출처를 표시하였고, 용어들은 필자가 알고 있던 내용들을 바탕으로 작성하였습니다. 혹시 오류가 있다면 리플로 알려주시기 바랍니다. 모든 용어는 처음 사용시 한글과 영어를 혼용하여 읽는 이를 돕고, 이후 재사용시 한쪽 언어만 사용하였습니다. 다만 한글로 번역을 모르는 경우는 영어로만 표기하였습니다. 이하는 작성의 편의상 반말로 썼습니다. Classification, Localization, Object Detection, Semantic segmentation[1] ..

1. 딥러닝 영상분석 3총사를 구분하시나요 [내부링크]

딥러닝으로 할 수 있는 영상분석은 참으로 많습니다. 특정 인물의 얼굴을 인지하고 행동 패턴을 인지하여 신분증처럼 identity 로 사용될 수도 있고 반대로 가짜 인물에게 얼굴과 행동 패턴을 주어 특정 인물로 인지되도록 할 수 도 있습니다. 하지만 항상 이러한 딥러닝 영상분석의 가장 첫단추는 의외로 이미지 분류 (Image Classification) 입니다. 그리고 (2017~2019년까지 보았을때) 딥러닝을 적용하고 싶은 대부분의 개발자들이 원하는 기능은 사물 인식 (Object Detection) 입니다. 마지막으로 딥러닝 사물 인식을 원하는 분야에서 여력이 있다면 한번 쯤은 도입해보고자 하는 궁극의 분석 방법은 이미지 세그멘테이션인 듯 합니다. (image segmentation) 1-1 이미지 ..

인공지능의 이미지 분류 방식 [내부링크]

인공지능이 이미지를 인식하는 방식과 그에 따른 도전과제 오늘 소개해드릴 내용은 그 방식이 어떠한 흐름으로 발전해왔는지, 지금은 주로 어떤 방식을 사용하는지 알아보겠습니다. 1. Classification 초기 이미지 분류는 비교적 단순한 원리를 사용하였습니다. 주어진 이미지와 학습한 데이터들 간의 거리를 비교하여 class를 분류하는 방식이었습니다. 물론 분류하는 방식에 있어서는 여러 복잡한 원리들이 있지만, classification은 인공지능 기술 중 기초적인 것이라고 볼 수 있습니다. 위 그림과 같이, 주어진 고양이 이미지를 여러 클래스와 비교하여 어디에 속하는지 판별하는 작업을 예시로 들 수 있습니다. 2. Object Detection, Tracking 객체 인식은 Classification..

레이블링 (labeling) 의 종류 [내부링크]

• 레이블링이란? –분류된 정보나 서비스에 대해 이름 (label)을 붙이는 것 • 레이블링의 종류 –메뉴 레이블 : 웹사이트 메뉴의 이름 –링크 레이블 : 텍스트 링크에 대한 레이블 –메타데이터의 레이블링 : 정보에 대한 메타데이터 –페이지 타이틀 : 특정 페이지를 표현하는 이름 –윈도우 타이틀 : 웹브라우저의 윈도우 타이틀에 나타나는 말 –버튼의 레이블 : 버튼에 대한 레이블 –서비스 레이블 : 서비스 명칭 • 레이블의 역할 •유저에게 설명한다 : 유저에게 여기가 어디이며 무엇을 하는 곳인지 설명 한다. •클릭을 유도한다 : 링크나 버튼 레이블은 유저로 하여금 클릭을 하게끔 유도한다. •정보를 표현하고 설명한다. : 메타데이터의 레이블링은 정보를 표현하고 설명해, 해당 정보를 보다 효과적으로 사용할 ..

[Docker] 란 ? VM과 차이, Docker 설치 및 기본 명령어를 중심으로 [내부링크]

Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 이 Docker라는 것은 상당히 특이한데, 기존의 VM (Virtual Machine)은 특정 Hardware의 Resource를 할당하여 동작시켰지만 Docker는 VM과 다르게 OS (Operating System; 운영체제)를 가상화하여 동작한다는 것이다. 이게 대체 무슨 말이냐... 일단 가상화 기술에 대해서 먼저 알아봐야겠지? 가상화 기술이란 것은 물리적인 하드웨어 자원(CPU, Memory 등)을 논리적인 리소스로 제공하기 위한 기술이라고 일컫는다. 말그대로 물리적인 Machine에 실제 Machine처럼 보이게 만드는 기술, 즉 논리적인 Machine이라고도 하는데 이 가상화 기술도 크게 3종류로 나눌 수 있다. 호스트 OS형 호스트..

[Java] JVM이란 무엇일까? [내부링크]

JVM이란? 자바 가상 머신(Java Virtual Machine)의 약자로서, 직역하자면 '자바를 실행하기 위한 가상 기계'라고 할 수 있습니다. '가상 기계'는 SW로 구현된 HW를 뜻하는 넓은 의미의 용어이며, 컴퓨터 성능이 향상됨에 따라 점점 더 많은 HW들이 SW화 되어 컴퓨터 속으로 들어오고 있습니다. 이와 마찬가지로 '가상 컴퓨터' 또한 실제 컴퓨터가 아닌 소프트웨어로 구현된 컴퓨터라고 생각하면 됩니다. 하여튼, 자바로 작성된 에플리케이션은 모두 JVM에서만 실행되기 때문에 자바 에플리케이션이 실행되기 위해서는 반드시 JVM이 필요합니다. 일반 에플리케이션 코드는 OS만 거치고 HW로 전달되는데 비해 Java애플리케이션은 JVM을 한번 더 거치기 때문에, 그리고 실행 시에 해석(Interpr..

[WAS] 웹서버, WAS 란? [내부링크]

WAS : 사용자 요구에 따라 변하는 "동적인 콘텐츠" 를 처리하기 위해 사용되는 미들웨어 웹 서버란? 웹 서버 웹 서버는 소프트웨어와 하드웨어로 구분되며, 하드웨어는 Web서버가 설치되어 있는 컴퓨터를 말한다. 한편 소프트웨어의 web 서버란 브라우저 클라이언트로 부터 HTTP 요청을 받아 들이고 HTML 등의 웹 페이지 문서에 반응하는 컴퓨터 프로그램이다. 일반적으로 웹서버를 얘기할 때 소프트웨어(Software)를 일컫는다. 이러한 웹 서버의 가장 중요한 기능은 클라이언트(Client)가 요청하는 HTML 문서나 각종 리소스(Resource)를 전달하는 것이다. 웹 브라우저나 웹 크롤러가 요청하는 리소스는 컴퓨터에 저장된 정적(static)인 데이터이거나 동적인 결과가 될 수 있다. 웹 서버 소프트..

[OS] 운영체제란 무엇인가? [내부링크]

운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다. 운영체제의 종류 운영체제의 종류에는 WIndows 98, Windows10, UNIX, LINUX, MS-DOS등이 있습니다. 단일 작업 처리 시스템에는 DOS, 다중 작업 처리 시스템에는 WINODWS, UNIX, LINUX등이 사용됩니다. 주로 WINDOWS는 개인용 UNIX, LINUX는 서버용 운영체제로 사용됩니다. 운영체제의..

[OS] 운영체제(Operating System : OS)란 ? 운영체제 종류와 목적, OS 정복 [내부링크]

운영체제 종류? 컴퓨터를 사용해본자라면 왼쪽과 같은 화면을 본적이 있을거예요 항상 기본으로 시작되는 화면의 이 아이콘은 무엇을 의마할까요 윈도우!! 우리에게 가장 익숙한 운영체제 중에 하나입니다. 최근 가장 많이 사용되는 윈도우 10의 로고는 이와 같이 생겼죠. 요 아이가 바로 운영체제였어요! 윈도우 종류라면,,, windows7, windows8, windowsXP 등등 여러분은 어느 세대의 윈도우를 지나왔나요?ㅎㅎ 이 외에도 운영체제라고 하면 대표적으로 유닉스, 리눅스,맥 등이 있어요 우리 개인 PC나 노트북에 깔려 있는 운영체제는 보통 윈도우이기 때문에 리눅스가 사용되는 것을 본적이 없는 분들도 있을 수 있는데요 리눅스는 오픈 소스 소프트웨어를 가져다가 내 껄로 내 제품에 최적화 시켜서 사용하기 매..

[Server] 웹 서버(Server)의 기초 개념 [내부링크]

지금까지 두 번의 프로젝트를 진행하면서 모두 백엔드 위주로 프로젝트를 진행하였다. 왜냐하면 클라이언트가 요청하는 사항을 내가 구축한 서버가 제대로 서비스를 제공하는 것이 너무 재밌었기 때문이다. 하지만 웹 서버라는게 단순히 '유저가 브라우저를 통해 발생시키는 이벤트를 클라이언트가 제대로 구현할 수 있도록 서버에 해당 데이터나 정보를 요청하는 것' 정도 라고만 생각하고 프로젝트를 진행하였기 때문에 서버에 대해 자세히 알고 싶어졌다. 단시간에 서버에 깊은 부분까지는 알 수 없겠지만 꾸준히 공부를 한다면 서버에 실체를 알 수 있게 되지 않을까?1. 서버(Server) 란?먼저, 서버의 개념에 대해 찾아보니 '서버란 컴퓨터 네트워크에서 다른 컴퓨터에 대해 자신이 갖고 있는 기능이나 서비스, 데이터 등을 제공하는..

[ Server] 란 무엇인가? [내부링크]

오늘은 서버에 대해서 알아보려 합니다. 여러분이 생각하는 서버는 무엇인가요? IT를 공부하고 일하기 전에는, 서버는 데이터센터의 서버실 처럼 커다란 공간에 큰 기계들이 있는 이미지를 떠올렸었네요. 물론 일반적인 서버의 물리적인 모습이 보통 이렇긴 하지만 꼭 저렇게 정형화되어있는것이 서버는 아닙니다. 서버도 여러분이 사용하시는 컴퓨터와 같은 컴퓨터 입니다. 집에 있는 안쓰는 노트북이나 컴퓨터도 서버로 사용할 수 있는것이죠. 그렇다면 서버의 정의는 무엇일까요? 서버(Server)는 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램 또는 장치를 의미 쉽게말해서 서버는 클라이언트가 요청하는 정보를 서버가 받아서 처리하고 응답을 주는 것이죠. 서버 컴퓨..

[log4j] 설정 및 사용방법 [내부링크]

설정방법 1. log4j.xml파일을 생성(수정) Spring 으로 세팅하면 기본적으로 log4j를 포함하고 있기 때문에 별도 생성할 필요는 없지만 혹시 없다면 log4j.xml 파일을 생성해야 한다. Path : src/main/resources/log4j.xml 1.log4j.xml 구성 Appender, logger, root 로 구성되어있는 걸로 보인다. Appender는 로그를 찍을 대상이나 어떤 방식으로 찍을 지를 결정하는 설정으로 보인다. 기본 설정값은 console에 찍는 방식으로 되어있고 PatternLayout 클래스를 사용해서 Layout을 잡는다. logger는 Application Loggers라고 주석이 달린 것처럼 package와 같이 영역을 지정하고 해당 영역에서 사용할 lo..

[log4j ] Log4j 란 [내부링크]

Log4j 란? log4j는 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바기반 로깅 유틸리티이다. 디버그용 도구로 주로 사용되고 있다. log4j의 최근 버전에 의하면 높은 등급에서 낮은 등급으로의 6개 로그 레벨을 가지고 있다. 설정 파일에 대상별(자바에서는 패키지)로 레벨을 지정이 가능하고 그 등급 이상의 로그만 저장하는 방식이다. 출처: 1. 목적 System.out.println() 을 사용하여 로그를 확인할 경우 사용하지 않게 되면 일일이 주석처리를 해야 한다. 로그의 레벨이나 로그문의 레벨에 따라서 로그를 유연하게 출력하여 불필요한 업무를 줄이고 성능을 최적화 할 수 있다. (그대로 둔다면 프로그램 성능에 영향을 미칠 수 있다.) 2. 종류 6개의 레벨로 구성됨 1.FATAL :..

[Java] Collection Framework :: 자바의 자료구조 (List, Set, Map) [내부링크]

Java Collection Framework(JCF) : Java에서 데이터를 저장하는 자료구조들을 한 곳에 모아 편리하게 관리하고 사용하기 위해 제공하는 것. 크게 List, Set, Map으로 구분할 수 있다. 이번 포스팅에서는 각각이 사용할 수 있는 메소드보다는 대략적인 큰 그림을 정리하기에 집중할 것이고 (메소드는 구글링만 해도 충분히 쉽게 찾아낼 수 있다. ), 몇개의 자료구조를 뽑아 설명해보겠다. List 인터페이스와 Set 인터페이스를 설명하기 이전에 알고 넘어가야할 점은, 컬렉션은 기본 데이터형이 아닌, 참조 데이터형만 저장이 가능하다는 것이다. 따라서 Collection에서의 데이터는 Object 타입의 객체로서 저장이 되는 것인데, 그렇다면 여기서 기본 데이터형은 어떻게 저장하고 관리..

사용자에게 가치를 선물하다, ‘딥 소트 기술’이 그리는 미래 [내부링크]

‘정보의 홍수’란 말처럼 세상엔 정말 많은 양의 정보가 존재합니다. 우리는 매일매일 쏟아지는 정보 속에서 자신에게 꼭 필요한 정보를 수집하기 위해 많은 시간을 투자하는데요. 누군가 내게 필요한 정보를 빠르게 수집, 우선순위를 매겨준다면 얼마나 좋을까요? 만약 데이터를 사용하기 쉽게 분류하고 정보를 빠르게 분석해주는 사람이 있다면 대학생의 과제도, 직장인의 업무도 조금 더 편해질 텐데요. 여기, 정보에 늪에 빠져 혼란을 겪고 있는 이들을 구출해줄 기술이 있습니다. ‘데이터 정렬(data sorting)’ 기술은 자료 분석의 근간이 되는 기술로 컴퓨터 응용 분야에서 많이 사용되고 있는데요. 간략히 말해 효과적인 정렬 알고리즘을 개발해 데이터를 빠르게 분류해두어 데이터 프로세싱에 들어가는 시간과 비용을 절약하..

[AI] 인공지능 적용 사례 19가지 [내부링크]

글을 읽고 있는 당신의 아주 가까운 곳에 인공지능이 살아있다. 딥러닝과 머신러닝 에 기반을 둔 인공지능 적용 사례 에 대해서 알아보자. 1. TIK TOK (틱톡), 스노우 등 APP 틱톡은 중국의 ‘바이트댄스’라는 인터넷 기업이 2016년에 출시한 앱. 바이트 댄스는 다른 짧은 음악 영상 앱인 뮤지컬리를 인수하면서 틱톡은 15초 짜리 영상을 제작 및 유통할 수 있는 비디오앱으로 성장했다. 반전 얼굴 챌린지 사람의 얼굴이나 신체를 휴대폰 카메라로 제대로 인식하고 스티커를 붙이거나 얼굴 모양을 바꾸거나 하는 기술이 녹아있다. 15초로 아주 짧은 영상을 제작하는 앱이기 때문에 남녀노소 가리지 않고 전세계적으로 인기를 끌고 있는 대표적인 인공지능 기술이 가미된 기반 앱이라고 할 수 있다. 2. 알렉사, 기가지..

칼만 필터 기반 객체 추적 시스템 [내부링크]

CPU 환경에서의 실시간 동작을 위한 딥러닝 기반 다중 객체 추적 시스템 요 약 최근 딥러닝 모델을 기반으로 한 객체 추적 알고리즘의 활용도가 증가하고 있다. 영상에서의 다중 객체의 추적을 위한 시스템은 대 표적으로 객체 검출 알고리즘과 객체 추적 알고리즘의 연쇄된 형태로 구성되어있다. 하지만 여러 모듈로 구성된 연쇄 형태의 시스템은 고성능 컴퓨팅 환경을 요구하며 실제 어플리케이션으로의 적용에 제한사항으로 존재한다. 본 논문에서는 위와 같은 객체 검출-추적의 연쇄 형태의 시스템에서 객체 검출 모듈의 연산 관련 프로세스를 조정하여 저성능 컴퓨팅 환경에서도 실시간 동작을 가능하게 하는 방법을 제안한다. 칼만 필터 기반 객체 추적 시스템 칼만 필터는 잡음이 포함된 선형 역학계의 상태를 추적 하는 재귀 필터로써..

[AI] 인공지능(AI)의 작동 방식 [내부링크]

인공지능(AI)의 작동 방식 대량의 데이터와 반복적인 작업을 빠른 처리할 수 있는 알고리즘을 결합한 소프트웨어가 데이터에 존재하는 패턴이나 특징을 분석하고 스스로 자동 학습 하도록 지원하는 것이 인공지능(AI)의 역할입니다. 많은 이론, 방법론, 기술 등을 포함한 종합적인 영역인 인공지능(AI)의 주요 세부 분야는 다음과 같습니다. 분석 모델구축을 자동화 하는 머신러닝은 신경망, 통계분석, 운영분석, 물리학에서 활용되는 기법들을 이용하여 프로그래밍 없이 특정 위치를 찾거나 결론을 내리는 등 데이터에 숨어있는 인사이트를 찾아냅니다. 신경망은 뉴런처럼 외부 입력에 반응하고 각 단위 사이의 정보를 연계하여 처리하는 일종의 머신러닝입니다. 서로의 연계성을 찾아내고 정의되지 않은 데이터로 부터 의미를 추론하기 위..

[Apache Tomcat] 아파치 톰캣이란 ? [내부링크]

리눅스 서버나 웹서버를 만들다보면 만나는 Apache Tomcat에 대해 알아보자. 아파치 톰캣 ? Server, Web Server 우리가 사용하는 웹페이지는 아파치와 톰캣으로 이루어져있다. 리눅스 서버를 만들거나 웹서버를 만들다보면 아파치 톰캣을 설치하라고 한다. 그 아파치와 톰캣의 기능과 차이를 아는것 또한 중요하다. 아파치 (Apache) 아파치 소프트웨어 재단의 오픈소스 프로젝트이다. 일명 웹서버로 불리며, 클라이언트 요청이 왔을때만 응답하는 정적 웹페이지에 사용된다. 웹서버 = 80번 포트로 클라이언트 요청(POST,GET,DELETE)이 왔을때만 응답함. 정적인 데이터만 처리한다.(HTML,CSS,이미지 등). 톰캣 (Tomcat) dynamic(동적)인 웹을 만들기 위한 웹 컨테이너, 서블..

[Big Data] 빅데이터 란? [내부링크]

빅데이터, 이제는 모르는 사람이 없을 정도로 널리 알려진 개념이며, 이를 해석하는 것 또한 다양한 시각이 존재합니다. 일반적으로는 ‘기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 데이터, 또는 심지어 데이터베이스의 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터’라고 정의할 수 있습니다. 또한, ‘기존(2010년대 이전)의 아날로그 환경에서 생성되던 데이터에 비해 그 규모가 방대하며, 생성 주기도 짧고, 형태도 수치 데이터뿐 아니라 문자와 영상 데이터를 포함하는 대규모 데이터’라고도 덧붙일 수 있습니다. 한편, 다양한 종류의 대규모 데이터에 대한 생성, 수집, 분석, 표현을 그 특징으로 하는 빅데이터 기술의 발전은 다변화된 현대 사회를 더욱 정확하게 예측하여 효율적으로 작..

[Data Mining] 데이터 마이닝 이란? [내부링크]

데이터 마이닝이란 사전적 의미로는 다음과 같다. " 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아 내는 것이다. 다른 말로는 KDD(데이터베이스 속의 지식 발견: Knowledge-discovery in databases)라고도 일컫는다. " 잘 모르겠다면 단어를 따로 따로 떼어서 살펴보자. 데이터 (Data) : 우리가 알고있는 그 데이터이다. 보통 연구나 조사 등의 바탕이 되는 재료를 말한다. 마이닝 (Mining) : 채굴, 채광, 채광 산업을 말한다. 채광이란 광산에서 광석을 캐내는것을 의미한다. 즉, 데이터마이닝이란 광산에서 광석을 캐내는 것에 비유한 것으로, 금광석에 극히 미량으로 포함된 금을 여러 단계를 거쳐 추출하듯이 "수 많은 데이터의 산에서 가치있는 유..

[Machine Learning] 머신 러닝에 대한 이해 [내부링크]

오늘은 머신 러닝(Machine Learning)의 개념과 기본적인 원리에 대해서 설명드리겠습니다. 인공지능을 구현하기 위해서 빼놓을 수 없는 기술중에 하나가 바로 머신 러닝. 즉, 기계 학습입니다. 머신 러닝 이란? 머신 러닝은 기계가 데이터로부터 스스로 학습하여 실행할 수 있는 알고리즘을 개발하는 분야를 말합니다. 머신 러닝과 데이터 마이닝(Data Mining)은 얼핏 들어보면 같은 얘기를 하는 것처럼 들릴 때가 있습니다. 대부분의 내용은 비슷하지만 차이점이 있습니다. 데이터 마이닝은 데이터 안에서 알려지지 않은 속성을 찾는 것이 주 목적인 반면에 머신 러닝의 주 목적은 데이터의 알려진 속성들을 학습하여 예측 모델을 만드는 데 있습니다. 데이터 마이닝 뿐만 아니라 컴퓨터 과학(Computer Sci..

[Machine Learning] 머신러닝 개념 및 원리 - (1) 머신러닝 정의 및 지도학습, 비지도학습 차이 [내부링크]

2016년 3월 알파고와 이세돌의 대국은 최근 개발되고 있는 인공지능의 기술에 대해 대중들이 관심을 갖게하는 커다란 전기가 되었고 많은 분들이 충격을 금치 못했었습니다. 그 이후로 알파고는 인간과의 대국에서 진 적이 없다고 하고, 심지어 현재는 '알파 제로'라는 새로운 이름으로 이전 알파고와는 차원이 다른 실력을 자랑한다고 하네요. (그래서 이세돌이 (현재의) 인공지능을 이긴 최초이자 마지막 사람인 엄청난 타이틀을 갖게 되었다고 하네요.) 또한 알파고를 만들었던 딥마인드에서는 올해 FPS게임인 퀘이크 아레나 중 깃발뺏기 모드를 플레이하는 인공지능을 개발하였는데 아무것도 모르는 초짜 상태임에도 스스로 게임을 하면서 학습하여 사람 플레이어를 뛰어넘는 경지에까지 이르렀다고 할 정도로 인공지능 기술은 계속 발전..

[Machine Vision] 머신 비전 [내부링크]

머신 비전은 무엇일까요? 머신비전 솔루션 머신 비전은 Machine과 Vision의 합성어로 기계가 보고 검사하는 시스템을 통틀어 이야기합니다. 머신 비전이 나오게 된 것은 바로 사람의 눈보다 더 정확하고 정교하게, 그리고 사람은 피로도에 따라, 그리고 개인의 능력에 따라 검사율이 다를 수밖에 없는데, 그 오차를 줄이고 표준화하기 위해 만들어졌다고 보시면 됩니다. 머신비전 장비는 술도 마시지 않고 늦잠자지도 않기 때문이죠. 야근을 해도 아무 불평이 없습니다. 머신 비전장비를 본다면 사람의 몸이 장비라고 한다면 얼굴 부분에 해당됩니다. 제품이 제대로 생산되고 있는지 감시하고 불량이 있는지 확인한 후 문제가 있을 경우 PC에서 신호를 보내 장비가 멈추거나 제품이 불량으로 빠지게 되죠 모든 물체는 빛이 있어야..

[GPU] VGA와 GPU의 차이점 [내부링크]

VGA와 GPU의 차이점 GPU :: Graphics Processing Unit (그래픽 처리 장치) - 컴퓨터 그래픽을 처리하는 장치 - 그래픽 카드를 구성하는 가장 중요한 요소 - 그래픽 카드 전체 중 그래픽을 처리하는 그 일부를 뜻함 GPU는 단지 저 부분일 뿐 (사진은 GTX 1080 Ti) - NVIDIA, AMD는 전체 그래픽카드가 아닌 GPU만 만드는 회사이고 GPU를 다른 회사들이 받아 그래픽카드로 만드는 것 VGA :: Video Graphics Array (그래픽카드) - 전에는 이러한 640X480 해상도를 지원하는 그래픽 카드의 표준을 나타내는 것이였음 VGA 포트 - 그렇지만 현재는 VGA = 그래픽 카드 로 굳혀짐 - VGA(그래픽카드)는 GPU를 포함하는 것

[GPU] 란 무엇일까 [내부링크]

GPU :: 정의 - Graphics Processing Unit, 그래픽 처리 장치의 줄임말 - 그래픽 카드 (VGA)를 구성하는 가장 중요한 요소 - 과거에는 이미지를 화면으로 그리는 것에 불과했으나 현재는 3D 그래픽이나 단순 계산 등에서 CPU를 능가하고 CPU와 비슷하게 중요한 역할을 하고 있음 (단순한 것을 빠르게 계산한다는 점에서 Bitcoin 같은 가상화폐 채굴에 많이 끌려감) GPU :: 구조 - CPU의 내부의 많은 부분은 캐시 메모리(사진의 Cache)로 채워짐 (CPU와 RAM 사이의 성능 차이로 인한 병목을 막기 위함) CPU가 처리할 것을 RAM에서 불러와 임시로 Cache Memory에 저장해 처리 속도를 높임 (현재의 CPU들은 DRAM들에 비해 속도가 많이 빠르다 보니 DR..

[AI] 인공지능이란? AI란? (원리, 이해) [내부링크]

인공지능(AI : Artificial Intelligence)는 쉽게 생각하면 인공적으로 만든 지능을 기계에게 준 것입니다. 기계가 스스로 생각하고 판단하여 행동을 하도록 하는 것 그렇다면 원리는 무엇일까요? 바로.. 인간의 뇌를 흉내내는 것 입니다. 현재까지도 우리의 뇌가 어떻게 동작하는지 연구가 한창 진행되고 있으며.. 많은 비밀이 풀리지않고 있습니다. 하지만 어느정도의 정론들이 만들어진 상황에서 컴퓨터 프로그램도 비슷한 흉내를 내도록 만든 것이 인공지능이라는 것입니다. 흔히 뇌과학에서는 신경망(Neural Network)에서 인간의 지성이 발휘된다고 합니다. 이 신경망을 프로그램으로 구현한 것이 바로 인공지능이 되는 것이지요! 여기서 잠깐! 프로그램을 구현하는 것이면 "프로그램"이라고 해야지 왜 굳..

[AI] 인공지능이란 무엇인가? (about artificial intelligence) [내부링크]

인공지능(AI)이란? 인공지능(AI, ArtificArtificial Intelligence)이란 사고나 학습 등 인간이 가진 지적 능력을 컴퓨터를 통해 구현하는 기술입니다. 인간의 인식, 판단, 추론, 문제 해결, 그 결과로써의 언어나 행동 지령, 더 나아가서는 학습 기능과 같은 인간의 두뇌 작용을 이해하는 것을 연구 대상으로 하는 학문 분야. 궁극적으로는 두뇌의 기능을 기계로 실현하는 것을 목적으로 하는데요. 쉽게 말해서 컴퓨터나 기계가 사람이 하는 것처럼 생각하고 행동할 수 있게 하는 기술입니다. 약인공지능과 강인공지능 (Weak AI & Strong AI) 인공지능은 크게 두 가지로 분류됩니다. 바로 약한 인공지능과 강한 인공지능인데요. 이에 대한 개념은 1980년 미국의 캘리포니아 대학의 교수인..

[AI] 인공지능이란? [내부링크]

인공지능(Artificial Intelligence, AI)이란? 인공지능이란 인간이 가지고 있는 인식, 판단 등의 지적 능력을 모델링하여 컴퓨터에서 구현하기위해 다양한 기술이나 소프트웨어, 하드웨어, 이를 포함한 컴퓨터 시스템을 통틀어 일컫는 말입니다. 인공지능이라는 학문은 사실 엄청 오래전에 등장하였습니다. 1956년 미국 다트머스 대학에서 열린 회의에 존 매카시 박사가 다트머스 학회에서 처음으로 인공지능이라는 용어를 창안하셨습니다. "기계를 인간 행동의 지식에서와 같이 행동하게 만드는 것" 이라는 인공지능의 정의를 내렸으며 1971년 인공지능 연구에 대한 업적을 인정받아 튜링상을 수상하였죠. 잠깐! 존 매카시(John McCarthy, 1927년 9월 4일 - 2011년 10월 24일) 박사는 미국..

[Computer Graphics] 컴퓨터 그래픽스란? [내부링크]

Computer Graphics? 컴퓨터 그래픽이란? 모델과 이미지를 생성, 저장, 조작하는 것에 대한 기술과 방법 컴퓨터 그래픽스와 유사하여 헷갈릴 수 있는 분야들을 함께 알아봅시다. -컴퓨터 그래픽스 : 개념을 이미지로 -컴퓨터 비전 : 이미지를 개념으로 -영상처리: 이미지를 이미지로 컴퓨터 그래픽스와 컴퓨터 비전은 reverse의 관계입니다. 컴퓨터 그래픽스가 머릿속 상상을 이미지화 하는 것이라면, 컴퓨터 비전은 우리가 보는 이미지들을 컴퓨터가 이해할 수 있도록 도와주는, 즉, 컴퓨터에 눈을 달아주는 것입니다. 컴퓨터 그래픽스의 과정 1. 모델링 Modeling : 컴퓨터가 이미지를 이해하도록 concept를 computational model로 변환하는 과정 2. 렌더링 Rendering : co..

[Image Processing] 영상처리 란? [내부링크]

영상처리라는 기술 또는 학문을 어떻게 정의할 수 있을까요? 위키피디아(WIKIPEDIA)에서는 “정지영상 또는 동영상을 입력으로 하고 신호처리에 한 부분으로 수학적 연산을 이용한 영상의 처리를 의미하며 결과물로는 하나에 영상 또는 영상에 관계된 특징에 집합이 될 수 있다” 라고 정의하고 있습니다. 다시 설명 하면 인간에 눈으로 보여지는 부분을 영상이라고 한다면 자동차가 어느 방향으로 움직이고 있는지 아래 그림에서처럼 꽃이 몇 개인지 등에 영상에서 필요로 하는 정보라면 이를 특징이라고 정의할 수 있고 이러한 특징들을 시각적 또는 수치적으로 구현해주는 제반 기술을 영상처리라고 말할 수 있습니다. 영상처리 기술들은 산업, 의료, 항공, 교통, 애니메이션 등 다양한 분야에 폭넓게 응용되고 있습니다. 제조 산업에..

영상처리란 무엇인가? [내부링크]

영상처리는 그림을 다루는 학문이다. 이것은 수 많은 어플리케이션에서 사용되는 넓은 영역의 기술들에 대한 총칭이다. 에에 포함되는 기술들은 영상을 더욱 높은 질의 영상으로 만들거나 일그러뜨리고, 영상의 두드러진 특징들을 더욱 두드러지게하고, 다른 영상의 일부분으로부터 새로운 영상을 만들어 내고, 영상을 회득하는 동안이나 획득한 후에 변질된 영상을 복원시키는 등의 기술들이다. 영상처리를 흔히 컴퓨터 그래픽스와 혼동한다. 컴퓨터 그래픽스와 영상처리는 거의 유사한 기술이다. 영상처리와 컴퓨터 그래픽스가 서로 공통된 개념들을 사용하지만 그들은 서로 다른 연구 분야로 일컬어진다. 컴퓨터 그래픽스는 합성 영상을 생성하는 것이다. 영상처리는 이미 획득하였거나 만들어진 영상을 조작하는 것이다. 컴퓨터 그래픽스는 2차원과..

[패턴인식] 이란 ? [내부링크]

1. 패턴인식의 개요 (1) 패턴인식의 정의 - 패턴인식은 “계산이 가능한 기계적인 장치가 어떠한 대상을 인식하는 문제를 다루는 인공지능의 한 분야“로 표현 할 수 있다고 한다. (2) 특징과 패턴 - 패턴이란 개별 객체의 특색 혹은 특징을 의미하며 특징을 모아놓은 집합으로 정의 됨 - 패턴을 이루는 특징 벡터는 특징 공간상에서 분포하는 유형에 따라 분류가 가능 @ 선형 분리 가능한 유형 @ 비선형 분리 가능한 유형 @ 높은 상관을 가진 유형 @ 멀티 모달 유형 - 또한 시변성에 따라 정적과 동적 패턴으로 분류 할 수 있다고 하는데 시변성이 뭘까? 찾아보니깐 시변성이랑 시간의 흐름이라 ….. 음 (3) 패턴인식 시스템의 구성 요소와 설계 사이클 - 1단계 : 데이터 수집 단계 - 2단계 : 특징 선택 단..

[Computer Vision] 컴퓨터 비전 과 컴퓨터 비전 시스템 [내부링크]

컴퓨터 비전이란 뭐라고 정의할 수 있을까? 내 나름대로 정리를 한번 해보고자 한다. 1. 컴퓨터 비전 : 카메라로부터 촬영된 영상을 분석하여 영상에 담겨있는 정보를 추출 영상 -> 컴퓨터 비전 -> 장면에 대한 묘사 라고 할 수 있겠다. 사실 컴퓨터 비전 분야의 목표는 "인간의 눈" 따라하기이다. - 컴퓨터 비전의 응용 분야 1) 문자 인식 : - 문서 인식, 번호판 인식, 교통 표지판 인식, 입간판 인식 2) 생체 인식 - 얼굴 인식, 홍체 인식, 지문 인식 3) 의료 분야 - X-선 사진분석, MRI 사진 분석, 성형 모의 시술 4) 제조 공정 검사 - PCB 기판 불량 유무 검사, 부품 자동 조립, 공정 자동화 모니터링 5) 지능형 자동차 - 차선 감지, 자동 주행, 자동 주차, 교통 흐름 통제 6..

[computer vision] 컴퓨터 비전이란? [내부링크]

컴퓨터 비전의 시작 컴퓨터 비전이란 무엇일까 ? 컴퓨터 비전은 컴퓨터를 이용하여 정지된 영상 또는 동영상으로 부터 의미있는 정보를 추출하는 방법을 연구하는 학문입니다. 사람의 눈으로 사물을 보는 것 처럼 컴퓨터가 사물을 보고 사람과 같은 기능을 수행할 수 있게 연구하는 학문입니다. 눈의 역할은 카메라가 대신하고, 뇌가 하는 작업을 알고리즘을 통해 컴퓨터가 유사하게 수행할 수 있도록 만드는 작업이 컴퓨터 비전입니다. 쉽게 말해 컴퓨터 비전이란 사람처럼 컴퓨터가 사물을 인지하고 의미있는 정보를 수학적 알고리즘을 통해 추출해내는 학문입니다. Q) 새의 사진을 컴퓨터에 입력으로 준다면 컴퓨터는 모두 새라는 결론을 낼수 있을까 생각해봅시다. 컴퓨터 비전에서 수학이 차지하는 비중은 상당한데 행렬 연산과 관련된 선형..

[Docker] Docker란 무엇일까? [내부링크]

[Docker] Docker란 무엇일까? Docker 소개 2018년 현재 우리는 다양한 클라우드 인프라 환경속에 살아가고 있습니다. AWS, GCP 등의 다양한 클라우드 서비스를 통해 물리서버를 구매하기 보다는 사용한 요금만 내고 가상서버를 빌려 서비스를 합니다. 또한 물리서버를 구매해도 가상화를 통해 여러대의 가상서버를 구성하여 사용하기도 합니다. 클라우드 및 가상화 환경을 통해 가상서버를 1대가 되었든, 100대가 되었든 버튼 클릭 한번으로 생성할 수 있게되었습니다. 우리는 생성된 가상서버에 각종 소프트웨어 설치와 환경설정을 해야합니다. 가상서버가 1대 또는 2대일 경우 쉽게 하겠지만 100대가 넘는 서버에 소프트웨어를 설치하고 환경설정을 구성하여 배포하는 것은 큰 어려움으로 다가왔습니다. 이러한 ..

[Docker] 란? [내부링크]

Docker이란? - 리눅스의 Container 기술을 이용해 가상머신처럼 하드웨어의 자원을 완전히 가상화 하지 않고 프로세스들만을 격리시켜 빠르게 어플리케이션 환경을 구축 및 배포할 수 있게 해주는 기술 - 가상머신처럼 독립된 환경을 만들어주는 도구이다 사용이유? - 리눅스의 커널을 제외한 배포판을 이용하여 각각의 독립된 환경인 컨테이너를 생성하고 관리하므로 가상머신보다 훨씬 가볍고 빠르다 - 가상 서버를 생성하면 그것에 내가 서비스하기위한 환경 및 서버를 설정해야 한다 한 두대의 서버는 직접 가능하겠지만 클라우드의 환경에서 수천대의 서버를 관리하기 위해서는 조금 더 효율적인 방법이 필요했다 - 서비스 환경을 갖춘뒤 그것을 이미지로 만들어 배포하면 여러 서버에서 간단히 그것을 실행 하므로써 서비스 운영..

[Docker] - Docker란 무엇이고 왜 사용했는가? [내부링크]

프로젝트를 진행하면서 doker라는 것을 사용하였습니다. 제가 아는 지식은 docker를 사용하여 필요한 시스템이나 서버의 image를 만들고 container에 그 이미지를 담아 가상머신(VM)에서 실행하는 것 으로 간단하게 알고 있었습니다. 하지만 도커가 어떻게 동작하고 어떤 이점 때문에 사용되는지는 확실지 않아 이번 기회에 정리해보려 합니다. 우선 위키에서 간단하게 적혀있는 내용은 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다 위에 굵은 글씨로된 부분이 docker..

[망원동 맛집/ 마포구청역 맛집] 초한초마 [내부링크]

마포구청역 맛집 / 망원동 중식 맛집 초한초마 차돌 짬뽕과 마늘 탕수육 맛집이다. 초한초마 초한초마 : 네이버 통합검색 '초한초마'의 네이버 통합검색 결과입니다. m.search.naver.com 저녁 즈음.. 방문했다. 메뉴판은 이러함.. 몇년전엔 마늘 탕수육 중짜 가 제일 작은 사이즈 였는데 지금은 소짜도 나와서 둘이 가서 탕수육 + 짜장 + 짬뽕 먹기 딱이다. 중식당의 기본은 단무지 아닙뉘꽈 식초 뿌려먹음. 나는 맵찔이다. 많이 맵지않은 짬뽕이다 차돌 짬뽕 이라는 이름에 걸맞게 그냥 젓가락질을 해도 계속 차돌박이가 잡힌다. 진짜다. 맛이찌 맛이찌 짜장은 평범한 맛이다. 기본에 충실하기 때문에 세트로 먹기 딱이다. 짜장엔 고추가루 아닙니꽈 ? 이 마늘 탕수육 때문에 초한초마를 알게되었다. 몇년전 인스..

[한남동 카페] 네로우 패스 (NARROW PATH) [내부링크]

네로우 패스 네로우 패스 : 네이버 방문자리뷰 162 · 4.52 · 매일 11:30 - 22:30 m.place.naver.com 한남동 카페/ 한남동 베이커리 @ 한남동 카페 / 네로우 패스 (NARROW PATH) 영업시간 : 매일 11:00 ~ 23:00 그냥 지나칠수 있는 위치에 있다. 카페를 찾아서 걸어다니던중 우연히 발견했다. 입구부터 건물 까지는 실제로 좀 먼 거리 였는데 입구에서 부터 고소한 빵냄새가 유혹했다.. 개코 출신.... 1인 1음료 룰이있다. 입구부터 빵냄새가 엄청났는데 치즈케잌 (막 종류별로) / 크로플 / 스콘 맛집인거 같다. 개인적으로 크로플을 맛있다고 생각하지 않음으로.. 최애 스콘! 블로그 한다고 각좀 잡아봤다! 햄버거아니다. 스콘이다 내 남친은 얼죽아 더죽아 이..

[한남동 맛집] 빠레뜨 한남 ,꾸덕한 크림 파스타 맛집 [내부링크]

한남동 맛집 빠레드 한남 오늘은 식당 이름부터 한남동이 들어간 빠레뜨 , 한남 대표 메뉴는 크림 파스타와 오므라이스! 난 방금까지도 빠레'드'인줄 알았다. 가장 인기있는 세트를 시키려했지만 호로몬 대창 덮밥이 30인분 한정판..이라고 적혀있길래.. 약간 홈쇼핑에서도 한정판이라면 마음 급해지는것처럼 시켰다. 오늘의 픽은 빠레뜨파스타 + 호로몬덮밥 + 우삽겹 샐러드 를 주문했다. 받자 마자 찍은 사진이다. 받자 마자 느낀건! 양이 작다! 그리고 그릇 사이드 닦아서 주면 좀더 이쁠텐데 맛은 있음. 블로그의 솔직한 평가기 때문에 이것저것 쓰는것 나는 평소에 이런걸 엄청 따지는 스타일은 아님.. 내남자친구는 손이 작은 편이다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 내남자친구는 한입에 먹을 수 있..

파비콘[favicon] 만들기 [내부링크]

파비콘(favicon) : 웹브라우저 주소창에 아이콘 표시되는것. 파비콘 파일 확장자 : ico, png 사이즈 : 16x16픽셀 기본규격이나, 32x32 이미지 사이즈로 해도 정상표현됨. 파비콘 만들어주는 사이트들. 1. http://www.degraeve.com/favicon/ 2. http://favicon-generator.org 3. http://tools.dynamicdrive.com/favicon/ 4. https://iconverticons.com/ 티스토리 블로그 관리 -> 관리 -> 블로그 로 들어가면 파비콘 추가 가능합니다. 귀여운 티스토리 생활 하세요!

[DB기초] 뷰(View)란 무엇인가? + 간단한 예제 [내부링크]

뷰(View)란 무엇인가? 1. 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블이다. 2. 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. 3. 뷰는 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 4. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화 한다. 뷰(View)의 특징 1. 뷰는 기본테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며, 조작도 기본 테이블과 거의 같다. 2. 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다. 3. 데이터의 논리적 독립성을 제공할 수 있다. 4. 필요한 데이터만 뷰로 정의해서 처리..

[REST API ] 란? [내부링크]

REST API 제대로 알고 사용하기 목차 REST API의 탄생 REST 구성 REST 의 특징 REST API 디자인 가이드 HTTP 응답 상태 코드 어느 날 뜬금없이 대학교 친구에게 전화가 왔습니다. 그러더니 ‘야, REST API가 정확히 뭐 어떤 거야? 하는 질문에 가슴에 비수가 날아와 꽂힌 듯한 느낌을 받았습니다. 며칠 전 카톡으로 요즘 보통 웹서비스들은 ‘REST API형태로 서비스를 제공한다’고 아는 척을 조금 했던 기억이 머릿속을 빠르게 스쳐 지나갔고 그 순간 대충 얼버무리며 ‘아, 그거 REST하게 클라이언트랑 서버간에 데이터를 주고 받는 방식’을 말한다며 얼렁뚱땅 마무리 지었던 기억이 납니다. 실제로 REST API의 서비스를 직접 개발도 해보고 사용도 해봤는데도 막상 설명을 하자니 ..

[Server] Restful API란? [내부링크]

1. RESTful API란? RESTful API라는 단어에서 사용되는 REST(REpresentational State Transfer)의 개념을 한줄로 정의하자면 아래와 같이 정의할 수 있습니다. HTTP 통신에서 어떤 자원에 대한 CRUD 요청을 Resource와 Method로 표현하여 특정한 형태로 전달하는 방식 즉, REST란 어떤 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행하기 위해 URI(Resource)로 요청을 보내는 것으로, Get, Post 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of Resource)으로 표현됩니다. 그리고 이러한 REST 기반의 API를 웹으로 구현한..

[논현동/반포동 강남배달맛집] 달떡볶이 [내부링크]

논현동 배달맛집 떡볶이 맛집 달떡볶이 이동네 맵찔이 기준 논현동 떡볶이 TOP라고 할수있다. 많이 맵지않고 달달한데 그 특유의 밀떡.. 배송도 깔끔하고 튀김도 눅눅 하지 않고 학교 앞 분식집 같은 대중적인 맛이다. 달떡 세트(떡볶이 튀김 순대 쿨피스 포함) +치즈볼 추가 + 치킨마요 내 남자친구는 유푸짐이다. 푸짐한거 진짜 좋아한다. 저 떡볶이 소스가 진짜 막상 찾으려면 찾기힘든 그런 대중적인 떡볶이 맛이다. 비밀인데 우리는 두명이서 먹었는데 삼양라면 까지 하나 끓여 먹었다. 논현동 반포동 이 동네에서 추천하는 떡볶이 배달 맛집! cc

[날씨 외부 API] openweathermap api 와 fontawesome 아이콘 이용해서 날씨 정보 가져오기 [내부링크]

오픈API란? 개발을 하다보면, 내가 스스로 얻을수 없는 정보들이 있다. 버스 정보라든가 , 날씨 정보라든가 , 도서관 정보 등의 데이터들이다. 대부분 국가, 기업, 기관등에서 해당 정보들을 공유한다. 해당 데이터들을 쉽게 사용할수 있도록 간단하고 쉽게 제공해주는것을 오픈API라고 한다! 이번에 사용한 API 는 날씨정보 API입니다 ! 날씨를 제공해주는 API는 꽤 있으니, 이 OpenWeatherMap API가 마음에 들지않으면, 다른 API도 많으니 찾아보는것도 좋다! ( API를 선택한 이유는 해외날씨를 가져와야하기 때문이다!) OpenWeatherMap 를 이용한 날씨정보를 가져오는 API를 소개해드립니다. https://openweathermap.org/ 우선 이 날씨 API는 완전 무료는 아..

[Oracle] SELECT 1 FROM 테이블명; [내부링크]

SELECT 1 FROM 테이블명; SELECT 1 FROM 테이블명; select문에 사용하면 해당 테이블의 갯수만큼 1로 된 행 출력 테이블의 행의 수가 N개이면 1이 N행 반환됩니다. 1은 TRUE 의미 WHERE 조건문과 함께 사용하면 해당 조건을 만족할 때, 1을 반환 다중행 서브 쿼리문에서 WHERE 조건절에 (NET) EXISTS 안의 서브쿼리문에 사용됨 값의 존재 유무를 파악할 때 사용 SQL> select 1 from emp; 1 --- 1 1 1 1 4 rows selected. WHERE 조건문과 함께 쓰면 해당 조건을 만족하면 1 반환 SQL> select 1 from emp WHERE ename = 'SCOTT'; 1 --- 1

Pi 란 무엇인가? 파이 코인 ? [초대코드 : Ohbyul] [내부링크]

1π를 선물로 보내드립니다! 파이는 스탠퍼드 박사들이 개발한 새로운 디지털 화폐이며 전 세계적으로 10백만 명 이상의 사용자가 존재합니다. 파이를 받으시려면 링크(https://minepi.com/ohbyul)를 참고하시고 가입 시 저의 사용자 이름(ohbyul)을 초대 코드로 입력하세요. 나도 모른다 그래서 알아 보려한다. 출처 : https://m.blog.naver.com/cront4831/222272495831 이미 오르지 않은 #저평가코인 마켓에 상장되지 않은 #파이코인 이라 한다. #PIECOIN 파이코인은 스탠포드 박사 출신 3명이 앱으로 채굴이 가능한 암호화폐를 2019년에 개발하였습니다. (현재는 기술 전문가 2명이 개발을 이어가고 있음) 비트코인이 최초의 암호화폐(가상화폐)라면 파이..

Equi Join /Non-Equi Join [내부링크]

Equi Join 기존 테이블과 조인 테이블에서 공통 칼럼을 '='(equal) 비교하여, 같은 값을 가지는 행을 연결하고 결과를 생성하는 조인 방법입니다. 가장 많이 사용되는 조인 방법이라고도 합니다. 학생 테이블과 부서 테이블을 EQUI JOIN하여 이름, 학과 번호, 소속 학과 이름을 출력 학생 테이블과 학과 테이블, 교수 테이블을 JOIN 하여 학생의 이름과 학과이름, 지도교수 이름을 출력 => 세 개의 테이블을 조인하는 경우, 기준이 되는 테이블이 중요합니다. 여기서 기준이 되는 테이블은 학생 테이블이겠죠? 학생에 대한 모든 정보가 주된 목적이니까요! 세 개의 테이블을 어떻게 묶느냐에 따라 결과가 달라지기도 하니 기준을 잘 정해야합니다. 그 후 각각 테이블의 연결고리를 잘 확인합니다. STUDE..

카티션 곱 / 카티시안 곱 / 카테시안 곱 /Cartesian product) [내부링크]

Cartesian Product 카티션 곱 -설명 1 카티션 곱(cartesian product)은 엄밀히 말하면 조인이라고 할 수 없는 조인으로, WHERE 절에 조인 조건을 주지 않는 것을 말합니다. 두 테이블을 기준으로 FROM 절에는 두 개의 테이블을 명시하지만 WHERE 절에서 조인 조건을 주지 않습니다. (WHERE 절을 추가하지 않거나 WHERE 절을 추가해도 조인 조건을 주지 않는 경우). 그 결과 두 테이블의 데이터를 기준으로 가능한 모든 조합의 데이터가 조회됩니다. Cartesian Product -설명 2 Cartesian Product (카티시안 곱)은 발생가능한 모든 경우의 수의 행이 출력되는 것을 의미합니다. N 개의 행을 가진 테이블과 M 개의 행을 가진 테이블의 카티시안 곱은..

[오라클] start with connect by prior order siblings by [내부링크]

오라클 쿼리를 짜다보면 계층적으로 정렬해야 될 때가 있다. 예를 들어 메뉴(navigation) 출력. 그럴때 유용하게 사용할 수 있는것이 start with connect by prior order siblings by 이다. order by 로 sort할 경우 모든 데이터를 가지고 정렬을 하지만 order siblings by 각 계층별로 정렬을 한다. 그냥 정렬하면 계층구조가 흐트러지기 때문에 계층구조는 그대로 유지하면서 동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것이다. 예를 들어 아래와 같이 있다고 하면 start with a.parent_id='0' connect by prior a.menu_id=a.parent_id order by siblings by a.sort asc 이러면 부모컬..

[Oracle] 오라클 계층형 쿼리(START WITH.. CONNECT BY) [내부링크]

계층형 쿼리란? 계층형 구조는 상하 수직관계의 트리형태의 구조로 이루어진 형태를 말합니다. 예를 들자면 특정회사의 부서, 특정학교의 학과등이 있습니다. 계층형 쿼리는 테이블에 저장된 데이터를 계층형 구조로 반환하는 쿼리를 말합니다. 오라클에서의 계층형 쿼리는 START WITH ... CONNECT BY 절로 생성할 수 있으며 계층형 정보를 표현하기 위한 목적으로 오라클 8부터 지원되었습니다. 수행순서 1. START WITH 절에 시작 조건을 찾습니다. 2. CONNECT BY 절에 연결조건을 찾습니다. 샘플데이터 생성 위와같은 구조를 이루도록 부서 테이블을 생성하도록 하겠습니다. CREATE TABLE DEP ( DEP_CD NUMBER NOT NULL, -- 부서코드 PARENT_CD NUMBER,..

오라클 ORDER BY 1 2 3 개념 및 예제 [내부링크]

오라클에서 ORDER BY 1, 2, 3 이런 내용을 본 적이 있었을 텐데 뭔 말인고 하면 테이블의 1,2,3번째 컬럼 기준으로 정렬하겠다는 말이다 즉 ORDER BY 1 DESC는 첫번째 열 기준으로 내림차순 정렬이라는 말이다 컬럼 번호를 이용해 정렬하는 방식은 겉보기에는 그럴싸하지만 컬럼 숫자만으로는 어느 컬럼을 지정한 건지 알아보기 어렵고 컬럼을 추가, 삭제하는 등 변경했을 경우 ORDER BY가 꼬일 수 있기 때문에 컬럼명을 기준으로 ORDER BY를 거는 것을 권장한다 마지막으로 예제에 사용한 코드는 아래와 같다 SELECT * FROM SCOTT.EMP ORDER BY 1, 2, 3 -- 1,2,3번째 컬럼 순으로 오름차순 정렬 -- ORDER BY EMPNO, ENAME, JOB과 동일 SE..

[Oracle] 오라클 EXISTS, NOT EXISTS 사용법 정리 (IN, JOIN 비교) [내부링크]

오라클에서 EXISTS( ) 함수를 처음 접하면 조금 어려움 느낌이 들 수도 있다. EXISTS를 사용하지 않아도 비슷한 결과를 만들 수 있는 기능이 많기 때문에, EXISTS에 대해 자세히 익히지 않고 넘어가는 경우가 많다. EXISTS(서브 쿼리)는 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. 아래의 샘플 테이블을 참고하여 예제 쿼리를 보면 쉽게 이해할 수 있을 것이다. SELECT a.empno , a.ename , a.deptno FROM emp a WHERE a.job = 'MANAGER' AND EXISTS (SELECT 1 FROM dept_history a..

ANSI SQL이란? /LEFT OUTER JOIN/ RIGHT OUTER JOIN/FULL OUTER JOIN [내부링크]

ANSI SQL DBMS(Oracle, My-SQL, DB2 등등)들에서 각기 다른 SQL를 사용하므로, 미국 표준 협회(American National Standards Institute)에서 이를 표준화하여 표준 SQL문을 정립 시켜 놓은 것이다. ANSI SQL 특징 표준 SQL문이기 때문에 DBMS의 종류에 제약을 받지 않는다. (MySQL, Oracle..) 즉, 특정 벤더에 종속적이지 않아 다른 벤더의 DBMS로 교체하더라도 빠르게 다른 벤더사를 이동할 수 있다. 특정 DBMS의 이탈이 가속되는 것도 ANSI SQL의 영향이 크다고 할 수 있다. 테이블간의 Join 관계가 FROM 에서 명시되기 때문에 WHERE 문에서 조건만 확인하면 된다. 즉, 가독성이 일반 Query문보다 좋다. ANSI..

[Oracle] 조인 (JOIN), 아우터 조인(Outer Join) [내부링크]

조인 (JOIN) - JOIN은 각 테이블간에 공통된 걸럼(조건)으로 데이터를 합쳐 표현하는 것이다. - JOIN에는 크게 INNER JOIN, OUTER JOIN이 있다. 예제 테이블을 통해 이해해보자. TABLE 1) MEM : 회원테이블 (회원번호, 이름, 이메일, 부서번호) TABLE 2) DEPART : 부서테이블 (부서번호, 부서명) 1. SELECT FROM을 이용한 조인 1.1) 회원 테이블과 부서 테이블의 조인 => DEPART_ID가 공통 컬럼 => MEM테이블의 DEPART_ID와 DEPART테이블의 DEPART_ID를 연결하여 준다. ex) SELECT MEM.MEM_ID, MEM.NAME, MEM.DEPART_ID, DEPART.DEPART_NAME FROM MEM , DE..

[ORACLE] 오라클 테이블 컬럼 추가/수정/삭제/이름 변경 하는 방법(ALTER 테이블 ADD/MODIFY/DROP/RENAME) [내부링크]

1. 테이블 컬럼 추가하기(ALTER TABLE ADD) [문법] ALTER TABLE 테이블명 ADD(컬럼명 데이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_NAME이라는 컬럼을 VARCHAR2(13) 타입으로 추가할 때 -> ALTER TABLE USER ADD(USER_NAME VARCHAR2(13)); 2. 테이블 컬럼 수정하기(ALTER TABLE MODIFY) [문법] ALTER TABLE 테이블명 MODIFY(컬럼명 테이타타입(사이즈)); ( EX ) USER라는 테이블에 USER_AGE 라는 컬럼을 NUMBER(3) 타입으로 수정할 때 -> ALTER TABLE USER MODIFY(USER_AGE NUMBER(3)); 3. 테이블 컬럼 삭제하기(ALTER TABLE DR..

JOIN이란? [내부링크]

-JOIN이란? 두 개 이상의 테이블들을 연결하여 데이터를 검색하는 것을 JOIN 이라고 합니다. JOIN 시 사용되는 JOIN 연산자에 따라서 EQUI JOIN과 NON EQUI JOIN 으로 구별되며, FROM 절의 JOIN 형태에 따라서 INNER JOIN과 OUTER JOIN 으로 구별합니다. -JOIN 조건으로 사용되는 연산자에 따른 분류 JOIN 설명 EQUI JOIN 두 테이블 간의 칼럼 값들이 서로 일치하는 경우 JOIN 조건으로 '=' 연산자를 사용 NON EQUI JOIN 두 테이블 간의 칼럼 값들이 서로 일치하지 않는 경우 JOIN 조건으로 'BETWEEN ~ AND' 등의 범위 비교 연산자를 사용 -FROM 절의 JOIN 형태에 따른 분류 JOIN 설명 INNER JOIN JOIN ..

[SQL Server] SELECT TOP [내부링크]

1. SELECT ... TOP(N) 상위 N개의 결과만 보고 싶을 때 SELECT ... TOP(N) 구문을 사용한다. -- 가장 키가 큰 3명만 출력해 보자 -- TOP 3으로 해도 되지만, 가급적 TOP(3)으로 사용하자 SELECT TOP(3) Name, BirthYear, Height FROM UserTable ORDER BY Height DESC TOP(N)은 이전 버전의 SQL Server와의 호환성을 위해 TOP N 형식으로 사용해도 되나, 되도록 TOP(N) 형식을 권장한다. TOP(N) 구문은 원하는 상위 N개의 결과를 보는 것도 중요하지만, SQLServer의 부하를 많이 줄이는 방법이라는 점에서 의미가 있다. SQLServer 2005 부터는 TOP(N) 구문이 변수, 수식 및 하위..

[ORACLE] CASE WHEN ~ THEN ~ ELSE END [내부링크]

이번엔 JAVA 의 IF ~ ELSE 문과도 같은 CASE WHEN 문에 대해서 알아 봅시다. CASE ~ WHEN ~ THEN ~ ELSE ~ END [형식] CASE 컬럼명 | 표현식 WHEN 조건식1 THEN 결과1 WHEN 조건식2 THEN 결과2 ....... WHEN 조건식n THEN 결과n ELSE 결과 END 조건문과 조건문 사이에는 콤마(,) 를 사용하지 않는다. CASE 문은 반드시 END 로 끝내야 한다. CASE 표현식은 ANSI SQL 형식도 지원한다. 결과 부분은 NULL 을 사용해서는 안된다. case when x = y then a else b end : 조건 x =y 가 true 일 경우 a 이고 그렇지 않으면 b case when x < y then a when x = y..

SQLD 시험 요약 정리본 [내부링크]

SQLD 시험 에 도움 될만한 요약본 파일 올립니다. 저는 문제는 SQL시험 대표 (?)책인 노랑색으로 문제 풀고있습니다.

데이터 모델링이란? [내부링크]

모델링 이란? 모델링이란 복잡한 현실 세계에 존재하는 데이터를 단순화 시켜 표현해 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정입니다. 현실의 개념들을 체계적으로 수집하여 정보모델링을 통해 사용자의 정보요구사항을 조사하고 이를 개체, 관계, 속성을 중심으로 명확하게 체계적으로 표현한고 문서화하는 기법을 데이터 모델링이라고 합니다. 모델링의 특징 즉, 모델링이란 현실 세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기술을 말합니다. 1) 추상화: 현실세계를 일정한 형식에 맞추어 표현 2) 단순화: 현실세계를 약속된 규약이나 제한된 표기법과 언어로 표현 3) 명확화: 누구나 이해하기 쉽게 애매모호함을 제거하고 정확하게 현상을 기술 데이터 모델링의 3단계 추상화 수준에 따라 개념, 논리..

[Java] 객체 란?(Object) OOP 특징(객체 지향 프로그래밍) [내부링크]

객체란? : 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말합니다. 객체는 속성과 동작으로 구성되어 있다고 보면 되는데 자바에서는 이 속성과 동작을 각각 필드(field) 와 메소드(method) 라 부릅니다. 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 합니다. 객체 모델링은 현실 객체의 속성과 동작을 추려내서 소프트웨어 객체의 필드와 메소드로 정의하는 과정이라 할 수 있습니다. [객체지향프로그래밍의 특징] 1. 캡슐화(Encapsulation) : 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말합니다. 외부 객체는 객체내부의 구..

[Java] 메모리 릭 / 메모리 누수(Memory Leak) 현상 [내부링크]

프로그래밍에서 메모리 누수현상(Memory Leak)은 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상입니다. 자바의 메모리 누수 자바에서 메모리 누수는 더이상 사용하지 않는 객체가 가비지 컬렉션(GC)에 의해서 회수되지 않고 계속 누적되는 현상입니다. Old 영역에 누적된 객체로 인해서 메이저 GC가 빈번하게 발생하게 되고, 프로그램의 응답속도가 늦어지다 결국 OOM(OutOfMemory) 오류로 프로그램이 종료됩니다. 주로 빈번한 전역변수의 선언이나, 리스트나 해쉬맵 같은 콜렉션에 저장한 객체를 해제하지 않고 계속 유지하게 되면서 주로 발생합니다. 다음의 dzone 기사를 보면 Java 에서 메모리릭이 일어는 경우를 6가지 예를 들어서 코드와 함께 설명하고 있습니다. 자바의 메모리 누수 예..

[Spring] 스프링(Spring) 정의 및 특징 정리 [내부링크]

스프링 프레임워크(Spring Framework) - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 스프링(Spring)이라고도 불린다. - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공한다. 참고1) 어플리케이션??? 애플리케이션?? 앱?? 어플??, 등 용어가 헷갈리시는 분들이 많을 텐데 개발자라면 기본상식으로 알고있어도 좋을 것 같다. 애플리케이션(O) 어플리케이션(X) 앱(O) 어플(X) 참고2) - 로드 존슨(Rod Johnson)이 자신의 JAVA 개발 경험과 노하우를 기반으로 출판한 책(Expert One-one-One J2EE Design and Development)에 샘플 프레임워크를 만들어서 저서에 실었는데, 이것이 차후 스프링이란 자바 표준 프레임워크로 ..

오라클 cascade 사용방법 및 예제 [내부링크]

오라클에서 cascade란 두 테이블을 연결해서 PK를 가지고 있는 쪽의 값을 삭제하면 FK로 연결된 값이 동시에 삭제되게 하는 옵션이다 예제에서는 부모 역할을 할 MOTHER_TABLE에 테이블 생성과정 중 CONSTRAINT 제약조건명 PRIMARY KEY (PK컬럼명); 으로 테이블 PK를 설정하고 위 테이블과 연결시킬 CHILD_TABLE을 만들면서 하단에 CONSTRAINT 제약조건명 FOREIGN KEY (CHILD_TABLE의 FK로 사용할 컬럼명) REFERENCES 연결시킬_테이블(연결시킬_테이블의_PK_컬럼명) ON DELETE CASCADE 을 넣어주면 된다 만약 생성과정이 아닌 ALTER로 테이블에 CASCADE를 설정해 준다면 ALTER TABLE 테이블명 ADD CONSTRAIN..

JAVA 면접 용어 정리 [내부링크]

java Array vs ArrayList 둘 다 배열이라는 점은 동일하나, Array는 인덱스로 접근하는 반면, ArrayList는 메서드를 통해 접근합니다.(index로 접근하는 것은 동일) Array는 Object뿐만 아니라 원시 형태(int, double 등)도 담을 수 있지만, ArrayList는 Object형(Reference, 객체)만 담을 수 있습니다. 따라서 정수를 ArrayList에 넣을 경우 Integer형은 가능하지만 int형은 불가능합니다. 덧붙여서, Integer처럼 int오 같은 원시타입을 담을 수 있는 객체를 Wrapper Class라고 합니다. 결국 Array와 ArrayList의 가장 큰 차이는 길이를 조정할 수 있는가입니다. Array 같은 경우는 고정 길이이고, Arr..

[Java] JAVA 특징 [내부링크]

자바의 장점 이식성이 높은 언어이다 이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 자바 언어로 개발된 프로그램은 소스 파일을 수정하지 않아도, 자바 실행 환경(JRE)이 설치되어 있는 모든 운영 체제에서 실행 가능하다. 객체 지향 언어이다 객체 지향 프로그래밍(Object Oriented Programming, OOP)이란 프로그램을 개발하는 기법으로, 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 말한다. 자바는 100% 객체 지향 언어이며, 객체를 만들기 위해 설계도인 클래스를 작성하고 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다. 또한 객체 지향 언어가 가져야 할 캡슐화, 상속..

[React] 리스트 타입 데이터 Map() 메소드로 Jsx에서 렌더링, 출력하기 [내부링크]

React에서 리스트(배열) 타입의 데이터를 사용하여 여러개의 컴포넌트나 태그로 jsx 파일에서 출력, 렌더링하는 방법을 알아봅니다. # React 리스트 타입 데이터 여러 개로 출력하는 방법, map 리액트 앱에서는..

노드(node) [내부링크]

노드(node) HTML DOM은 노드(node)라고 불리는 계층적 단위에 정보를 저장하고 있습니다. HTML DOM은 이러한 노드들을 정의하고, 그들 사이의 관계를 설명해 주는 역할을 합니다. HTML 문서의 정보는 노드 트리..