무료 비밀번호 관리앱입니다. 비밀번호 관리에 꼭 필요한 기능을 제공합니다.

 

 - 구글드라이브 싱크기능

 - 엑셀 다운로드 기능

 - 패턴로그인 기능

 - 안정성 : AES256 암호화 / 자신의 구글드라이브 외 외부서버 저장하지 않음

 

• 안드로이드

https://play.google.com/store/apps/details?id=com.myapplepie.PasswordApp

 

• 아이폰/아애패드/맥OS

https://apps.apple.com/kr/app/%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%AA%BD%EB%95%85/id1588212581

 

• PC용 WEB

https://bit.ly/3DYFI16

<Spring 구현방안 검토>

Rest API는 http 프로토콜 위에서 Client가 Server를 호출해서 데이터를 받는 방식을 사용하기 쉽게 정리한 표준화된 방식으로 정리할 수 있을거 같습니다. (html문서가 아닌 다른 데이터도 조회,수정,삭제가 가능하도록 표준화한 방식)

이런방식으로 구현가능한게 @Controller + @ResponseBody로 하면 REST형태로 개발이 가능할 수 있는데, 이걸 하나로 합친것이 @RestController이다. (즉, @Controller + @ResponseBoy = @RestController)

  • 둘간의 차이(REST vs Controller)를 정리하면..... 위의 @Controller+@ResponseBody형태의 컨트롤러를 제외하고, 기존 Spring MVC구조의 @Controller에 국한해서 생각한다면, 컨트롤러의 리턴값이 ViewResolver에 의해서 해석되어서 특정뷰가 html응답으로 전송된다.

반면 @RestController에 의한 호출은 뷰를 리턴하는 것이 목적이 아닌, 데이터를 전송하는 목적으로 응답이 전송되어 진다.

화면을 전환하는 용도라면 Spring MVC구조를 사용하고, 데이터 전송용이라면 Rest로 구현해서 섞어서 쓰면 될것으로 보입니다. 단, 모니터링화면이나 채팅 같이 데이터전송이 자주 많이 되는 구조의 Web어플리케이션은, 데이터를 좀더 효율적으로 전송하려면, Rest API가 아닌 WebSocket을 이용하여 해당 부분의 데이터 송수신을 구현하는 것이 맞을 것 같습니다.

 

 

웹 애플리케이션과 REST API의 근본적인 차이점은 웹 애플리케이션의 응답은 일반적으로 사람이 보기위한 용도이기 때문에 (HTML + CSS + JavaScript) 를 응답으로 전송합니다. 
반면, REST API는 REST 대부분의 클라이언트가 프로그램이기 때문에 JSON 또는 XML 형식으로 데이터를 반환합니다.

The fundamental difference between a web application and a REST API is that the response from a web application 

is generally view (HTML + CSS + JavaScript)  because they are intended for human viewers while REST API just 

return data in form of JSON or XML because most of the REST clients are programs

'IT이야기' 카테고리의 다른 글

무료 비밀번호 관리앱 소개  (0) 2021.10.24
Eclipse Intellij 단축키  (0) 2016.08.26
/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14


Setting 에서 Keymap 에서 Eclipse 스타일 설정 후!!!

 단축키

 동작

 Eclipse

IntelliJ IDEA

 Ctrl + 1

 Alt + Enter

 import 되지 않은 Class import 도움

 Alt + Shift + O

 Ctrl + Alt + O

 import 정리
 Ctrl + D

 Ctrl + Y 

 라인 삭제 

 Alt + Shift + S

 Alt + Insert 

 코드 삽입(Constructor, get/setter, toString 등)

 Ctrl + N

 Alt + Shift + N

 Ctrl + Alt + Insert 

 신규 파일 생성(java, JSP 등) 

 sysout, syserr

 sout, serr

 System.out.println, System.err.println(Code Templetes)

 

 Ctrl + Shift + T

 Class 에 대한 TestCase 파일 생성 및 이동 

 Ctrl + Shift + T

 Ctrl + N

 Class 찾기

 Ctrl + Shift + R

 Ctrl + Shift + N

 Resource 찾기

 Ctrl + E

 Ctrl + E

 Ctrl + Shift + E

 eclipse = 열린 파일

 idea = 최근 열린 파일 

 F4

 Ctrl + U

 eclipse = 선택된 단어에 대한 Hierarchy

 idea = 열려 있는 Editor 소스에 대한 Hierarchy

 Ctrl + delete

 Ctrl + ←

 Ctrl + delete

 Ctrl + ←

 단어 단위 삭제 

 Ctrl + Shift + O

 Ctrl + Alt + O

 사용되지 않는 import 제거

 Ctrl + Shift + F

 Ctrl + Alt + L

 코드 포멧(자동 정렬)

 Alt + Shift + Z

 Ctrl + Alt + T

 선택된 코드 둘러 싸기(if, while 등) 

 Alt + Shift + L

 Ctrl + Alt + V

 선택된 내용 지역변수로 리팩토링(Extract Local Variable)

 있었던거 같은데 읍어졌네.. Ctrl + Alt + F 지역 변수 전역변수로 리팩토링(Convert local variable to field) 

 Alt + Shift + M

 Ctrl + Alt + M

 선택된 영역 Method 분리 리팩토링(Extract Method)

 Shift + Enter
 Ctrl + Shift + Enter

 Shift + Enter

 Ctrl + Alt + Enter

 Ctrl + Shift + Enter

 어느 커서에 있던 한줄 밑에서 시작

 어느 커서에 있던 한줄 위에서 시작 

 어느 커서에 있던 줄끝에 ; 붙이기

 

 Ctrl + Alt + ←, →

 최근 열린 Editor 순으로 이동 

 Ctrl + Shift + L
