반응형
반응형

📝Archive File

Archive(기록물 보관소) File은 종종 파일 및 폴더의 압축된 형태를 가리키기도 합니다. 이것은 파일 크기를 줄이고 파일을 묶어서 보관하거나 전송하기 위한 목적으로 사용됩니다. 알려진 압축 형식에는 ZIP, RAR, TAR 등이 있습니다 → 압축 파일이라고 생각하면 된다

 

📝tar

리눅스에서 사용되는 압축방식으로 용량을 압축하지는 않습니다

덕분에 매우 빠르게 압축이 진행되고 CPU 사용률도 높지가 않습니다 그래서 tar를 사용하면 순식간에 압축 파일이 생성 됩니다

 

📝gzip (.gz)

리눅스에서 용량을 줄여서 압축할때 사용하는 방식

 

📝War (Web Application Archive)

Servlet / Jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축파일 포맷으로 웹 관련 자원이 포함 되어있다 → JSP, Servlet, JAR, Class, XML, HTML, Javascript

별도의 웹서버(WEB) or 웹 컨테이너(WAS) 필요하다 즉, JAR파일의 일종으로 웹 애플리케이션 전체를 패키징 하기 위한 JAR 파일이다.

 

📝Jar (Java Archive)

JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일라이브러리라고 생각하면 된다

SpringBoot에서는 일반적으로 배포할 때 Jar를 사용하는데 JSP를 사용하거나 등의 이유가 아니면 War가 아닌 Jar로 개발하는게 좋습니다

 

🔗 참고 및 출처

https://ifuwanna.tistory.com/224

반응형
반응형

📝telnet

텔넷을 이용하면 접속 가능한 네트워크에 있는 컴퓨터를 자신의 컴퓨터처럼 파일 전송, 파일 생성, 디렉토리 생성 등을 자유롭게 할 수 있다 (원격으로 컴퓨터를 조종하는 거처럼 물론 거의 터미널형태) 단, 보안문제로 사용률이 감소하고 원격 제어를 위해 SSH로 대체되는 추세

 

📝ssh

telent에 보안을 적용시킨 것

 

📝sftp

ftp에 ssh 보안을 추가시킨 것이다

 

📝putty

서버는 물리적으로 떨어져 있어도 단말 장비를 통해서 원격으로 접속하여 작업할 필요가 있는데 이 때 윈도우같은 개인 pc 운영체제에서도 서버로 접속할 수 있도록 물리적인 단말장비가 아닌 논리적인 가상 단말기를  제공 (ssh, telent 등을 쉽게 쓰기 위한 툴)

 

📝CentOS 와 RedHat

레드햇(회사)은 리눅스를 유료버전과 무료버전을 동시에 서비스 했지만,현재는 레드햇에서 9.0버전 이후로

무료 리눅스를 배포하지 않고 있다. 레드햇은 GPL라이선스를 따야하는 이유로 소스를 공개해 왔다.

공개된 레드햇 리눅스의 소스코드를(심지어 유료버전) 그대로 복사해서 로고만 바꿔서 만들어낸 것이 CentOS이다.

사실 그래서 유료인 레드햇 리눅스와 무료인 CentOS는 완전히 동일한 기능과 성능을 제공한다.

 

그렇다면 유료인 레드햇을 사용할 이유가 없는것이라 생각할 수 있지만,

레드햇을 사용할 경우에는 레드햇사의 각종 기술지원을 받을 수 있는 장점이 있다.

 

아이러니하게도 레드햇을 그대로 카피한 CentOS를 레드햇사에서 2014 인수해 버린다.

보통 상용버전인 레드햇 엔트프라이즈의 새 버전이 릴리즈 되면 1~6개월정도 후에 CentOS가 발표된다. 

반응형
반응형

https://www.oracle.com/java/technologies/downloads/#java8

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

 

리눅스 버전의 JDK를 먼저 설치해야합니다. 여기에선 8버전이지만 저는 1.7버전으로 진행했습니다.

linux의 64비트의 리눅스전용 알집 tar.gz입니다.

 

/home 에 따로폴더를 만들어서 jdk를 넣어줬습니다.

외부 파일을 리눅스에 넣는 법은 앞에 포스팅한 걸 봐주시면 됩니다.

 

tar xvf 압축풀 tar.gz 파일명으로 압축을 풀어주세요

 

이렇게 압축이 잘 풀어진 걸 확인할 수 있습니다. 

루트에 user/local 폴더를 만들어주시고 jdk-17폴더를 옮겨주세요 그리고 local폴더로 이동합니다.

(작업 공간을 바꾸는 거 뿐입니다.)

 

거기서 jdk-17을 java란 이름으로 심볼릭링크를 만듭니다.

vi /etc/profile로 환경변수를 위와 같이 수정해주세요 위에 경로 /usr가 아니라 저희는 user로 만들었으니 /user입니다.

source /etc/profile로 적용해줍니다.

javac -version 과 java -version으로 제대로 적용 됐는지 확인할 수 있습니다.

 

이제 톰캣을 설치하겠습니다.

 

