리눅스 패키지 매니저 apt

 

apt-get update;

sudo apt-get update;

-> 설치할 수 있는 프로그램 목록 조회

 

sudo apt-cache search htop

-> htop이 들어가있는 프로그램 목록이 조회됨

 

sudo apt-get install htop

-> 프로그램 다운 받아서 설치 진행

 

sudo apt-get upgrate htop

-> htop이라는 프로그램 업그레이드 진행

업그레이드를 쉽게할 수 있는 것도 패키지 매니저의 주요 기능

 

sudo apt-get remove htop

-> htop이라는 프로그램 삭제

 

 

 

결론: 인터넷에서 제공하는 패키지 프로그램들을 쉽게 사용할 수 있게 해준다.

sudo는 super user do 의 약자이다.

리닉스의 주요 특징 중 하나는 다중 사용자 시스템이다.

 

옛날에는 PC가 너무 비싸사 한 피씨를 여럿이서 사용 했다고 함..

그러다보니 파일 관리가 제대로 안되서 한명이 제대로 관리해야 할 일이 생기기도 하는데 

그럴 때 sudo (permission super user root user) 권한을 사용한다.

그러나 평소에 잘못 싸면 엄청난 문제가 발생 할 수 있다. (ex. rm -rf / 모든 파일 삭제 ㄷㄷ)

그래서 평소에는 보통 권한으로 사용하다가 꼭 필요할 때 sudo 권한을 사용하면 된다.

 

예를 들어 파일 설치할 때

 

sudo apt-get install git

 

내가 sudo 권한을 쓸 일은 잘 없을 것 같지만

경우에 따라 관리자 권한으로 수행해야할 일이 있을 때 sudo 권한을 쓸 수 있다.

리눅스에서 디렉토리와 파일 관련된 명령어 입니다.

 

현재 머물고 있는 디렉토리 위치 기준으로 명령어가 수행됩니다.

 

ls : 현재 디렉토리 파일목록 출력 (디렉토리만 나열해서 출력)

ls -l : 현재 디렉토리 파일목록 자세히 출력 (리스트로 출력)

ls -al : 더 자세히 출력!

 

pwd : 현재 위치하고 있는 디렉토리

 

mkdir : 디렉토리 생성

 

cd 이동할 디렉토리명 : 해당 디렉토리로 이동

cd .. : 이전 디렉토리로 이동

 

cd 절대경로 (ex. /home/wokr/dic) : 선언한 절대경로로 이동

 

rm 파일명 : 파일삭제 (디렉토리 삭제 안됨)

rm -r 디렉토리명 : 디렉토리 삭제

 

명령어 --help : 명령어 관련 설명 (변수 설명 포함)

 

 

 

 

 

 

설치 없이 리눅스 명령어 실습할 수 있는 웹사이트가 있습니다.

 

codeonweb.com/

 

CodeOnWeb

Provides integrated environment with teaching, practicing and sharing. Lecture note with live running codes, communities for classes and study groups, Code sandbox to share your creatures. All on your web browser. Support Python 2/3, C/C++, PHP, Java, R, n

codeonweb.com

위 링크로 들어가시면 코드온웹(CodeOnWeb) 이라는 사이트에 들어가실 수 있습니다.

 

 

회원가입을 하시거나 페이스북/깃헙/트위터로 로그인 가능합니다.

 

 

로그인 후 위에 "실습" 아이콘을 눌러줍니다.

 

 

실습 아이콘을 눌러주면 코드를 입력할 수 있는 창이 나옵니다.

 

 

하단에 보시면 언어 및 환경을 선택할 수 있습니다.

리눅스 실습을 원할경우 shell을 선택해 주면 됩니다.

기타 파이썬, 자바 등 개발언어도 선택 가능합니다.

 

 

shell로 변경 후 간단한 명령어를 실행시켰습니다.

정상 작동 하는군요! 웹에서 제공하는 환경이라

실제 리눅스 서버보단 제한되는 부분이 많겠지만

(실행이 안되는 명령어가 있다고 함..)

간단히 실습 및 공부하기에는 좋을 듯 합니다.

 

※ Day1

■ 오프닝 키노트

 카카오톡이 준비하는 내일

 - 코로나로 인해 갑작스럽게 미래의 일상을 살게 됨

 - 오프라인의 상당 부분이 온라인으로 옮겨가면서 '일상의 디지털화' 가속화

 - 카카오톡은 비대면 상황에서 대신 증명/자산과 정보를 안전하게 지켜주는 역할 수행 예정

   (ex. 디지털 신분증, 인증서, 멀티프로필, 서랍, 지갑)

 - 구독 플랫폼 확대 누구나 편집자 & 퍼블리싱 할 수 있음 (ex. 브런치) 

   좋은 생산자들이 다양하게 활동하고 수익으로 보상받는 선순환 구조

 - 확장된 비즈니스 플랫품 (ex. 쇼핑, 렌탈서비스 인증/계약/주문)

 

 