(Spring STS Plugin)

 

 모든 문서 내에서 Text 검색

 

 

 


/lib/ld-linux.so.2: bad ELF interpreter 에러는



* on RPM기반 계열(CentOS/Redhat/Fedora/Suse/Mandriva)

yum -y install glibc.i686


* on DEB기반 계열(Debian/Ubuntu/Mint/Crunchbang)

apt-get update

apt-get install ia32-libs




'IT이야기' 카테고리의 다른 글

Spring 구현방안 ( REST vs Spring MVC vs WebSocket)  (0) 2019.08.08
Eclipse Intellij 단축키  (0) 2016.08.26
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14
Docker이용해서 mysql설치  (0) 2016.07.14

vi의 종료

  • 먼저 <ESC>키로 명령모드로 전환 한후 종료 명령
    <ZZ>버퍼를 파일에 기록하고 종료
    :wq버퍼를 파일에 기록하고 종료
    :q!버퍼의 내용을 파일에 기록하지 않고 무조건 종료
    :q버퍼의 내용과 파일의 내용이 일치하는 경우 종료

 

텍스트 편집 명령

a커서 뒤에 삽입
A줄의 마지막에 삽입
i커서 앞에 삽입
I줄의 시작에 삽입
o현재 커서의 다음에 빈 라인을 생성
O현재 커서의 앞에 빈 라인을 생성

 

파일에 관한 명령

:r [파일명]파일의 내용을 읽어와서 현재의 커서 아래에 삽입
:e! [파일명]편집중인 파일을 무시하고 새로운 파일을 작성, 편집
:e [파일명]새로운 파일을 작성, 편집
:n파일 목록의 다음 파일로 이동
:w현재 편집중인 파일을 저장
:w [파일명]현재 편집중인 파일을 새로운 파일명으로 저장
w! [파일명]현재 편집중인 파일을 현존하는 파일명으로 저장

커서의 이동 명령

 

1) 문자 단위 이동

h한 문자 왼쪽으로
j한 문자 아래로
k한 문자 위로
l한문자 오른쪽으로
→←↑↓화살표 발향으로 이동
[BackSpace]한 문자 왼쪽으로
[Enter]다음 라인의 시작으로

2) 라인에서의 이동

^ 또는 0라인의 시작위치로
$라인의 끝 위치로

 

3) 페이지 단위 이동

[Ctrl]-f한 페이지 위로
[Ctrl]-b한 페이지 아래로
[Ctrl]-u반 페이지 위로
[Ctrl]-d반 페이지 아래로

4) 단어 단위 이동

w한 단어 오른쪽으로 이동, 새 단어의 시작 문자에 위치,구두점을 한 단어로 인식
W한 단어 오른쪽으로 이동, 새 단어의 시작 문자에 위치
b한 단어 왼쪽으로 이동, 새 단어의 시작 문자에 위치,구두점을 한 단어로 인식
B한 단어 왼쪽으로 이동, 새 단어의 시작 문자에 위치
e한 단어 오른쪽으로 이동, 새 단어의 마지막 문자에 위치,구두점을 한 단어로 인식
E한 단어 오른쪽으로 이동, 새 단어의 마지막 문자에 위치

5) 파일에서의 이동

G파일의 끝으로 이동
nG 또는 :nn번째 라인으로 이동

6) 화면에서의 이동