http://tomcat.apache.org/download-80.cgi

 

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Welcome to the Apache Tomcat® 8.x software download page. This page provides download links for obtaining the latest versions of Tomcat 8.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions

tomcat.apache.org

톰캣을 리눅스 서버에 넣어주세요 위치는 /user/local/server 입니다.

server폴더가 없으므로 만들어주세요

 

(위에 사진하고 본인이 작업하는 거하고 다를텐데 제가 뒤죽박죽으로 해서 그렇고

어차피 server폴더에서 작업할 거라서 server폴더에 압축 푸시면 됩니다.)

tomcat또 심볼릭링크를 만들어주겠습니다.

vi /etc/profile 을 이용해 톰캣 환경변수도 추가하겠습니다.

source /etc/profile 을 이용해 적용시키겠습니다.

 

firewall-cmd --permanent --zone=public --add-port=8080/tcp (톰캣 8080 포트 열기)

firewall-cmd --permanent --list-all 을 이용해 포트가 제대로 열렸는지 확인이 가능합니다.

 

/user/local/server/tomcat/bin/startup.sh 로 톰캣을 실행시킬 수 있습니다.

/user/local/server/tomcat/bin/shutdown.sh 로 톰캣을 중지시킬 수 있습니다.

 

윈도우에서 이제 리눅스서버IP:8080 이라고 치시면 저러한 화면이 나오면 성공입니다.

 

 

반응형
반응형

📝비난이 아닌 사실을 이야기해라

 

📝프레임워크에 맞는 기술을 써라

  • 스프링프레임워크를 쓰며 스프링프레임워크에서 만든 걸 쓰는게 좋다 (스프링이 아니라 그 안에서 서블릿을 쓴다는 등에 행위는 지양하는 게 좋음) 그리고 웬만해서 유명한 걸 써라

 

📝개발자는 자기 영역에만 최선을 다한다

  • 개발은 기본적으로 잘해야(다양한 기술 선택지)하며 같이 협업하는 기획자, 디자이너 등… 다양한 직군 존중을 해야한다 만약 정말 필요한 의견을 낼 때는 상대방의 허가 또는 조심스럽게 양해를 구하며 이야기를 한다

 

📝라이브러리를 활용할 때 공식버전의 라이브러리를 사용하고 의존적이지 않는게 좋다

  • 예를 들어서 Oracle DB에서 제공하는 테스트 함수가 있고 Java표준인 Javax의 테스트 함수가 있는데 Oracle DB에서 제공하는 테스트 함수를 사용할 경우 여러가지 Side Effect가 생길 수 있다길 수 있다. 만약 MySQL로 변경했을 때 MySQL에 있는 테스트 함수는 Oracle이나 다르거나 없을 경우 모든 코드를 수정해야할 수 있다 그리고 스프링의 의존적이면 스프링 프레임워크가 구축되어야 테스트나 할 수 있기 때문에 제약사항이 많이 생긴다 [스프링 점유율이 어마무시해서 이 부분은 거의 Trade off 가 없긴 하다]

 

📝공부는 복리이다

  • 빨리 배우는게 좋다 앞서 배운 내용으로 다음 공부를 하기 수월해진다

 

📝사용하는 제품의 호환성을 따져라

  • 어떤 버전을 쓰느냐는 정말 중요하다 여러 프로그램을 쓸텐데 그 프로그램들 끼리 버전호환이 안 되면 잘 만들었어도 안 돌아간다
  • 예) jdk 버전이 다른 경우 , 톰캣 버전이 다른 경우 등...

 

📝API 등 비즈니스 로직을 만들 때 다른 이상한 값을 못 넣게 아예 사전에 차단하도록 설계해라

  1. 예를 들면 Code를 String으로 선언한 경우 01, 02 이렇게 넣어야하는 경우 어떤 사람이 04 이런식으로 넣어서 문제를 일으킬 수 있다. 만약 Enum을 이용한 자료구조를 사용한다면 사전에 에러를 방지할 수 있다
  2. 운영 디비에는 접근 못하도록 막던가 계정 권한을 달리주는 등 반드시 필요한 조건이다

 

 

📝나의 프로젝트를 공유할 때 WAS와 IDE도 같이 배포한다.

  • 위와 같이 제품 호환성 때문에 다른 환경에서도 돌아가기 위해서 IDE(이클립스)와 1개의 프로젝트(workspace)와 1개의 WAS(Tomcat)를 세트로 묶어서 제공해준다.

 

📝여러번 확인하기

  • 문서를 배포하든 프로그램 테스트를 하든 문자를 보내든 여러번 검토한다.
  • 문자나 이메일의 경우 2 ~ 3번 정독을 하고 문서를 배포할 때도 2 ~ 3번 정독을 한다.
  • 프로그램 테스트를 하고 문제가 생겨서 고친 후에는 다시 처음부터 테스트를 다시 시작한다. (관계 있는 부분 즉, 영향을 받는 부분은 모두 다시 테스틀 처음부터 다시해야한다)

 

