728x90

1. 서버 임대하기 ( AWS EC2 )

 

간략한 이론

먼저 우리가 이번시간에 할 내용을 그림으로 살펴보자

 

AWS EC2란?

 - Elastic Compute Cloud의 약자.

 - 아마존에서 남는 컴퓨터 자원을 임대해주는 서비스라고 이해하면 쉽다.

 

서버란 무엇인가?

 - 서버는 컴퓨터이다.

 - 우리가 사용하는 컴퓨터와 별반 다를것이 없다.

 - 하지만 어떤 역할을 부여 받느냐에 따라서 서버와 클라이언트로 구분된다.

 - 다수의 고객이 하나의 햄버거집에서 주문을 할때

  -> 다수의 고객은 클라이언트가 되고 햄버거집은 서버가 된다.

 - 이번엔 다수의 햄버거집이 본사에 재료를 발주할때

  -> 다수의 햄버거집은 클라이언트가 되고 본사는 서버가 된다.

 

정리하면 서버라고 해서 특별한게 아니고 어떤 역할을 하는 컴퓨터냐에 따라서 서버가 될수도 있고, 클라이언트가 될수도 있다.

우리는 EC2라는 컴퓨터 자원을 서버로 이용할 것이다.

 

LEMP란?

 - 운영체제인 Linux ( 우리는 우분투를 쓸것이다. )

 - 웹서버 Nginx ( Engine의 E를 써서 "램프"라고 발음이 용이하도록? 한다)

 - MariaDB는 MySQL의 오픈소스 버전이라고 보면 된다. 참고로 RDBMS이다. ( 관계형 데이터베이스 관리 시스템 )

 - PHP ( 서버사이드 언어 - 백엔드의 동작을 담당하는 녀석이다. ) 

 

LAMP는?

 - 웹서버를 Aphach로 할경우에 A를 따와서 LAMP라 칭한다.

LEMP, LAMP 같은 서버 셋팅은 일반적인 셋팅이지 이것이 절대적인 셋팅의 조건은 아니다.

 

 

 

 

inma06.tistory.com/99

 

게시판만들기 - 서버임대와 기본셋팅 ( 실습편 )

AWS EC2를 임대해 보자 aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services 제조 AWS를 활용한 Siemens의 에너지, 의료 서비스, 제조 분야 혁신 Siemens가 AWS를 사용하여 어떻게..

inma06.tistory.com

 

 

728x90

우리가 생각한 최고의 영단어 앱의 3가지 조건은?

 

 

1. 출퇴근길에 할 수 있는 쉽고 단순한 어플

다른 거 하기도 바쁜 세상 영단 어플이나 붙잡고 있어야 돼?

 

2. 재미있어야 계속 할거 아니야?

게임중독에 왜 걸리는 줄 알아? 내가 성장하는 게 수치로 한눈에 보이잖아!!?

 

3. 근데 결국은 그 어플로 영어 좀 늘었니?

사실 이게 핵심이 자나?

 

초중고 그리고 대학까지...
16년이란 세월 동안 도전과 실패를 반복했다.
그놈의 영단어... 답은 없을까?

 

많은 영단어 학습 서비스를 사용해 봤지만,

외우다가 포기하거나 성과를 내지 못한다.

야너듀 GG?  야 너듀GG? 

(GG = 게임 포기 용어)

 

이유는 심플하다.

영단어만 외웠기 때문이다.

 

응? 이게 무슨 말이냐고?

 

철수는 영어 시험을 앞두고
사과 포도 딸기... ... 를 밤새 외웠다.
하지만 시험에서 과일(fruit)이 문제로 나왔다.

 

우리 팀의 서비스는 이런 '한'단어 암기지양한다.

 

 


 

 

각설하고 지금부터 다룰 내용은 영단어 학습의 방법론이다.

 

기존에 기획이 쉽지 않았던 코어 기능!

영단어 패키지를 워드넷으로 완성해 보자!!

 

우리가 찾은 해답 wordNet ::


워드넷의 구조는 하나의 단어를 검색하면
그 단어의 상, 하위 카테고리가 모두 검색된다.
마치 객체 지향 프로그래밍의 클래스 상속관계와 같다.

 

 

우리서비스가 성공할 수밖에 없는 이유 하나

하나만 외워서 될 것 같아? 파편적 단어 암기는 ㄴㄴ해

 

사과를 검색한 결과

그림과 같이 사과는 이과에 속하고

이과는 열매, 과실, 과일에 속한다. 과일은 영어로 Fruit!!

 

철수가 시험에서 과일을 못 맞춘 것은