■ 디지털화된 일상에서 카카오톡이 만드는 새로운 세상

신규 서비스 

- 톡서랍, 팀채팅, 멀티프로필, 인물 검색, 디지털 신분증

 

 

■ 비즈니스. 톡처럼 쉬워지다.

관계의 시작 : 카카오톡 채널

- 채널메세지, 비즈메세지, 챗봇, 포스트, 카카오싱크, 비즈플러그인, 월렛, 비즈니스폼

  (ex. (쇼핑몰)쇼핑, (치킨)배달, (영화관)티켓예매, (정수기)상품구독)

 

타겟의 발견 : 카카오광고

- 성과형 플랫폼 : 카카오 비즈보드, 애드뷰

클릭할 만한 광고를 내어서 적은 금액으로 효율 높이고자 함..

카카오 비즈보드 -> 카카오톡 채널 -> 파트너사 브랜드 가치 증대 -> 사용자 타게팅

 

성장을 지원 : 카카오비즈도구

- 카카오비즈도그 인증체계 일원화 -> 비즈니스 매니저 관리도구

 

고객상담센터 / 상담지원도구 / 유료상품판매지원

채널에 1:1 채팅을 개설한 상담센터를 선보일 예정이고 많은 상담사 초대해서 운영 가능.

상담 요청에 대한 업무 관리 / 업무 분배 지원 도구

상담하시는 분들과 쌓인 상담 이력이 지식 DB화 되고 AI 챗봇 및 상담 지원도구에 자연스럽게 적용 되도록

이 내용은 앞 내용인 카카오톡 채널의 상담채널 영역에서도 이 상담센터가 활용될 것으로 생각

 

 

■ 카카오를 지탱하는 기술에 대하여

기술이 없었다면 지금의 카카오는 존재하지 않았을 것.

이번에 소개할 기술 내용

- mongoDB 활용

- 오픈소스를 활용한 hive 테이블 모니터링 시스템 구축

- 무중단 CDC 기술

- 쿠버네티스를 엔터프라이즈에 도입할 때 유의점

- 9run으로 멀티 클라우드를 싱글 클라우드처럼 사용하는 기술

 

카카오의 일하는 방식

- Open work 세션에서 공개

- 협업과 커뮤니케이션, 도전과 성장, 개발의 가치

 

 

https://if.kakao.com/

 

if(kakao)2020

오늘도 카카오는 일상을 바꾸는 중

if.kakao.com

 

파이썬에서 print 문을 통해서 문자를 출력 할 수 있습니다.

파이썬에서는 다양한 방식으로 print를 사용하 있도록 지원하고 있습니다.

# 기본출력
print('Hello World!')
print("Hello World!")
print("""Hello World!""")
print('''Hello World!''')

# 출력결과
Hello World!
Hello World!
Hello World!
Hello World!

따움표를 ' 로 해도 "로 해도 동일하게 인식합니다.

양 따움표의 갯수가 맞으면 오류 없이 수행합니다.

# Seperator 옵션
print('T','E','S',"T", sep='')
print('2020','01','31', sep='-')
print('honggildong','kakao.com', sep='@')

# 출력결과
2020-01-31
honggildong@kakao.com

Seperator 옵션을 활용하여 문자열에 구분을 넣어줄 수 있습니다.

 

# end 옵션
print('Have a', end=' ')
print('nice day', end=' ')
print('everyone')

# 출력결과
Have a nice day everyone

end 옵션을 활용하여 문장의 끝 값을 설정할 수 있습니다.

 

# format [], {}, ()
print('{} and {}'.format('You','Me'))
print("{0} and {1} and {0}".format('You','Me') )
print("{a} are {b}".format(a='You', b='Me'))

# 출력결과
You and Me
You and Me and You
You are Me

format을 활용하여 괄호 안에 값을 셋팅할 수 있습니다.

 

# %s : 문자, %d : 정수, %f : 실수
print("%s's favorite number is %d" % ('Claire', 3))

print("Test1: %5d, Price: %4.2f" % (776, 6534.123))
print("Test1: {0: 5d}, Price: {1: 4.2f}".format(789, 4567.123))
print("Test1: {a: 5d}, Price: {b: 4.2f}".format(a=789, b=4567.123))