📝문서화를 잘 해라

  • API 명세 등 아무것도 모르는 상대방이 읽었을 때 읽기 쉽고 이해하기 쉽게 만들어야한다.

 

📝버그가 일어날 시

  • 해당 버그 원인 파악 후 직접 재연 후 해당 버그 고치고 다시 해당 버그 재연해 테스트해 문제 없음 증명 후 배포한다.

 

📝피드백을 잘해라

  •  내가 하는 일이 맞는지 능동적으로 움직이며 체크한다 (내가 하는 일이 이게 맞는지 상사에게 체크를 한다)

 

📝외부 일정은 최대한 길게 잡아라

  • 아직 고민중... 하지만 너무 짧게 잡지는 마라... 전 회사가 너무 병신같아서 5일 걸릴 일 하루만에 끝내라고 한 경우가 부지기수라 밤새서한 적도 부지기수였음

 

📝데이터 관리를 잘해라

  • 을 넘겨받을 때 "빈값"인지 체크하고 Default 값을 넣던가 반드시 필요한 값이면 required로 에러를 방지해야한다

 

📝개인면담을 가져라

  • 팀장인 경우 개인 면담을 가져서 일에 대한 불만 및 이슈사항이 있는지 체크를 해야하고 개선해야 한다.

 

📝말 잘 하는 법

  1. 예시를 들며 설명하고 맨 마지막에 결론을 한 번 더 이야기하기
  2. 상대방의 이야기를 듣고 생각한 다음에(3초 이상+심호흡) 이야기하기 [재촉시에는 잠시만요 컨트롤하기]
  3. 아이컨택과 제스처가 중요하다
  4. 여러 사람과 이야기할 때는 한 문단씩 이야기하면서 시선을 옮겨가며 이야기하기

 

📝DB 설계

  • 너무 큰 확장성을 고려한 설계독이 될 수 있으므로 조심해야한다.

 

📝프로젝트 산정일 설정

  • 야근해서 개발을 마치거나 미리 리소스를 크게 잡아 일을 시작하게 되면 개발자나 회사 모두에게 부담이 될 수 있기 때문에 개발자는 자기자신의 개발 속도를 객관적으로 판단할 수 있는 능력이 필요하다 → 자신의 실력 및 맡은 일이 어느정도 공수가 드는지 알 수준이 되어야 판단할 수 있다 즉, 어떤 일이고 어떤 프로세스로 돌아갈 지 사이드이펙트 등 많은 경우의 수가 떠올라야한다

 

📝실력이 늘지 않는다

  1. 적절하지 않은 난이도
    1. 너무 낮으면 지루함을 느끼고 너무 높으면 불안감을 느끼게 되니 알아서 조절을 잘 해야한다
    2. 높은 경우는 버텼을 때 차라리 도움이라도 되는데 너무 낮으면 진짜 정체
  2. 회사 문화
    1. 새로운 기술을 두려워하지말며 적용시키며 피드백을 받고 실수를 고쳐나갈 수 있는 환경이 필요하다 즉, 실수를 잘 들어줄 수 있는 회사 환경이 중요하다
  3.  본질을 이해해라
    1. 그냥 무작정 가져다 쓰는게 아니고 심도 있게 이해를 한다면 [데이터의 흐름 등...] 다른 프레임워크나 기술을 쓰더라도 많은 도움이 된다

 

반응형
반응형

리눅스 서버 IP를 직접 설정할 수도 있습니다. nmcli dev status인터넷들의 연결상태를 볼 수 있습니다.

 

cd /etc/sysconfig/network-scripts/ 로 들어가주세요. 거기서 ls치면 사람마다 다른 네트워크 설정하는 파일이 있습니다.

vi로 열어주세요

 

처음에 이러한 화면입니다. 이걸 밑에 처럼 수정해주세요

 

들어가면 이러한 화면인데요 IPV6는 사용 안 하니 주석처리 해주세요

IPADDR에 x는 2~ 255 사이로 정해주시면 됩니다.

 

넷마스크로 255.255.255.0 은 앞에는 고정적이로 0인 부분은 0 ~ 255를 사용가능하다는 소리입니다.

게이트웨이는 192.168.1.1 로 되어있는데 아이피랑 앞에 세개랑 같아야 합니다.

(왜 3개냐면 넷마스크 255.255.255로 고정적이라서)

그래서 아이피는 뒤에 겹치지 않는 걸로 0 ~ 255를 설정할 수 있습니다.

 

이제 적용하기 위해서 네트워크를 껏다 켜야합니다.

 

화면에 파란색 부분에 끄기 버튼을 누르면 꺼지고 다시 들어가면 키기 버튼으로 바뀝니다.

그런식으로도 네트워크를 껏다 킬수도 있습니다.

 

ifdown 인터페이스명 (여기에선 ifup enp0s3) 해당 네트워크 끄기

ifup 인터페이스명 (여기에선 ifup enp0s3) 해당 네트워크 키기

 

nmcli dev status 다시 한번 로 확인해보면 연결된 것을 알 수 있습니다.

 

또는 버츄얼박스에서 직접 설정도 가능합니다.

 

