[Linux] 리눅스 정리 1. 리눅스 사용자 권한 $ : dollar sign 일반 유저 권한 # : pound sign(hash mark) 관리자 권한 🤔 root (관리자) 권한 실행하려면? sudo (super user do) $ sudo reboot : 리눅스 재부팅 $ sudo halt : 리눅스 종료 $ sudo shotdown : 리눅스 종료 - h : 종료 sudo shotdown -h now : 지금 종료 sudo shotdown -h +10 : 10분 뒤 종료 sudo shotdown -h 21:00 : 21시에 종료 sudo shotdown -c : 예약된 종료 명령어 취소 🤔 root 사용자로 전환 리눅스는 보안상 root 계정으로 로그인할 수 없다. 일반 유저 권한으로 들어와서 root 권한으로 전환해서 .. 카테고리 없음 2023.06.04 1 [Linux] VI 방향키, 문자 오류 (VIM 설치 및 설정) 우분투에서 VI 로 작업을 하려고 할 때 방향키를 누르면 커서가 이동하는 것이 아니라 위 사진처럼 ABCD가 입력되어 이를 해결하고자 방법을 찾았다. VI 옵션을 수정하는 방법도 있지만 VI 차기버전인 VIM을 설치함으로써 쉽게 해결할 수 있다. 1. VIM 설치 우분투 터미널에 들어가서 다음의 명령어들을 작성하면 VIM이 설치된다. - $ sudo apt-get update - $ sudo apt-get install vim 2. VIM 설정 VIM 설치를 완료하였으면 가독성, 편의성을 위해 다음의 내용을 설정해놓는 것이 좋다. - $ vim ~/.vimrc set number 줄 번호 표시 set tabstop=4 tab을 4칸으로 set ignorecase 검색 시 대소문자 구별하지 않음 set h.. 카테고리 없음 2023.05.25 0 [Java] 쓰레드 (Thread) 1. 프로세스와 쓰레드 🤔 Process(프로세스) 프로그램을 실행하면 OS(운영체제)로부터 실행에 필요한 자원(메모리)을 할당받은 것으로 실행 중인 프로그램을 뜻한다. 프로세스는 프로그램을 실행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있다. 🤔 Thread(쓰레드) 프로세스 구성요소 중 하나로, 프로세스의 자원을 이용하여서 실제로 작업을 수행하는 것 모든 프로세스에는 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. 프로세스가 할당받은 메모리 한계에 따라 생성할 수 있는 쓰레드의 수가 결정된다. 🤔 MultiThreading(멀티쓰레딩) 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것 CPU의 코어(core)가 한.. Java 2023.04.20 0 @ComponentScan, @Component https://mjlee4330.tistory.com/144 [Spring] Spring Container & Bean (컨테이너 & 빈) 스프링 컨테이너 (Spring Container) ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 인터페이스가 스프링에서 사용되는 컨테이너, 즉 스프링 컨테이너다. 스 mjlee4330.tistory.com 위에서 스프링 빈을 등록하기 위해서 @Bean 애너테이션을 적용한 메서드를 이용하거나 XML 태그를 이용하여서 설정 정보를 직접 작성하였다. 현업에서 사용되는 빈은 수없이 많을텐데 이를 하나하나 작성하여 빈.. Spring(ItelliJ & Gradle) 2023.04.19 0 [Spring] @Configuration 역할 @Confuguration 어노테이션은 애플리케이션의 설정 정보(구성 정보)를 담당하는 클래스를 의미하며 작성된 메서드를 통해서 빈(Bean)을 등록한다. 하지만 @Configuration은 단순히 빈을 등록하는 역할 말고도 싱글톤을 보장한다. 스프링 컨테이너는 싱글톤 레지스트리이기 때문에 스프링 빈이 싱글톤임을 보장해야 하는데 어떻게 보장하는 것일까? @Configuration public class AppConfig { @Bean public MemberService memberService() { System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean publ.. 실수 모음 2023.04.19 0 [Spring] static 메서드에 @Bean을 적용하였을 때 feat.프록시(Proxy) 스프링 강의를 수강하던 중 싱글톤 컨테이너와 관련해서 테스트를 진행하였다. 스프링 컨테이너는 싱글톤 컨테이너이기 때문에 반드시 동일한 객체를 반환해야 하는데 서로 다른 객체가 반환되었다. // Test 코드 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberReposit.. Spring(ItelliJ & Gradle) 2023.04.17 0 [Spring] IoC, DI 그리고 컨테이너 IoC (Inversion of Control) IoC는 제어의 역전 이라는 뜻이다. 프로그램의 흐름을 개발자가 직접 제어하는 것이 아니라 프로그램 혹은 프레임워크가 제어하기 때문에 역전이라는 단어가 사용된 것이다. 그렇다면 프로그램의 흐름을 제어한다는 것은 무엇을 의미할까? 프로그램의 흐름은 프로그램이 작동하기 위해 필요한 객체를 생성하고, 연결하고, 실행시키는 것을 의미한다. 즉, IoC는 개발자가 아닌 프로그램 / 프레임워크가 외부에서 객체를 생성하고 연결하며 실행시킨다고 이해하자. public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository; //구현체를 제거해서 역할만.. 카테고리 없음 2023.04.15 0 [백준 1940번] 주몽 -투 포인터- 문제 주몽은 철기군을 양성하기 위한 프로젝트에 나섰다. 그래서 야철대장을 통해 철기군이 입을 갑옷을 만들게 하였다. 야철대장은 주몽의 명에 따르기 위하여 연구에 착수하던 중 아래와 같은 사실을 발견하게 되었다. 갑옷을 만드는 재료들은 각각 고유한 번호를 가지고 있다. 갑옷은 두 개의 재료로 만드는데 두 재료의 고유한 번호를 합쳐서 M(1 ≤ M ≤ 10,000,000)이 되면 갑옷이 만들어 지게 된다. 야철대장은 자신이 만들고 있는 재료를 가지고 갑옷을 몇 개나 만들 수 있는지 궁금해졌다. 이러한 궁금증을 풀어 주기 위하여 N(1 ≤ N ≤ 15,000) 개의 재료와 M이 주어졌을 때 몇 개의 갑옷을 만들 수 있는지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,0.. 코딩테스트 2023.04.15 0 [백준 2018번] 연속된 자연수의 합 구하기 - 투 포인터 문제 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다. N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. 입력 첫 줄에 정수 N이 주어진다. 출력 입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오 1. 나의 풀이 연속된 자연수들의 합이기 때문에 합 배열을 이용해보려고 생각했다. 먼저 주어진 정수 .. 코딩테스트 2023.04.14 1 [Git] CRLF will be replaced by LF 에러 깃허브에 새 레퍼지토리를 만들고 첫 커밋을 할 때마다 항상 나왔던 에러이다. 코드 한 줄만 작성하면 에러가 해결되기 때문에 넘어갔었는데 무슨 내용의 에러인지는 알아야할 것 같아서 블로그에 정리해본다. 1. CR & LF의 유래 먼저 CR, LF가 어디서 유래되었는가? 바로 컴퓨터가 보급되지 않던 시절 사용하던 타자기에서 유래되었다고 한다. 종이를 오른쪽 끝으로 보내어 처음부터 작성할 수 있도록 하는 행위를 Carriage Return(CR)이라 한다. 종이를 한 줄 간격만큼 위로 올려주는 행위를 Line Feed(LF)라 한다. 2. CR & LF 의 개념 CR 컴퓨터 언어에서 CR은 ' /r ' 을 뜻하며 커서를 맨 앞으로 보내는 역할을 한다. 키보드에 있는 Home의 역할을 한다고 생각하면 쉽게 이해.. Git 2023.04.13 0