# 출력결과
Claire's favorite number is 3
Test1:   776, Price: 6534.12
Test1:   789, Price:  4567.12
Test1:   789, Price:  4567.12

%s, %d, %f 를 활용하여 데이터 타입별로 print문에 값을 셋팅할 수 있습니다.

 

# Escape 코드
# \n : 개행
# \t : 탭
# \\ : 문자
# \' : 문자
# \" : 문자
# \r : 캐리지 리턴
# \f : 폼 피드
# \a : 벨 소리
# \b : 백 스페이스
# \000 : 널 문자

print("'you'")
print('\'\'')
print('"you"')
print("""'you'""")
print('\\you\\\n\n\n\n')
print('\t\t\ttest')

# 출력결과
'you'
''
"you"
'you'
\you\




                        test

escape 코드를 통해서 ", \, 탭 등을 print문에 입력 할 수 있습니다.

'IT > 파이썬' 카테고리의 다른 글

[파이썬 기초] 가상환경 명령어 기초  (0) 2020.10.03
[파이썬 기초] 파이썬(python) 설치하기  (0) 2020.10.03

- 가상환경 실행 / 해제 -> (윈도우: Script, 맥: Bin)폴더

명령 프롬포트(cmd) -> 아래와 같이 명령어 수행

 

해당 경로에 가서 새로 생긴 Include, LIb, Script 폴더 확인

 

- 가상환경 실행 / 해제 -> (윈도우: Script, 맥: Bin)폴더

가상환경 실행

해당 경로 폴터 이동 -> Scripts 폴더로 이동 -> activate.bat 실행

 

가상환경에서 나오고 싶을 경우 deactivate.bat 실행

 

- 패키지 설치 및 삭제

패키지가 있는지 검색 pip search 패키지명

 

pip install 패키지명 -> 엔터 -> 설치완료

 

삭제 할 시 pip uninstall 패키지명

 

이미 설치되어 있는 패키지를 버전 업그레이드 하고 싶을 경우

pip install --upgrade 패키지명

 

- 패키지 리스트 출력

pip list 입력 시 설치되어있는 패키지 리스트 출력

 

- 패키지 탐색

필요한 패키지를 찾고 싶을 경우 pip search 패키지명*

 

설치된 특정 패키지의 정보를 보고 싶을 때 pip show 패키지명

 

- 가상환경에서 VSCODE 실행

code 실행

실행 된 VSCode에서 simplejson import & 코드 넣고 Run!

 

** 가상환경에 설치 된 패키지를 인식 못하고 ModuleNotFoundError 에러 나올 경우

파이썬 인터프리터 경로를 엉뚱한 것으로 선택 했을 경우 가상환경 파이썬 인터프리터로 다시 셋팅

View > Command > Palette > Select Interpreter 에서 새로 구성한 가상환경 vene 경로 python.exe로 설정

참고: https://blog.naver.com/9ele_eter/221909347296

** VSCode에서 Run은 되나 PowerShell 권한오류 (PSSecurityException) 발생할 경우

VSCode 창에서 Set-ExecutionPolicy Unrestricted 입력

참고: https://benfatto.tistory.com/36

'IT > 파이썬' 카테고리의 다른 글

[파이썬 기초] print 구문의 이해  (0) 2020.10.03
[파이썬 기초] 파이썬(python) 설치하기  (0) 2020.10.03

파이썬을 시작하기 위해서 먼저 파이썬 설치 시작!

1. 구글에서 python download 검색 -> Python 3.8.3 클릭

 

2. Windows x86-64 executable installer 다운로드

3. VS Code 다운로드

 

4. python 3.8.3 설치 & VS Code 설치

** Add Python 3.8 to Path 체크하기!!

 

 

5. cmd창(명령 프롬프트)에서 파이썬 정상 설치여부 확인

 

6. VS Code에서 python 플러그인 설치

7. 파이썬 코드 입력 -> Run without Debugging (ctrl + F5) -> 정상동작 확인

'IT > 파이썬' 카테고리의 다른 글

[파이썬 기초] print 구문의 이해  (0) 2020.10.03
[파이썬 기초] 가상환경 명령어 기초  (0) 2020.10.03


화면에 표현할 값을 여러 API에서 데이터를 받아올 때
화면에 특수문자가 제대로 나타나지 않을 것을 대비하여 숫자표현, 문자표현을 사용하여 전송 합니다.
  같이 space는 외웠는데 모든것을 다 외울 수가 없어서 매번 햇갈려서
제가 필요할 때마다 찾아보기 위해서 HTML 특수문자 리스트 포스팅을 작성합니다!

표현문자