유선 네트워크 설정으로 들어가주세요

 

 

 

⚠️주의점

이러한 짓을 할 거면 NAT랑 브릿지에 대한 이해가 해박하신 분이 아닌 이상 따로 이렇게 할 필요 없습니다.

보통은 어떤 방식을 사용하는지 포스팅 해놨으니 보시면 이해가 가실 겁니다. 

반응형
반응형

리눅스서버에다가 윈도우에 있는 파일을 넣도록 하겠습니다.

 

📝파일질라

https://filezilla.softonic.kr/

 

FileZilla

신난다 무료 FTP 클라이언트

filezilla.softonic.kr

 

설치 다하면 이러한 화면이 나옵니다.

 

먼저 설정해서 해줘야 하는게 있습니다.

 

네트워크 탭에 들어가시면 다음에 연결됨이 있는데 이걸 어댑터에 브리지로 해주세요. 왜 바꾸는 거에 대한 설명은 따로 포스팅 했습니다.

 

리눅스 서버를 열어주시고 터미널을 여시고 ifconfig를 입력해주세요. 그러면 리눅스 ip를 볼 수 있습니다. inet뒤에 있는게 리눅스 서버의 아이피입니다.

 

 

접속할 리눅스 아이피랑 그 사용자 명과 비밀번호와 포트번호는 22로해서 접속해주시면 오른쪽에 리눅스환경 디렉토리가 보여질 것입니다. 드래그해서 윈도우에 쓰시는 거처럼 밖으로 옮겼다 넣었다 할 수 있습니다.

 

파일질라의 장점은 대용량 파일 전송에 있어서 빠르다는 장점이 있습니다.

 

📝Mobaexterm (추천)

https://mobaxterm.mobatek.net/

 

MobaXterm free Xserver and tabbed SSH client for Windows

The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!

mobaxterm.mobatek.net

 

그냥 계속 다음 누르시면 됩니다.

 

SSH 누르시고 리눅스 아이피랑 specify username 체크해주시고 리눅스 사용자 아이디 해주시고 오케이 이후에 패스워드 입력해주시고 나머진 OK 누르시고 이거만 Cancle 해주시면 됩니다. (마스터 비밀번호 설정인데 넘어가셔도 무방)

 

 

왼쪽에 리눅스 디렉토리 보이는데 윈도우에서 드래그해서 파일을 넣을수도 뺄 수도 있습니다.

 

mobaexterm은 ssh로 리눅스 조작 기능도 제공함과 동시에 FTP기능도 지원해 줍니다. 하지만 파일질라보다는 대용량엔 좀 속도가 더디다는 점이 있습니다. (별 차이 없음)

 

📝Power Shell

윈도우에 깔려있는 PowerShell을 이용해서 보낼 수도 있습니다.

 

scp 파일명 리눅스계정@리눅스IP:저장할곳

scp hello.jpg root@14.37.116.185:/home

 

 

반응형
반응형

 

버츄얼 박스를 먼저 설치해주세요

 

https://www.virtualbox.org/

 

Oracle VM VirtualBox

Welcome to VirtualBox.org! News Flash Important May 17th, 2021We're hiring! Looking for a new challenge? We're hiring a VirtualBox senior developer in 3D area (Europe/Russia/India). New July 28th, 2021VirtualBox 6.1.26 released! Oracle today released a 6.1

www.virtualbox.org

 

 

실행 시키고 그냥 쭉 Next 누르시면 됩니다.

 

 

기본 머신 폴더를 지정하면 가상 머신들의 기본 이미지 폴더를 지정할 수 있어 관리에 효율적입니다.( 그냥 가상머신을 가져오거나 내보내거나 할 때 좋다는 소리인 거 같습니다.)

 

이제 CentOS를 설치하겠습니다.

 

https://www.centos.org/download/

 

Download

