All

Superuser란? 시스템 운영 관리자 계정 일반적으로 리눅스에서는 root 유저를 뜻함. 일반 사용자 권한과 superuser 권한을 구분하여 사용자의 부주의로 발생하는 시스템 손상, 바이러스, 악성코드의 침입에 의한 피해를 보호 우분투의 경우 기본적으로 root 사용자를 비활성화 권한 권한 조사 $ whoami : 현재 로그인되어있는 사용자 계정 확인 $ id : 현재 사용자가 갖고 있는 권한(그룹 포함)을 확인 권한의 대여 (권한 남용을 하지 말 것.) $ sudo : Superuser의 권한을 빌려 명령어 수행(do) $ sudo whoami => root $ sudo su - : 루트 권한으로 로그인 (사용상 위험할 수 있으므로 되도록 사용 X) $ sudo visudo : superuser의..

파일다루기 파일보기 : $ ls [OPTION] ... [FILE] ... $ ls : list $ ls -l : long list $ ls -a : all $ ls -al, ls -a -l : all + long $ ls *.txt : 확장자가 *.txt 파일인 것만 파일 내용 보기 : cat, more, less $ cat [OPTION]...[FILE]... : 파일 내용 보여주기 (정확히는 input과 output의 연결(concatenate)하기) $ cat hello.txt $ cat /etc/passwd $ cat -e /etc/passwd // 줄의 맨 뒤에 $붙이지 (히든 캐릭터 공백 등 확인을 위해) $ cat -n /etc/passwd // 줄 번호 보여주기 $ more [OPTION..

문제 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인지 알아보자. 물론 중간에 다른 도시를 경유해서 여행을 할 수도 있다. 예를 들어 도시가 5개 있고, A-B, B-C, A-D, B-D, E-A의 길이 있고, 동혁이의 여행 계획이 E C B C D 라면 E-A-B-C-B-C-B-D라는 여행경로를 통해 목적을 달성할 수 있다. 도시들의 개수와 도시들 간의 연결 여부가 주어져 있고, 동혁이의 여행 계획에 속한 도시들이 순서대로 주어졌을 때(중복 가능) 가능한지 여부를 판별하는 프로그램을 작성하시오. 입력 첫 줄에 도시의 수 N이 주어진다. N은 200이하이다. ..

문제 초기에 {0}, {1}, {2}, ... {n} 이 각각 n+1개의 집합을 이루고 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작성하시오. 입력 첫째 줄에 n(1≤n≤1,000,000), m(1≤m≤100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 a가 포함되어 있는 집합과, b가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 1 a b의 형태로 입력이 주어진다. 이는 a와 b가 같은 집합에 포함되어 있는지를 확인하는 연산이다. a와 b는 n 이하..


입력된 아이디가 없다거나 비밀번호가 틀리다면 로그인을 실패를 할 것이다. 이번 글에서는 로그인이 실패를 했을 경우 어떠한 핸들러를 가지고 처리를 해줄 수 있는지에 대하여 간단한 예제로 살펴보겠습니다. AuthenticationFailureHandler Spring Security에 정의되어 있는 Interface로 이 핸들러를 구현해주고 SecurityConfig에서 설정을 해주면 자동으로 핸들러로 등록이 된다. onAuthenticationFailure(...) 위의 AuthenticationFailureHandler에 정의되어 있는 메서드이다. 매개변수로는 HttpServletRequest(request의 정보를 가지고 있다.), HttpServletResponse(response에 대한 설정을 할 ..

[Spring Boot] Thymeleaf를 사용해 PathVariable 넘기는 방법 CRUD에서 Create를 제외하고는 URL에 해당 객체의 id값을 넘겨주어서 구현을 해줄 수 있다. Spring Boot에서는 Controller에서 @PathVariable 어노테이션을 사용하여 URL의 인자값을 전달받을 수 있는데 그렇다면 Thymeleaf에서는 어떠한 방법으로 id값을 넘겨주어야 되는지에 대하여 알아보겠다. Controller에서 delete를 처리하는 메서드 @GetMapping("todoDelete/{id}") public String delete(@PathVariable Long id) { todoService.delTodo(id); return "redirect:/"; } URL에서 id..


Spring Security를 사용하여 간단하게 회원가입과 로그인 및 로그아웃 기능을 구현해보겠습니다. Django에서 auth와 같은 기능과 유사하다고 생각이 들었습니다. 그럼 이제 간단한 설명과 함께 코드를 살펴보겠습니다. 프로젝트 환경 Spring Boot 2.2.6 Java 11 Gradle Dependencies Spring-boot-starter-Web Spring-boot-starter-Data-JPA Spring-boot-starter-Sequrity Spring-boot-starter-thymeleaf Lombok implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' Thymeleaf에서 Spring ..

문제 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다. 수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 ..

문제 컴퓨터를 제조하는 회사인 KOI 전자에서는 제조하는 컴퓨터마다 6자리의 고유번호를 매긴다. 고유번호의 처음 5자리에는 00000부터 99999까지의 수 중 하나가 주어지며 6번째 자리에는 검증수가 들어간다. 검증수는 고유번호의 처음 5자리에 들어가는 5개의 숫자를 각각 제곱한 수의 합을 10으로 나눈 나머지이다. 예를 들어 고유번호의 처음 5자리의 숫자들이 04256이면, 각 숫자를 제곱한 수들의 합 0+16+4+25+36 = 81 을 10으로 나눈 나머지인 1이 검증수이다. 입력 첫째 줄에 고유번호의 처음 5자리의 숫자들이 빈칸을 사이에 두고 하나씩 주어진다. 출력 첫째 줄에 검증수를 출력한다. 예제 입력 1 0 4 2 5 6예제 출력 1 1 나의 풀이 각 입력받은 수를 리스트에 담고 리스트의 원..