H화면의 첫줄로 이동
L화면의 끝으로 이동
M화면의 중간으로 이동

 

삭제 명령

 

1) 문자 단위 삭제

x커서가 위치한 곳의 한 문자 삭제
nx개의 문자 삭제
X커서가 위치한 곳 앞의 한 문자 삭제
nX개의 문자 삭제

2) 라인 단위 삭제

dd한 라인 삭제
nddn개의 라인 삭제
d0 또는 d^커서 위치부터 라인의 처음 까지 삭제
d$, D커서 위치부터 라인의 끝 까지 삭제

3) 단어 단위 삭제

dw커서 위치에서 오른쪽 한 단어 삭제
db커서 위치에서 왼쪽 한 단어 삭제

4) d+이동명령

dh,dj,dk,dl,d0,d$

 

5) 파일에서의 삭제

dG커서 위치부터 파일의 끝 까지 삭제
dnG커서 위치부터 n번째 라인까지 삭제
  

복사 명령

 

1) 라인 단위 복사

yy한 라인 복사
nyyn개의 라인 복사
y0 또는 y^커서 위치부터 라인의 처음 까지 복사
y$, Y커서 위치부터 라인의 끝 까지 복사

2) 단어 단위 복사

yw커서 위치에서 오른쪽 한 단어 복사
yb커서 위치에서 왼쪽 한 단어 복사

3) 붙여 넣기

p커서 위치에서 오른쪽에 붙여 넣기
P커서 위치위 윗 줄에 붙여 넣기

 

수정 명령

 

(1) 문자 단위 수정

r한 문자 수정후 명령 모드
nrn개의 문자를 수정후 명령 모드
R한 문자 수정후 편집 모드
nRn개의 문자를 수정후 편집 모드

(2) 한 문자를 여러 문자로 수정

s커서 위치에서 한문자 삭제 후 편집 모드

(3) 여러 문자를 수정

  • 명령 수행 후 [ESC] 키로 마감
cw현재 커서위치에서 오른쪽 단어 수정
cb현재 커서위치에서 왼쪽 단어 수정
c0 또는 c^커서가 위치한 라인의 시작에서 커서 위치까지 수정
c$또는 C커서의 위치에서 라인의 끝까지 수정
cc한 줄을 모두 수정


라인의 결합

J커서의 다음 줄을 커서가 있는 줄에 결합

 

명령 실행 취소 명령

u직전의 한 명령 실행 취소(undo), 일부 시스템에서는 여러 명령 취소 가능
U현재 라인에서의 명령들의 실행 취소
[Ctrl]-r취소명령의 취소(redo), 일부 시스템에서만 지원

검색

/[패턴]앞으로 이동하면서 [패턴]을 검색
?[패턴]뒤로 이동하면서 [패턴]을 검색
n반복 해서 이전에 지정된 [패턴]을 검색(next search)

 

기타 명령

  • :!command - 쉘로 나가지 않고 쉘명령을 수행
  • :sh - 쉘로 잠시 나감, 복귀하려면 exit
  • . - 직전 명령어 재수행
  • [CTRL]-g : 전체 줄수와 현재 커서가 위치한 줄 번호
  • ~ - 대소문자 변경

vi 편집기의 환경 설정

  • :set nu - 라인번호 표시 설정
  • :set nonu - 라인번호 표시 설정 해제


'IT이야기' 카테고리의 다른 글

Eclipse Intellij 단축키  (0) 2016.08.26
/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
AWS에서 Docker 설치  (0) 2016.07.14
Docker이용해서 mysql설치  (0) 2016.07.14
Linux 초기화 파일 실행 순서  (0) 2016.07.14

Installing Docker

Docker is available on many different operating systems, including most modern Linux distributions, like Ubuntu, and even Mac OSX and Windows. For more information about how to install Docker on your particular operating system, go to the Docker installation guide.

You don't even need a local development system to use Docker. If you are using Amazon EC2 already, you can launch an Amazon Linux instance and install Docker to get started.