As you download and use CentOS Linux or CentOS Stream (What's the difference?), the CentOS Project invites you to be a part of the community as a contributor. There are many ways to contribute to the project, from documentation, QA, and testing to coding c

www.centos.org

 

아무거나 들어가도 상관 없습니다.

 

이 파일을 다운로드 해주세요(용량이 가장 크다는 특징이 있음)

 

버츄얼박스를 여시고 새로만들기를 합니다.

 

이름은 자기가 정하고 싶은대로 정하면 됩니다.

머신폴더는 위에서 설정했습니다.

종류는 리눅스입니다.

버전은 Red Hat

 

 

자기 마음대로 정하면 되는데 여유 없으면 1기가로 여유 있으면 2기가로 잡아주시면 됩니다.

 

가상하드 디스크를 추가하지 않음

  이후에 가상 하드 디스크를 추가해야 하기 때문에 사용할 필요가 없는 옵션

  

지금 새 가상 하드 디스크 만들기

  이후 하드디스크를 만드는 작업을 수행(머신 신규 생성 시에는 일반적으로 이 옵션을 선택)

 

기존 가상 하드 디스크 파일 사용

  머신만 생성하고 기존하드 디스크를 이용하여 운영하기 위한 옵션으로 많이 쓰이지는 않는다.

  그냥 머신만 만들고 그 가상화 안에는 거는 내 실제 하드를 이용해서 운영하는 거 같음

 

 

저는 두번째거로 만들겠습니다.

 

 

 

VID(Virtual Disk Image)

  VirtualBox에서만 사용가능한 포멧 방식

VHD(Virtual Hard Disk)

  Oracle VirtualBox, MS Hyper-V, Citrix Xen에서 구동이 가능한 포멧 방식

VMDK(Virtual Machine Disk)

  Oracle VirtualBox, VMWare의 VMWare Player에서 구동이 가능하 포멧 방식

  필자는 VirtualBox와 VMWare Player를 주로 사용하기 때문에 VMDK 방식을 선택

 

 

저는 VMDK로 하겠습니다.

 

저는 동적할당 하겠습니다.

 

자기가 필요한 만큼 하드디스크를 할당해주면 됩니다. 저는 25GB로 설정하겠습니다.

 

 

다운로드 받은 CentOS를 지정하고 확인을 눌러주세요

 

 

Enter 눌러주세요

 

 

 

사진을 못찍었는데 이 밑에 사진에 설치목적지에 할당하라고 나올 것입니다.

설치 목적지 들어가시면 이렇게 나옵니다.

 

오토매틱은 자동 할당인거고 Custom이라고 되어있으면 파티션을 내가 어떻게 할당할 것인지 설정이 가능합니다.

 

Root 암호를 설정하면 설치 시작이 활성화 됩니다. 설치해주세요

 

설치후 라이센스 정보에 동의해주세요

 

만들 사용자를 관리자로 설정해주세요 저는 이렇게 사용자를 생성하겠습니다.

(관리자로 설정했는데 root 그룹으로 들어가있진 않네요) 괜찮습니다. 나중에 변경 가능해요

 

로그인 하면 여러가지 나오는데 그냥 다음으로 다 넘어가면 됩니다.

 

저희는 GUI 버전으로 설정했기 때문에 이렇게 GUI버전으로 보이는 것입니다.

만약 그냥 아무것도 선택 안 하면 터미널만 덩그러니 있을 거고 

거기에 필요한 명령어도 없어서 그에 필요한 것도 깔아야 하는 상황이 옵니다.

지금껏 Window키 + L 이나 작업관리자로 빠져나왔는데 그걸 설정하겠습니다.

오른쪽 밑에 Right Control이라고 적힌 곳에 오른쪽 마우스 누르시고 키보드 설정 눌러주세요

 

 

여기서 자기가 편한걸로 하시면 됩니다.

저 같은 경우는 Shift + Ctrl 로 했습니다. (두 키의 조합도 가능합니다.)

 

 

반응형
반응형

📝로드밸런싱

근래들어 L7을 많이 이용하고 이전에 많이 사용하던 장치는 L4였습니다. (L7, L4는 기계 장치입니다.)

서버 부하 분산을 위해 로드밸런서를 이용합니다.

물리적 프로세서 간에 작업을 스케줄링 해 놀고 있는 장비에 분산시켜 서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 장치 또는 기술을 말합니다.

 

📝NAT(Network Address Translation)

내부 네트워크의 사설 IP 주소를 외부 네트워크에서 사용할 수 있는 공인 IP 주소로 변환해줍니다. 공유기나 라우터 같은데에서 사용되는 기술입니다.

 

📝NAT 테이블

내부 네트워크에서 요청 트래픽이 어디서 왔고 어디로 가야하는지를 기록합니다. 기본적으로 자동적으로 NAT 테이블은 생성됩니다. 예를 들면 내부 로컬 PC에서 어떤 사이트를 접속하면 그 사이트로 요청을 보낼테고 그 응답을 공인 IP를 거쳐서 로컬 PC로 보내야하는데 여러대일 경우 어디로 가야할지 모르기 때문에 그걸 도와주는 역할을 한다.

 

📝NAT (가상화)

호스트 PC인 내 로컬 PC가 게이트웨이 역할을 하며 내 PC를 통해서 데이터가 나가기 때문에 내 로컬 PC가 공유기처럼 되며 직접 사설 IP를 할당해줘서 실제 공유기가 내려주는 사설 IP랑 다른 대역대를 가진다. (로컬 PC 사설 IP 대역이 192.168.1.0/24일 경우 이거랑 다른 대역대를 가지게 된다.)

 

 

 

📝브리지 (가상화)

공유기가 주는 사설 IP를 그대로 할당 받는다. 그래서 로컬 네트워크에 포함된 형태이며 직접 통신합니다. (사설 IP 대역이 192.168.1.0/24일 경우 이 내에서 받게 된다.)

 

    

 

📝IP공유기

최대 255개의 장치까지 IP 주소를 할당해줄 수 있습니다. 또한 무선기능도 지원해줍니다.

공유기를 보면 색이 다른 곳이 있는데 모뎀에서 받은 메인 랜포트를 꼽는 곳입니다.

다른 포트들에 컴퓨터와 같은 장치들과 랜선을 연결하면 IP주소(사설IP)가 분배되어 인터넷 사용이 가능해집니다.

하지만 일반적인 가정에서 포트가 4개이기 때문에 더 많은 랜포트를 이용하기위해서 스위치허브가 필요합니다.

 

 

📝모뎀

통신사에서 주는 대역폭을 받아오는 장치입니다.

이걸 통해 공유기로 여러개의 컴퓨터에 인터넷이 들어오게 할 수 있습니다.

공인IP를 받는 역할 (모뎀 + 공유기 형태도 있다.)

 

 

🔗 참고 및 출처

https://kejdev.github.io/etc/2024/03/11/NAT%28NetworkAddressTranslation%29.html

 

반응형
반응형

📝사소한 팁

 

Tap

어느정도 치다가 Tap 누르면 자동 입력(로그가 있어야지 자동생성 됨)

   

방향키 위, 아래

최근에 입력한 명령어 불러오기 가능

 

ctrl + Insert

윈도우 내용 복사

 

Shift + Insert

윈도우 내용 붙여넣기

 

ctrl + alt + f2 ~ f6 

가상 콘솔(가상 데스크톱)

 

📝리눅스 명령어

 

useradd 아이디

리눅스 계정 생성

 

passwd 아이디

생성한 계정의 패스워드 부여

 

pwd (print working directory)

현재 위치한 디렉토리 경로 출력

 

cd (change directory) 

경로 이동 (cd 경로명)

../ = .. 상위 디렉토리
/home home 디렉토리

 

ls (list)

현재 위치한 디렉토리 내의 목록을 확인 (ls -l 현 디렉토리 상세 목록 확인)

 

cat (concatenate)

파일 내용물 보기 (cat 파일명)

 

mkdir (make directory)

디렉토리 생성 (mkdir 디렉토리명)

 

touch

최신 수정일로 변경 만약 특정옵션이 사용되지 않는다면 파일의 크기가 0인 빈 파일을 생성한다.

(touch 파일명)

 

 rm (remove)

 파일 삭제 (remove 파일명)

 파일과 디렉토리 전부 삭제 (rm -rf 디렉토리명)

 

 rmdir (remove)

 디렉토리 삭제

 

 head

 처음 10줄만 파일 내용보기 (head 파일명)

 (head -n 표시할줄수 파일명 파일에서 처음 몇 줄을 볼지 정할 수 있다.)

 예) haed -n 20 1.txt

 

 tail

 끝 10줄만 파일 내용 보기 (tail 파일명)

 tail -n 표시할줄수 파일명 파일에서 마지막으로 부터 몇 줄을 볼지 정할 수 있다.)

 예) tail -n 20 1.txt

 

 find

 문자로 파일, 폴더 찾기 (find 경로 -name 파일명 전체에서 파일명을 찾아준다.)

 현재 경로로 부터 어디에 위치했는지 보여줌

 예) find / -name '*error_log*'

 예) find / -name "*.txt"

 예) find / -name '*error_log*' 2> /dev/null (허가 거부시 무시하고 출력)

 

 yum 

 프로그램, 모듈(라이브러리) 설치 (CentOS)

 예 ) yum ~~~ 이런식

 

 apt

 프로그램, 모듈(라이브러리) 설치(Ubuntu)

 예) apt ~~~ 이런식

 

 ps

 현재 실행중인 프로세스 목록을 보여준다.
 ps만 단독으로 쓰는 경우는 없고 -ef라는 속성을 하나의 명령어처럼 잘 쓰인다.

 ps -ef : 모든 프로세스 출력 , UID, PID, PPID 등을 보여준다

 

     PID : 프로세스 식별번호
     PPID : 부모 프로세스 ID
     TIME : 총 CPU 사용 시간
     UID : 프로세스 소유자의 이름

 

