본문 바로가기

728x90
반응형

전체 글

(161)
[MySQL] MySQL 8.0 설치 및 보안 설정 Ubuntu 20.04에서 MySQL 8.0 설치 및 보안 설정을 어떻게 하는지 정리를 해보았다. 우선 터미널에서 MySQL를 설치하는 방법은 다음과 같다. $ sudo apt install mysql-server 설치를 끝내고 보안 설정을 하려면 아래 명령어를 입력해야한다. $ mysql_secure_installation 그렇다면 이제 질문이 뜨고 그에 알맞는 답변을 해야 한다. (* 질문3부터 시작하는 경우 있음) 보안이 강한 패스워드를 생성하기 위한 플로그인을 활성화 하고자 하는가? 패스워드의 레벨을 지정 { 0: Low, 1: Medium, 2: Strong } root 계정의 비밀번호 입력, 비밀번호 재입력 익명의 사용자를 제거할건가? root 계정으로 외부에서 접속할건가? 테스트 데이터베이스..
[Git] rebase로 커밋 기록 삭제하기 프로젝트를 진행하다가 이상한 걸 remote에 푸쉬해버리는 바람에 커밋 기록 삭제하는 방법을 찾아 다녔다 reset과 revert로도 할 수 있다는데,,, reset은 잘못하다가 커밋을 전부 날려 버릴 것 같아 사용하지 않았고 revert는 과정이 어려웠다. 그래서 위험하지만 성능 확실한 rebase로 커밋 기록을 삭제했다. 내가 한 방식은 rebase로 커밋 목록 보고 삭제하고 싶은 해당 커밋을 drop해준 다음에 remote에 푸쉬해주면 쉽게 커밋을 없애버릴 수 있었다. $ git rebase -i HEAD~? ?는 최근 커밋부터 ?에 넣을 숫자만큼 커밋 기록을 보여준다. 그래서 삭제할 커밋 메세지 or 커밋 해쉬 코드(git log를 통해 볼 수 있음)를 찾아 pick -> drop으로 변경해주고 ..
[JAVA] 백준 2751번 문제, 수 정렬하기 2 www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 문제에서 중요하게 봐야 할 키워드는 '주어진 입력의 범위는 -1,000,000 ~ 1,000,000인 정수', '수는 중복되지 않는다'입니다. 중복 없이 입력받기 때문에 해당하는 수가 들어왔는지, 아닌지만 판단하면 됩니다. 따라서 크기 200만 인 Boolean 타입의 배열 arr[]를 만들어 값이 들어왔을 경우 True값을 넣어줍니다. 그래서 위의 작업을 첫 번째 for문에서 수행합니다. 두 번째..
[Git] 매우 기초적인 Git 명령어 모음 Local Repository 현재 디렉토리에 로컬 저장소 만들기 >> $ git init 작업 트리의 파일 상태 확인 >> $ git status config 설정 유저 정보 설정>> $ git config --global user.name ["유저명"] $ git config --global user.email [이메일] commit 편집 에디터 설정>> $ git config --global core.editor [프로그램명] $ git config --global core.editor vim $ git config --global core.editor notepad-plus-plus 정보 보기 $ git config --list Staging Area 파일을 등록하기 >> $ git add 파일명..
[Git] Git Push 또는 Pull이 안되는 경우 >> (fatal: refusing to merge unrelated histories) 로컬 저장소에서 리모트 저장소에 push 할 경우 아래와 같은 메세지가 뜨는 경우가 있습니다. hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 이는 로컬 저장소와 리모트 저장소가 같지 않기 때문에 병합을 해주어야 합니다. 병합을 하기 위해서는 $ git pull remote 별명 브런치명 을 ..
[Python] 삼각 달팽이 - 월간 코드 챌린지 시즌1 programmers.co.kr/learn/courses/30/lessons/68645 n=5 그림을 보면 [1, 2, 3, 4, 5], [6, 7, 8, 9], [10, 11, 12], [13, 14], [15] 순으로 배열에 값이 들어가는 것을 확인할 수 있습니다. 즉 5번, n번만큼 작동하면 모든 값이 들어갑니다. 회차마다 들어가는 값은 n - 회차입니다. (회차는 배열이기 때문에 0부터 시작) 하나의 둘레는 3회가 필요하기 때문에 회차 % 3을 통해 방향을 구합니다. (우 -> 하 -> 상이라서 3회) 회차 % 3 == 0이면, 아래로 향하고 회차 % 3 == 1이면, 오른쪽으로 향하고 둘 다 아니면 위로 올라갑니다. 이 논리를 통해 2차원 배열를 꽉 채운 후에 sum(arr, [])를 통해 1차..
[ANDROID] CheckBox >> onClickListener() 이벤트 리스너 설정 간단하게 체크박스 안 요소를 클릭시 Toast가 발생하도록 하는 클릭 이벤트 리스너 설정하는 방법에 대해 실습해봅시다. 두 가지 방법으로 수행했는데 (1) 익명 클래스로 처리, (2) 클래스 객체를 만들어 매개변수로 전달했습니다. 저는 (2) 방법을 통해 실행을 진행했습니다. *(1) 방법은 코드 참고 기초적인 다른 문법들의 설명을 생략하고 이벤트 리스너에 대해 이야기해보도록 하겠습니다. View.OnClickListener 클래스의 객체(CheckBoxClickListener(이하 mCBCL, 이하 클래스의 객체)) 하나를 준비해야 합니다. 그리고 onClick() 메소드를 커스텀하면서 오버라이딩하면 됩니다. 여기서 가장 중요한 부분, checked 변수입니다. checked 변수는 변수명에서 보시듯이..
[ANDROID] java 파일에서 터치 이벤트 발생시켜 현재 터치 위치 표시하기 MyView.java(이하 커스텀 뷰)를 만들어 액티비티 화면으로 설정해 실습을 해봤습니다. 커스텀 뷰에서 터치 이벤트가 발생했을 때 (x, y)를 읽어와 안내하는 문자열을 출력했습니다. 커스텀 뷰 방법으로 했을 때 두 가지 주의해야 할 점이 있습니다. xml에서 class 속성을 필수로 추가해줘야 합니다. ex) class="com.example.${PROJECT_PATH}.${CLASS_NAME}" 위 속성을 추가해준 후에 커스텀 뷰의 모든 생성자에서 부모 생성자를 호출해주면 됩니다. ex) super(인자1, 인자2, ..) 여기까지 따라오셨으면 필수 설정은 끝났으니 커스텀 뷰에서 멤버로 Paint 객체를 만들어 TextSize를 정해주는 등 꾸미기만 하면 됩니다. onDraw() 메소드는 단순히 ..

728x90
반응형