To install Docker on an Amazon Linux instance

  1. Launch an instance with the Amazon Linux AMI. For more information, see Launching an Instance in the Amazon EC2 User Guide for Linux Instances.

  2. Connect to your instance. For more information, see Connect to Your Linux Instance in theAmazon EC2 User Guide for Linux Instances.

  3. Update the installed packages and package cache on your instance.

    [ec2-user ~]$ sudo yum update -y
  4. Install Docker.

    [ec2-user ~]$ sudo yum install -y docker
  5. Start the Docker service.

    [ec2-user ~]$ sudo service docker start
    Starting cgconfig service:                                 [  OK  ]
    Starting docker:	                                   [  OK  ]
  6. Add the ec2-user to the docker group so you can execute Docker commands without using sudo.

    [ec2-user ~]$ sudo usermod -a -G docker ec2-user
  7. Log out and log back in again to pick up the new docker group permissions.

  8. Verify that the ec2-user can run Docker commands without sudo.

    [ec2-user ~]$ docker info
    Containers: 2
    Images: 24
    Storage Driver: devicemapper
     Pool Name: docker-202:1-263460-pool
     Pool Blocksize: 65.54 kB
     Data file: /var/lib/docker/devicemapper/devicemapper/data
     Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
     Data Space Used: 702.3 MB
     Data Space Total: 107.4 GB
     Metadata Space Used: 1.864 MB
     Metadata Space Total: 2.147 GB
     Library Version: 1.02.89-RHEL6 (2014-09-01)
    Execution Driver: native-0.2
    Kernel Version: 3.14.27-25.47.amzn1.x86_64
    Operating System: Amazon Linux AMI 2014.09


'IT이야기' 카테고리의 다른 글

/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
Docker이용해서 mysql설치  (0) 2016.07.14
Linux 초기화 파일 실행 순서  (0) 2016.07.14
도커 설치 및 실행  (0) 2016.07.06

docker를 사용하면서 처음 사용 해서, mysql을 실행하는 것까지 정리를 해 봤습니다.

docker로 mysql 사용해 보기

먼저 관리자 모드에서 사용을 해야 한다.

sudo -i

docker 명령 실행을 관리자 모드에서 하기 싫다면, 가장 하단에 있는 Tips를 참고 해서 작업 하시면 됩니다.

Ubuntu에 Docker 설치하기

우선 전 우분투 환경에서 설치하고 사용하는 걸 기반으로 했습니다.
아래와 같이 입력해 주시면, 간단하게 실행이 됩니다.

wget -qO- https://get.docker.com/ | sh

Docker 이미지 검색

먼저 mysql을 검새해 봅니다.

docker search <검색어>

$ docker search mysql
docker search mysql
NAME                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                        MySQL is a widely used, open-source relati...   1219      [OK]
mysql/mysql-server           Optimized MySQL Server Docker images. Crea...   56                   [OK]
... 중략 ...
wenzizone/mysql              mysql                                           0                    [OK]

가장 상단에 공식 이미지가 있어서 여기서는 공식 이미지를 사용 했습니다.

테크명 알아 보기

이 글에서는 가장 마지막(latest)이미지를 사용 합니다.
하지만, 난 꼭 이번의 MySQL을 써야만 돌아가는 데이터를 가지고 있거나, 어플이 있다고 한다면, tag를 검색해서 해당 버전을 설치 하시면 됩니다.

$ wget -qO- https://registry.hub.docker.com/v1/repositories/mysql/tags | jq '.[].name'
"latest"
"5"
.... 중략 ...
"5.7.8-rc"
"5.7.9"

혹시 관리가 길어지거나 특정 버전을 고정해야 할 경우에는 tag의 특정 번호를 찍어서 사용하는 것도 생각해 보셔야 할 것 같네요.

Docker 이미지 받기

태그 중에서 가장 최근은 latest입니다.
하지만, 고정 버전을 원한다면, tag중에서 골라서 사용 하시면 됩니다.

docker pull <이미지이름>:

사용 하시면서 오랜 기간 사용해야 하거나, 패키지 관리자의 버전에 따른 영향을 덜 받고 싶다면, tag를 고정해서 받아서 사용해 주시면 됩니다.

docker pull mysql:latest

전 마지막 tag로 받습니다. :latest는 기본 값이라서 생략해도 괜찮습니다.

이미지 목록 출력

이미지가 잘 받았는지 출력해 봅니다.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
mysql               latest              04c9038fd2f2        7 days ago          359.8 MB

MySQL 환경변수 (-e)

MYSQL_ROOT_PASSWORD

이 변수는 필수이며, MySQL의 root 암호를 지정 합니다.

MYSQL_DATABASE

컨테이너의 이미지를 시작 하면서 지정한 데이터베이스를 생성합니다.

MYSQL_USER, MYSQL_PASSWORD

MySQL 사용자 아이디와 암호

MYSQL_ALLOW_EMPTY_PASSWORD

yes로 설정해 놓으면 root의 패스워드가 비어서 실행이 된다. 권장하진 않음.

환경 변수 설정 하기