mv

파일명변경 또는 파일 옮기기 

예) mv 1.txt 2.txt (mv 기존파일명 변경파일명) 

예) mv /etc/1.txtx /etc/temp/2.txt(mv 파일경로/기존파일명 옮기길원하는경로/변경파일명)

 

rename

rename은 하나 혹은 하나 이상의 파일명을 일괄 변경할때 사용하는 명령어
예) rename test TEST *.txt (rename 변경전문자열 변경후문자열 변경대상파일명)

예) rename directory DIRECTORY directoy_text_? (?는 한 문자를 의미 디렉토리명도 바꿀 수 있다.)

 

cp (copy)

파일 혹은 디렉토리를 복사 (cp 복사할파일 복사된파일명)

디렉토리의경우 (cp -r 복사할디렉토리 복사될위치디렉토리)

      

예) cp a.txt b.txt c.txt test_dir/ (세개 파일을 한번에 복사)    

cp *.txt test_dir/ (모든.txt 파일을 test_dir에 복사)

cp a.txt test_dir/b.txt (a.txt를 test_dir에 b.txt라는 이름으로 복사)

 

top

시스템의 상태를 전반적으로 가장 빠르게 파악 가능

 

chmod

파일 및 폴더 권한 바꾸기

chomod 777 : 모든 대상 모든 권한 허용