숫자표현

문자표현

설명

space

	

-

수평탭

space




-

줄삽일

space

 

-

여백

!

!

-

느낌표

"

"

"

따옴표

#

#

-

숫자기호

$

$

-

달러

&

&

&

Ampersand

'

'

-

작은 따옴표

(

(

-

왼쪽 괄호

)

)

-

오른쪽 괄호

*

*

-

아스트릭

+

+

-

더하기 기호

,

,

-

쉼표

-

-

-

Hyphen

.

.

-

마침표

/

/

-

Solidus (slash)

0 - 9

0-9

-

0부터 9까지

:

:

-

콜론

;

&#59;

-

세미콜론

<

&#60;

&lt;

보다작은

=

&#61;

-

등호

>

&#62;

&gt;

보다 큰

?

&#63;

-

물음표

@

&#64;

-

Commercial at

A - Z

&#65; - &#90;

-

A부터 Z까지

[

&#91;

-

왼쪽 대괄호

\

&#92;

-

역슬래쉬

]

&#93;

-

오른쪽 대괄호

^

&#94;

-

탈자부호

_

&#96;

-

Acute accent

a - z

&#97; - &#122;

-

a부터 z까지

{

&#123;

-

왼쪽 중괄호

|

&#124;

-

수직선

}

&#125;

-

오른쪽 중괄호

~

&#126;

-

꼬리표

 

&#160;

&nbsp;

Non-breaking space

¡

&#161;

&iexcl;

거꾸로된 느낌표

&#162;

&cent;

센트 기호

&#163;

&pound;

파운드

¤

&#164;

&curren;

현재 환율

&#165;

&yen;

|

&#166;

&brvbar;

끊어진 수직선

§

&#167;

&sect;

섹션 기호

¨

&#168;

&uml;

움라우트

&#169;

&copy;

저작권

ª

&#170;

&ordf;

Feminine ordinal

&#171;

&laquo;

왼쪽 꺾인 괄호

&#172;

&not;

부정

­

&#173;

&shy;

Soft hyphen

?

&#174;

&reg;

등록상표

¯

&#175;

&macr;

Macron accent

 

추가 특수문자는 아래 링크 참조

http://kor.pe.kr/util/4/charmap2.htm

Jackson ObjectMapper 로 가져온 JSON MAP으로 꺼내기

사내 시스템에서 외부 API를 JSON으로 받아오는 부분이 있는데

이 받아온 JSON을 Jackson으로 변환한 후 Map형식으로 변환한 데이터를

화면 프레임워크에 IO로 전달하는 방식으로 구현되어 있었다.

그런데 화면 프레임워크 IO에서 계층 JSON을 변환 지원을 못한다고 한다.

특정 업무에서 계층형 JSON을 전달받는 API가 있는데

계층 안에 들어가있는 값을 화면에서 써야 되서

Jackson에서 JSON 변환한 Map 객체에서

계층으로 들어가 있는 Map 객체를 꺼내고 다시 가공해서 화면으로 보내도록 개발했다.

 

public class ResponseClass {
    private String id;
    private Object result;
    private Object detail;
    
    pubic void setId(String id) {
        this.id= id;
    }

    public String getId() {
        return id;
    }

    pubic void setResult(Object result) {
        this.result = result;
    }

    public Object getResult() {
        return result;
    }

    pubic void setDetail(Object detail) {
        this.detail= detail;
    }

    public Object getDetail() {
        return detail;
    }

우선 위와 같이 응답받은 JSON을 변환할 setter/getter class를 만든다.

 

// 응답받은 JSON
String sJson = "{\"id\":\"aa\", \"result\": {\"code\": \"00\", \"detail\":{\"val\":\"hi~\"}}}";

// readValue로 데이터 클래스에 꺼내오기
ResponseClass oConts = new ObjectMapper().readValue(sJson , ResponseClass);

// MAP으로 변환 된 계층 JSON값 가져오기
Object oDetail = ((Map<String,Object)) oConts.getResult()).get("detail");

// detail 객체 셋팅
oConts.setDetail(oDetail);

JSON 안에 계층으로 들어가있는 JSON은 Map으로 변환되고

그 안에 있는 JSON도 Map으로 변환되는 구조이다.

(Jackson을 처음 수정해봐서 Map으로 변환되는걸 몰라서 삽질 한참 했음ㅠㅠ)

그런데 프레임워크에서 단일 map만 io로 지원을 해줘서

각각 꺼내서 화면으로 넘겨줘야 했다.

그래서 result Map에서 detail 맵을 꺼내서 셋팅 해주었다 !!

+ Recent posts