MYSQL_USER="mysql_user"
MYSQL_DATABASE="sample_db"
MYSQL_CONTAINER_NAME="mysql"
MYSQL_ROOT_PASSWORD="MY_PASSWORD"
MYSQL_PASSWORD="MY_PASSWORD"

실행

docker \
  run \
  --detach \
  --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
  --env MYSQL_USER=${MYSQL_USER} \
  --env MYSQL_PASSWORD=${MYSQL_PASSWORD} \
  --env MYSQL_DATABASE=${MYSQL_DATABASE} \
  --name ${MYSQL_CONTAINER_NAME} \
  --publish 3306:3306 \
  mysql;

설정 변수

  • --name : 이미지의 이름
  • -e, --env=[] : 설정값
  • -d, --detach=false : 컨테이너를 백그라운드 실행, 이 옵션을 안 넣어 주면 실행상태에서 바로 꺼진 상태로 들어 가게 됨
  • -p, --publich=[] : 컨테이너의 포트를 호스트로 사용 합니다.

MySQL을 접속해 보면, 사용자에는 mysql_user가 추가 되고, sample_db라는 db가 추가된 상태로 이미지가 시작 됩니다.
접속 IP는 host pc의 IP를 사용 합니다.

데이터베이스 저장 위치를 host로 사용하기

데이터베이스를 띄우지만, 그냥 사용하게 되면, 컨테이너 이미지 안에 파일을 저장합니다.
호스트파일에 저장 할려면, --volume이라는 옵션을 사용해야 합니다.

사용중인 컨테이너 끄고 지우기

docker stop mysql:latest
docker rm mysql:latest

Volume을 지정해서 실행하기

docker \
  run \
  --detach \
  --volume /opt/mysql:/var/lib/mysql \
  --env MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
  --env MYSQL_USER=${MYSQL_USER} \
  --env MYSQL_PASSWORD=${MYSQL_PASSWORD} \
  --env MYSQL_DATABASE=${MYSQL_DATABASE} \
  --name ${MYSQL_CONTAINER_NAME} \
  --publish 3306:3306 \
  --name mysql-volume \
  mysql:latest;

설정 변수

  • -v, --volume=[] : 호스트의 파일을 컨테이너 위치로 연결 합니다.

/opt/mysql 경로에 mysql의 db가 생성 된 것을 확인 할 수 있습니다


컨테이너에서 mysql실행 확인

 docker exec -i -t mysql-volume bash

Prompt가 바뀐다. ( root@1d458d3c99b9:/# )

mysql 실행하여 로그인 한다

* mysql -u mysql_user -p sample_db


* 이미 생성된 도커 컨테이너 재 실행

docker ps -a

docker start "컨네이너ID"

docker exec -i -t mysql-volume bash




'IT이야기' 카테고리의 다른 글

/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14
Linux 초기화 파일 실행 순서  (0) 2016.07.14
도커 설치 및 실행  (0) 2016.07.06

Bash shell2 초기화 (스크립트)파일 실행순서

  • Bash manpage와 우분투 커뮤니티 위키의 환경변수2에 따르면 아래와 같으며, 나열한 것의 위에서부터 아래 순이다.

    /etc/profile 파일이 있는 경우 실행

    /etc/profile.d/*.sh 폴더 내 쉘스크립트 확장자(.sh)로 된 파일을, 파일명 알파뱃 순으로 실행

    ~/.bash_profile

    ~/.bashrc

    ~/.bash_login

    ~/.profile

    ~/.bash_logout 로그아웃시 실행


'IT이야기' 카테고리의 다른 글

/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14
Docker이용해서 mysql설치  (0) 2016.07.14
도커 설치 및 실행  (0) 2016.07.06

맥에서 도커를 실행하기 위해서는

docker-machine을 설치해야 한다.


도커를 사용하기에 앞서 다음 명령어를 수행해야 한다.


docker-machine create --driver virtualbox dev    -- 이미지 생성

docker-machine stop dev docker-machine start dev


docker-machine env dev        -- 환경 설정

eval $(docker-machine env)   -- 환경 적용


이후에 도커를 이용해서 컨테이너를 올릴 수 있다.


docker pull alexeiled/docker-oracle-xe-11g

'IT이야기' 카테고리의 다른 글

/lib/ld-linux.so.2: bad ELF interpreter 에러 발생시  (0) 2016.08.24
VI 에디터 명령어  (0) 2016.08.17
AWS에서 Docker 설치  (0) 2016.07.14
Docker이용해서 mysql설치  (0) 2016.07.14
Linux 초기화 파일 실행 순서  (0) 2016.07.14

+ Recent posts