파편적인 하나하나의 단어들 (이하 :: 한 단어 )만 외웠기 때문이다.

우리 서비스는 단시간의 투자로 한 단어와 관련된 10가지 단어를 암기할 수 있다.

 

 

우리서비스가 성공할 수밖에 없는 이유 둘

생소하고 어려운 단어를 쉽게 암기

 

생소하고 어려운 단어도 외울 수 있다.

어떻게 외우냐고? 잘 봐~

 

중위가 영어로 뭐야?

중위라는 직급을 나타내는 단어 LIEUTENANT가 있다.

어려운 영어단어 Top 5에 선정될 만큼 생소하고 어려운 단어이다.

 

그러나 우리의 피땀영어는 이것도 해낸다!!

 

처음부터 아무 체계 없이

중위 == LIEUTENANT 방식으로 외운다면,

16년을 그래 왔듯... 또다시 영어 ㅃㅃ2

 

하지만 피땀영어는,

하나의 패키지 묶음을 제공연관성 있는 단어들만 제공해 준다.

 

이로 인해,

체계적으로 머릿속에 마인드맵이 그려지는 것이다.

난생처음 보는 중위(LIEUTENANT)라는

단어까지 암기하게 되는 이유가 여기에 있다.

 

 

 

우리서비스가 성공할 수밖에 없는 이유 마지막 셋!

패키지 학습을 통한 연관성 단어 모음집!

영희는 피땀영어 영단어 앱을 통해 직업-전문가 패키지를 학습했다.
열심히 학습한 영희는 패키지를 성공적으로 완료했다.
효과는 엄청났다!!

단어를 학습하는 우리만의 노하우 (너와 나의 연결고리)

영희가 그동안 직업-전문가 패키지를 통해 배운 단어들의 일부이다.

 

 

 

 

마치며 ::

 

한단어가 다른 어떤 단어와 연관성 있는지를 알면

더 이상 파편적으로 외우던 구닥다리 단어학습 방법을 벗어나

누구나 쉽게 적은 시간을 투자해서

체계적이고, 효율적으로 영단어 암기를 가능하게 한다.

 

이제 당신은 영어 단어를 정복할 수 있다.

우리의 "피땀영어" 프로젝트는 반드시 성공할 것이다.

 

 

 

워드넷 요약 ::  

더보기

워드넷은, 마치 포도나무와 같다.

 

1. 검색한 단어가 어떤 뿌리에서 왔는가?

2. 검색한 단어에는 어떤 단어들을 가지로 두고 있는가?

3. 같은 가지에는 어떤 유사어가 있는가?

 

이 포도나무에서는 연간 1t의 포도를 수확한다.
728x90

2020-10-30 수정 ::

 

원본 게시글이 있는 테이블 ( board )

삭제된 게시글을 모아두는 테이블 ( board_delete )

 

 

1번 게시글 ( idx = 1) 삭제를 누르게 되면 두가지 쿼리를 날립니다. 

 

1. 게시글 삭제 테이블로 이동( 복사 )

  INSERT INTO board_delete SELECT*FROM board WHERE idx='1'

2. 원본 테이블 게시글 삭제

  DELETE FROM board WHERE idx='1';

 

이렇게 게시글을 다른 테이블( 삭제 게시글을 모아둔 테이블 )로 이동시켜 줍니다.

그리고 일정 기간이 지나거나 회원이 탈퇴를 했을 때 게시물을 폐기 시킵니다.

 

이렇게 바꾼 이유는 두가지 정도가 있습니다.

1. 페이징 처리시 LIMIT를 이용할 때 문제가 된다.

이전 방법( isDelete == Y & N )로 게시글을 표시하면

SQL문( SELECT * FROM board ORDER BY idx DESC LIMIT $start_num, $list; )을 이용할때

idx 1~10 이 모두 삭제된 게시물이면 페이지에 게시글이 보이지 않을 수도 있음.

( SQL문을 수정하는 방법으로 해결 할 수도 있지만... )

 

2. 관리가 편하다.

삭제글 전용 테이블을 하나 만들었기 때문에 가독성도 좋고 따로 관리하기 편함.

 

더 나은 방법이 있으면 댓글로 알려주세요 업데이트 하겠습니다.

 

=========================================

 

이전글::

저는 게시글등을 삭제할때 DELETE 쿼리를 이용하지 않았습니다.

대신 isDelete 라는 컬럼을 생성하고 기본값을 N으로 주었습니다.

그후 게시글 삭제시 UPDATE 쿼리로 isDelete를 Y로 바꿔주었습니다.