맨 앞 7은 user(사용자) 그 다음은 group 그 다음은 other(두 군데 속하지 못한 나머지)을 의미한다.

 

chmod -R 777 folder : folder와 folder 디렉토리 안에 모든 파일들의 권한을 777로 준다. 

     

 r = 4 , w = 2 , x = 1
7 모든 권한(rwx)
6 읽고 쓰기(rw)
5 읽고 실행(rx)
4 읽기 (r)
3 쓰고 실행(wx)
2 쓰기(w)
1 실행(x)

 

chown

ls -l 하면 상세 설명이 나옵니다. 

rw-r--r--. 1 root root 1419 Oct  6 23:42 countries.rc

root라는 사용자고 root라는 그룹에 들어가있다는 의미입니다. 

chown으로 변경할 수 있습니다.

 

chown user1:user1 countries.rc 이 명령어를 치면

rw-r--r--. 1 user1 user1 1419 Oct  6 23:42 countries.rc 으로 변경됩니다.

 

chown -R user1:user1 folder : folder라는 이름의 폴더와 안의 모든 것들의 소유자와 소유그룹을 일괄 변환 

 

echo

내용을 출력합니다. (echo 문자열)

 

ifconfig

리눅스 환경 아이피 확인 명령어

예 ) 설치파일을 리눅스로 작업해야하기 때문에 윈도우에 있는 설치파일을 리눅스환경에 옮기기

쉽게 파일질라를 이용해 옮기기 위해 연결할 리눅스 아이피가 필요하기 때문에 사용 된다

 

bg

bg 작업내용(ls, find ...) &

 

jobs

백그라운드 작업의 상태를 표시하는 명령어

 

kill

kill %작업번호(1, 2...) 백그라운드 작업을 종료

 

fg

fg %작업번호(1, 2....) 백그라운드 작업을 포그라운드로 전환

 

top

    pid : 프로세스 id
    user : 실행한 user
    virt : 가상 메모리
    res : 실제 사용 메모리
    Ctrl + h → 스레드 파악
    Ctrl + m → 메모리 내림차순 정렬
    e → 표시 단위 변경 

    1 → CPU (하이퍼스레드, 물리, 논리 CPU 모니터링)

   

free -h

    total : 전체 메모리
    used : 사용중인 메모리
    free : 남은 메모리 공간
    buff/cache : 리눅스 명령어 history 등에 사용 (이미 했던 작업을 빠르게 접근하기 위해)
    used에 일부가 포함되어 있습니다. 
    available : 사용 가능한 메모리

    (buff/cache에서 빼내와서 이용할 수 있는 메모리 크기입니다. 이 값은 free에 일부 포함되어있습니다.)

 

du

du -sh (경로) 현 경로의 총 용량

du -h (경로) 현 경로의 각각의 용량 + 총 용량

 

df -h

서버 디스크 용량을 확인 (파티션 등등...)

 

scp [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

서버에서 다른 서버로 파일 옮기기 예) scp file.txt root@192.168.0.20:/home/search

 

ifdown

해당 네트워크 끄기 (ifdown 인터페이스명)

예) ifup enp0s3) 

 

ifup 

해당 네트워크 키기  (ifdown 인터페이스명)
예) ifdown enp0s3

 

su

    유저 바꾸기 (su 유저명) [현재 계정 로그아웃 하지 않고 다른 계정으로 전환]
    예) su root

    su - 유저명 (환경변수까지 적용)

    예) su - root

 

sudo

현재 계정에서 root 권한을 이용하여 명령어를 실행할 떄 사용 (sudo su - user)

 

whoami

현재 사용자 확인

 

exit

이전 계정으로 돌아온다.

 

groups

해당 계정 그룹 확인

 

ping 8.8.8.8

8.8.8.8 : 구글 DNS 서버 IP주소

구글 DNS 서버에 신호를 보내 되돌아오는지 확인해 네트워크가 연결 됐는지 간접적으로 확인

 

cut -f1 -d: /etc/passwd 

등록된 유저 확인

 

nmcli dev status

인터넷들의 연결상태를 볼 수 있습니다.

 

scppass (패스워드 없이 scp 사용)

sshpass -p ${password} scp /backup/backup.`date +%Y%m%d`.tar.gz ${호스트네임}@192.168.0.49:/home/backup/

 

chcpu -e ${CPU번호}

해당 CPU번호를 기동합니다. [하이퍼스레드]

 

chcpu -d ${CPU번호}

해당 CPU번호를 중지합니다. [하이퍼스레드]

ex) chcpu -d 0,3,5

 

📝vi명령어

 

vi

파일 편집 수행 (vi 파일명)

vim

파일 편집 수행 (vim 파일명) 편집기를 이쁘게 볼 수 있음

 

 

:set number 

line 보기

 

:set nonu

라인 지우기

 

:$

문서 끝으로 이동

 

줄번호 + Shift + G

해당 줄로 이동

 

:/ , :?