게시글 목록은 isDelete가 N인 게시물만 노출되게 해주었습니다.

 

게시글 데이터를 바로 삭제하지 않는것은 여러가지 이유가 있습니다.

하지만 유저가 삭제한 데이터를 무한정 가지고 있을 수는 없습니다.

그래서 게시글 삭제 이후 3개월(임의로 지정한 기간)이 되었을때 삭제하고 싶었습니다.

게시글이 삭제된 시간을 기록하는 칼럼을 만들어서 관리하면 될것 같습니다.

 

이 글은 게시판을 만들면서 생각한 내용의 일부를 정리했습니다.

 

계속 업데이트할 예정입니다.

2020-10-30 수정 ::

 

원본 게시글이 있는 테이블 ( board )

삭제된 게시글을 모아두는 테이블 ( board_delete )

 

 

1번 게시글 ( idx = 1) 삭제를 누르게 되면 두가지 쿼리를 날립니다. 

 

1.INSERT INTO board_delete SELECT*FROM board WHERE idx='1'; // 게시글 복사

2.DELETE FROM board WHERE idx='1'); // 게시글 삭제

 

이렇게 게시글을 다른 테이블( 삭제 게시글을 모아둔 테이블 )로 이동시켜 줍니다.

 

그리고 일정 기간이 지나거나 회원이 탈퇴를 했을 때 게시물을 폐기 시킵니다.

 

더 나은 방법이 있으면 업데이트 하겠습니다.

 

 

=========================================

 

이전글::

저는 게시글등을 삭제할때 DELETE 쿼리를 이용하지 않았습니다.

대신 isDelete 라는 컬럼을 생성하고 기본값을 N으로 주었습니다.

그후 게시글 삭제시 UPDATE 쿼리로 isDelete를 Y로 바꿔주었습니다.

게시글 목록은 isDelete가 N인 게시물만 노출되게 해주었습니다.

 

게시글 데이터를 바로 삭제하지 않는것은 여러가지 이유가 있습니다.

하지만 유저가 삭제한 데이터를 무한정 가지고 있을 수는 없습니다.

그래서 게시글 삭제 이후 3개월(임의로 지정한 기간)이 되었을때 삭제하고 싶었습니다.

게시글이 삭제된 시간을 기록하는 칼럼을 만들어서 관리하면 될것 같습니다.

 

이 글은 게시판을 만들면서 생각한 내용의 일부를 정리했습니다.

 

계속 업데이트할 예정입니다.

 

728x90

www.manualfactory.net/10175

 

Ubuntu 16.04 / apt-get / 패키지 설치, 제거, 업데이트 등 관리하는 명령어

우분투(Ubuntu)에서 패키지를 관리하는 명령어가 몇가지 있습니다. 그 중 가장 기본이 되는 것이 apt-get입니다. 많은 옵션이 있는데, 자주 쓰는 몇가지를 정리해보겠습니다. apt-get update 패키지 목

www.manualfactory.net

 

 

 

 

apt-get update

패키지 목록을 갱신합니다.

 

apt-get upgrade

모든 패키지를 최신 버전으로 업그레이드합니다.

 

apt-get install abc

abc 패키지를 설치합니다.

 

apt-get remove abc

abc 패키지를 삭제합니다. 설정파일은 삭제하지 않습니다.

 

apt-get purge abc

abc 패키지를 삭제합니다. remove와 다르게 설정파일도 삭제합니다.

 

참고로 패키지 검색은 apt-cache로 합니다.

abc를 포함한 패키지를 검색하려면 

apt-cache search abc

와 같이 하면 됩니다.

 

728x90

이슈 ::

아마존, 네이버 등 클라우드 서버에서 제공하는

서버 접속키 포멧이 .pem인 경우가 많이 있다.

 

SSH 서버 접속 터미널 도구인 putty를 이용해서 접속하려고 하면 pem를 ppk로 바꿔주어야 한다.

 

방법은 매우매우 쉽고 간단하다.

1. PuTTYgen 다운로드

www.puttygen.com/

 

PuTTYgen Download

Download PuTTYgen for Windows, Linux and Mac operating system. Find step by step guide to downloading PuTTYgen, a key generator for free.

www.puttygen.com

 

2. 실행 -> 파라미터 설정 -> 로드

 

 

 

3. 키를 정상적으로 가져온걸 확인할 수 있다.

 

4. 그대로 Save "Private" key로 저장 후 확인.

 

 

5. 파일명.ppk 저장

 

 

6. PuTTY에 변경한 ppk파일을 불러와서 적용시킨다.

 

 

 

7. 나중을 위한 세션별 설정값 세이브

접속 주소, 포트 확인후 오픈!

 

 

8. 서버 접속 성공

 

 

서버 생성후 처음 접속시 안내팝업이 뜰 수 있습니다. 확인 눌러 주시면 됩니다.

728x90

본 포스팅은 팀노바 유튜브 채널 영상을 약간의 수정을 해서 필기한 내용입니다.

 

 

개발자라면 알아야 하는 기본 공부 추천

 

자료구조

메모리를 사용하는 방법중 하나이다.

메모리를 효율적으로, 목적에 맞게 쓰기위해 개발자들이 만들어 것들이다.

 

디자인패턴

이렇게 복잡한 구조를 가진거야??

개발자들이 개발을 하다보면 관리측면에서 피로도가 높은 측면이 있었다.

대표적인 MVC 패턴을 보자.

현대에서는 디자이너와 프로그래머가 충돌되는 부분이 있다.

각자의 영역을 정확히 나누는 측면이다.

핵심은 조금더 개발을 편하게 하기 위해 만들어진 이다.

 

운영체제

어플리케이션이 동작하는 공간.

프로그래밍을 어느정도 해본 다음 접하는걸 추천한다.

 

하드웨어

하드웨어와 운영체제의 관계 이해하는 것이 중요하다.

) 특정 그래픽카드에 맞춰 게임을 개발해서 좀더 높은 퍼포먼스를 내게 하는 경우도 있다.

 

캐릭터 인코딩의 이해

https://youtu.be/lio09TVQ5bE   ( 참고 : 1시간 정도 강의 )

우리가 사용하는 언어를 디지털화해서 표현하는 방식이다.

(ex. 서버개발자 :: 인코딩이 깨진다... )

암호학, 보안쪽에서 암호화 복호화 측면에서 문제가 생길수 있다.

운영체제에서 캐릭터 인코딩을 어떻게 다루고 있는지

 

데이터베이스

오라클, MySQL RDBMS(관계형 데이터베이스 관리 시스템) 국한된 이야기가 아니다.

기초부터 공부를 해보면( 파일시스템부터 ~ ) 데이터베이스가 창의적인 발전을 했다는걸 알게된다.

데이터 베이스의 발전은 현재 진행형!! 상당히 재밌다.

 

암호학에 대한 이해

암호학이란? 기본적으로 ...

HTTPS, TLS, SSL 암호화 통신을 하는 경우가 많다. ( 구간 암호화 )

전문가 까진 아니라도 발자 측면에서 기본적인 암호학 상식을 가지고 있으면 좋다.

법적으로도 정해진 것 있다. ( ex. 패스워드 단방향 암호화 )

 

네트워크 통신 프로그래밍 ( 서버와 클라이언트 개념 이해 )

웬만한 기성 어플리케이션에서 네트워크 통신이 안되는 앱이 없다.

+ 소켓통신, 채팅 등...

+ 영상스트리밍

 

그밖에 '정보처리기사' 나오는 것들로 이론 공부하기

주의 :: 처음부터 기사로 공부하면 어렵다.

기능사를 공부, 개발공부를 어느정도 하고 공부하면 좋다.

자격증 시험으로서 보지 말자.

 

데이터 베이스 ::

 

전자계산기 구조 ::

시점보다 좀더 코어적인, 근본적인 부분에서 공부하기 좋다.

 

시스템 분석설계와 운영체제 ::

어떤 방식으로 프로그래밍을 해나갈 것이냐 부터 운영체제에 대한 이해를 배움으로서,

내가 동작시키는 프로그램 운영체제와 시너지를 발휘해서 동작한다는 넓은 관점에 알게된다.

 

정보통신 개론 ::

앞으로 계속 중요해진다. ( ex. 5G 시대 )

위상변조. { PSK( 위상 편이 변조 ), ACK( 응답 문자 ), , ... }

+ 뿐만 아니라, 네트워크 프로그래밍의 이론적인 부분도 배울 있다.

 

 

 

본 포스팅이 저작권자인 팀노바에 문제가 될 시 댓글 또는 atanasioPark@gmail.com 으로 메일 주시면 삭제 하겠습니다.

728x90

CRUD -> HTTP_METHOD -> SQL_Query

Create(write) -> POST -> INSERT

Read(read) -> GET -> SELECT

Update(modify) -> *PUT or PATCH -> UPDATE 

더보기

Usually used...

* PUT : All update

* PATCH : Partial update

Delete -> DELETE

I am use No "Delete query"

I actually used it like this... "UPDATE"

Modify column isDelete to "Y/N"

because, keep the data at the back end. 

 

+ Recent posts