특정 문자 찾아 이동 (:/ 찾을문자열)

특정 문자 찾아 이동 (:? 찾을문자열)

- 다음 문자찾기 

    n : 방향대로

    N : 역방향대로

 

dd

한줄 지우기

현재 커서(여기부터 1행)로부터 N행 삭제 (N) dd)

 

:w

저장하기

새 파일명으로 저장 (:w 파일명) [작업 파일이 꺼지진 않는다.]

 

:f 파일명

파일 이름을 파일명으로 변경

예) :f abc.txt

 

:e!

마지막 저장 이후 모든 편집 취소

 

:wq

저장하고 종료

 

:q!

저장 없이 종료

 

+

다음 행으로 이동

 

-

이전 행으로 이동

 

w

단어 단위로 커서 이동 (오른쪽)

 

b

단어 단위로 커서 이동 (왼쪽)

 

a

현재 커서 바로 다음 위치 삽입

 

i

현재 커서 위치에 삽입

 

dw

커서 위치한 곳의 글자 1개 삭제

 

u

명령 취소

 

ctrl+ r 

명령 취소 되돌리기

 

yy

한줄 복사

 

숫자 -

현재 위치로부터 숫자 만큼 윗줄 이동

 

숫자 +

현재 위치로부터 숫자 만큼 아랫줄 이동

 

:숫자

숫자에 적힌 행으로 이동

 

:%s/매칭문자열/치환문자열

매칭문자열을 치환문자열로 바꾼다.

 

:s/매칭문자열/치환문자열/g

현재 행 매칭문자열을 치환문자열로 전부 변경

 

:s/매칭문자열/치환문자열

현재 행 매칭문자열을 치환문자열로 한번만 변경(가장 앞의 것) 

 

📝스케쥴러 

 

at

1회성 예약 작업을 등록

at now+1 minutes    → 현재 시각으로부터 1분 뒤에 실행시켜주세요
at 23:50 2022-11-23  → 2022년 11월 23일 23시 50분에 실행시켜주세요

at > ${작업문구}
at > ....
ctrl + d로 작업 종료

 

at -d ${작업번호}

작업 삭제

 

at -l

작업확인

 

crontab

반복적인 작업 등록

 

crontab -e 

작업적기 (vi 형태로 열리게 된다.) 

 

crontab -l 

작업확인

crontab 정의

분 / 시 / 일 / 월 / 요일
 *     *      *     *      *
(분) 0 - 59
(시) 0 - 23
(일) 1 - 31
(월) 1 - 12
(요일) 0 - 7 (0, 7 : 일요일, 1 : 월요일, 2 : 화요일 ...)

 

 

 

📝JDK (Java)

 

WAR 파일 생성

jar cvf ${war파일명} ${war로 만들 폴더}
예) jar cvf shppoing.war /home/shopping/*

 

WAR 파일 Deploy

jar xvf ${Deploy할 war파일명}

예) jar xvf shopping.war

 

📝그 외 리눅스 명령어

 

리눅스 포트개방 

iptables -I INPUT 1 -p tcp --dport 11045(개방할 포트번호) -j ACCEPT (CentOS7 부터)

 

CPU 모델명 확인

grep -m 1 'model name' /proc/cpuinfo
model name : Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz

 

모든 CPU 정보 확인

cat /proc/cpuinfo 

 

모든 CPU 개수 확인

grep -c processor /proc/cpuinfo

 

물리 CPU 수 확인

grep "cpu cores" /proc/cpuinfo | tail -1

 

하이퍼스레드 적용 확인

cat /proc/cpuinfo | egrep 'siblings|cpu cores' | head -2
siblings : 8
cpu cores : 4
→ siblings가 cpu cores의 2배로 하이퍼스레딩이 적용된 걸 알 수 있다.

 

리다이렉션 (리눅스 기본 명령어들 사용 불가능)

cat tmp > tmp2 # tmp 내용을 tmp2에 overwrite 해서 넣어라
cat tmp >> tmp2  # tmp 내용을 tmp2에 append 해서 넣어라
wc -l < tmp2 # tmp2를 wc -l 방식으로 출력한다

 

| (파이프라인) 

ps -ef | grep tomcat # ps -ef의 명령어로 나온 결과를 grep(글자찾기) tomcat으로 출력해라
연결자로 입력의 결과를 | 다음으로 넘겨서 처리하겠다는 의미입니다. (리눅스 명령어 사용가능)

 

일정기간 지난 파일 삭제 (ll로 나온 기준으로 제거하기 때문에 파일 경로에 파일 패턴 입력 해줘야한다. 안 그러면 다 사라짐)

find [디렉토리 or 파일 경로] -ctime +0 -exec rm -f {} \;

 

ps -ef 와 jobs의 차이

ps -ef : 모든 프로세스를 확인

jobs : 백그라운드 프로세스를 확인
A라는 사람이 root 계정으로 접근한 것과 B라는 사람이 root 계정으로 접근한 것은 다르다 

그래서 A라는 사람이 접속한 root 계정의 jobs가 B 사람과 다르다.

 

 

반응형