전체보기

    [Programmers Level1]  모의고사 정답 및 풀이 설명

    [Programmers Level1] 모의고사 정답 및 풀이 설명

    문제 바로가기 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4..

    [Programmers Level1]  완주하지 못한 선수 정답 및 풀이 설명

    [Programmers Level1] 완주하지 못한 선수 정답 및 풀이 설명

    문제바로가기 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. co..

    [Programmers Level1] 크레인 인형뽑기 게임 정답 및 풀이 설명

    [Programmers Level1] 크레인 인형뽑기 게임 정답 및 풀이 설명

    문제 바로가기 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 ..

    [Java] 마스킹 알고리즘 (Masking Algorithm)

    [Java] 마스킹 알고리즘 (Masking Algorithm)

    자바 마스킹 알고리즘 관련 예제입니다. 상세 설명은 주석을 통해 메모 해두었으니 참고 하시어 봐주시길 바라며, 궁금하신 사항은 댓글로 부탁드립니다. package ew; public class MaskingAlgorithm { /// Fields /// Constructor /// Method public static void main(String[] args) { // case 1. 주민등록번호 String data = "9607201111111"; // case 1-1. 주민등록번호 길이 측정. System.out.println("주민등록번호의 길이 : " + data.length()); // case 1-2. 주민등록번호 앞자리의 길이 만큼 뺀 값(7)만큼 데이터 오른쪽을 Masking 처리 Str..

    [MySQL] 내가 본 최악의 데이터 생성 쿼리문

    [MySQL] 내가 본 최악의 데이터 생성 쿼리문

    세상에 ... 이런 쿼리문이 현업에서 사용되고 있다니.. INSERT INTO table_A SELECT *, 'ID' as ID, now() as MOD_DT FROM table_B WHERE ID = 'ID' 테이블 컬럼이 많고 처리하기 귀찮으니 이렇게 처리한 것 같다.. 할많하안

    개발일기 [2021.04.19]

    개발일기 [2021.04.19]

    개발일기를 오랜만에 쓰게되었다. 그동안 블로그에 내가 왜 글을 정리해둬야 하는지 남들은 왜저렇게 정리를 열심히 하는지 의구심이 들었다. 지난주에는 문득 내가 배운 걸 어딘가에 정리를 해두지 않으면 난 언제나 항상 누군가가 써둔 블로그를 찾아 들어갔던 그 보라색 되어있는 링크를 또다시 눌러야 한다는 현실을 생각해보니 적어도 2번 이상 들어가는건 내가 모르기 때문이라고 생각되어 배운 내용을 정리하자는 취지로 글을 다시 쓰기로 결심했다. 글을 쓰다보니 생각보다 재밌었다. 내가 오늘 배우고 알아간 지식을 적어보니 누군가에게 도움이 될 수 도 있다고 생각했고, 특히 티스토리의 경우엔 구글 에드센스 기능도 제공하니 배운 글을 정리하며 용돈벌이도 하려고 다시 시작하게 된게 큰것 같다. 그동안은 PG사에서 일을하며 자..

    [Java] 로그 생성 파일 경로 추출

    [Java] 로그 생성 파일 경로 추출

    로그파일 생성시 클래스명과, 메소드명을 추출하는 방법입니다. public class GetPath { /// Fields /// Constructor public GetPath(){ System.out.println("Create Default Contructor"); } /// Method public static void main(String[] args) { String path = new GetPath().makePath(); System.out.println(path); } /** * 로그 생성시 [ClassName::MethodName]의 경로를 얻어온다. * @return */ private String makePath(){ StackTraceElement[] a = new Throwable..

    [Java] 알고리즘 문자열 2진 검색(Binary Search) 예제

    [Java] 알고리즘 문자열 2진 검색(Binary Search) 예제

    자바 알고리즘 문자열 2진 검색 예제입니다. import java.util.ArrayList; import java.util.Collections; import java.util.List; public class BinarySearch{ /// Fields /// Constructor public BinarySearch(){ } /// Method public static void main(String args[]){ // 데이터 정렬을 위해 ArrayList 생성 List strList = new ArrayList(); // 데이터 리스트 String[] data = {"쥐","소","호랑이","토끼","용","뱀","말","양","원숭이","닭","개","돼지"}; // 검색대상 String targ..

    [MYSQL] Index 확인, 추가, 삭제 명령어

    [MYSQL] Index 확인, 추가, 삭제 명령어

    💡 MySQL 인덱스 관련된 SQL문! 인덱스 확인 SHOW INDEX FROM [테이블명] 인덱스 추가 ALTER TABLE [테이블명] DROP INDEX [인덱스명]; 유니크 인덱스 추가 ALTER TABLE [테이블명] ADD UNIQUE INDEX [인덱스명] ([컬럼1], [컬럼2]); 인덱스 삭제 ALTER TABLE [테이블명] ADD INDEX [인덱스명] ([컬럼1], [컬럼2]) COMMENT '주석';

    [MySQL] 테이블 생성, 컬럼 추가, 삭제, 수정

    [MySQL] 테이블 생성, 컬럼 추가, 삭제, 수정

    ◆ 테이블 생성 create table [테이블명] ( seq int(11) auto increament, name varchar(20) not null default '' ); ◆ 컬럼 추가 alter table [테이블명] add [컬럼명] [타입] [옵션]; ex) alter table [테이블명] add [컬럼명] varchar(100) not null default '0'; ◆ 컬럼 삭제 alter table [테이블명] drop [컬럼명]; ◆ 컬럼명 변경 및 타입 변경 alter table [테이블명] change [컬럼명] [변경할컬럼명] varchar(12); ◆ 컬럼 타입 수정 alter table [테이블명] modify [컬럼명] varchar(14); ◆ 테이블명 수정 alter ..

    TLS 버전 확인 명령어

    TLS 버전 확인 명령어

    TLS 버전 확인 $openssl s_client -connect [서버 아이피] [포트] 서버 아이피가 아닌 도메인으로 가지고 있는경우 $telnel [도메인] 명령으로 연결되는 IP주소로 확인하면 된다. TLS버전 확인시 출력되는 메시지는 Client -> Server로 나가는 세션 정보다. Protocol : TLSv1.2 로 출력된다면 서버로 통신시 1.2 버전으로 통신된다는 얘기가된다.

    [Java] JSCH를 사용한 SFTP 서버 통신 및 파일 다운로드 예제

    [Java] JSCH를 사용한 SFTP 서버 통신 및 파일 다운로드 예제

    자바 jcraft 라이브러리를 사용하여 SFTP 서버 통신 및 파일 다운로드 예제입니다. 서버의 IP와 아이디, 비밀번호 포트 번호까지 정확하게 입력하셔야 하고, 경로 부분 직접 작성해주셔야 합니다. 또한 Main이 없기때문에 해당 클래스 호출하는 Main 메소드 따로 작성해주셔야 하니 참고 부탁드립니다. package noah; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Properties; import java.util.Vector; import com.jcraft.jsch.Channel; import..

    테이블 설계서 작성방법

    테이블 설계서 작성방법

    시스템 개발에 필요한 분석을 마친 후에 설계 단계시 작성하는 테이블 설계서 작성 방법입니다. 컬럼명 컬럼이름 자료형 길이 기본키 외래키 인덱스 널값 허용 디폴트값 컬럼 설명 SEQ 일련번호 INT 11 PK NOTNULL 자동증가 일련번호 STUDENT_NO 학생번호 INT 6 FK IDX_STUDENT_NO 0 학생번호 : 상기에 표 처럼 일반적으로 사용이 많이 되는 것 같다.

    인덱스 중복 관련 확인

    인덱스 중복 관련 확인

    평소 인덱스 생성시 1. ALTER TABLE 테이블명 ADD INDEX 인덱스키네이밍 ( 네이밍1,) 2. ALTER TABLE 테이블명 ADD INDEX 인덱스키네이밍2 ( 네이밍1,네이밍2 ) 이러한 구조로 생성하였다. 그러나 이번에 확인을 해보니 인덱스키네이밍 네이밍1 인덱스키네이밍2 네이밍1 인덱스키네이밍2 네이밍2 이러한 구조로 인덱스가 생성되어있음을 확인하였다. 원인을 파악해보니 2번의 인덱스 생성할때 이미 네이밍1에 대한 인덱스를 생성하고 네이밍2에 대한 인덱스를 생성하는 구조였다. 인덱스 중복 관련하여 알게되었다.

    개발일기 [2020.03.06]

    개발일기 [2020.03.06]

    12월 23일에 자바 백엔드 데몬 개발자로 취직에성공하고 재직한지 3개월 수습기간이 끝나간다 근 3개월 동안 수습기간에 일을 시키겠나.. 했는데.. 진짜로 한달 째 되자마자 시키더라 안드로이드 INTENT POST 방식 전송 테스트 하면서 자사 API 연동하는법을 알아버렸다.. 본업은 자바 개발인데.. 근데 지금은 자바 개발보다 SQL을 더 많이 사용한다. Oracle만 백날 사용하다가 MySQL로 넘어오면서 좀 많이 헷갈렸다. 처음보는 UNION 이랑 이것저것 있었는데 이젠 그러려니 하면서 쓴다. 3개월 긴 시간은 아니였지만 최근 3개월 동안 바쁘게 살았는지 시간이 빨리갔다. 리액트 공부가 끝나면 Go 언어를 배워 30살 되기 전에 실리콘밸리로 넘어가 억대연봉 받아 보고싶다. ' 진인사대천명 ' 자기 ..

    리눅스 기본 명령어 / 자주 쓰는 명령어

    리눅스 기본 명령어 / 자주 쓰는 명령어

    리눅스 기본 명령어 모든 명령어는 명령어 뒤에 --help 옵션을 주면 자세한 사용 방법이 나온다. 예를들어 ls 명령어의 자세한 사용 방법과 모든 옵션을 알고싶으면 ls –help를 입력하면 된다. pwd (print working directory) 현재 작업중인 디렉토리 정보 출력 $ /home/here cd (change directory) 경로 이동 절대 경로와 상대 경로로 이동 가능하다. $ cd /home/96brain/mydir [ 절대 경로 ] $ cd ../pwd/home/96brain [ 상대 경로 ] ls (list), ll(LL) 현재 디렉토리 목록 확인 $ ls testfile1 testfile2 testfile3 $ ll testfile1 testfile2 testfile3 c..

    안드로이드 URL POST 방식 전송하기

    안드로이드 URL POST 방식 전송하기

    http://cheonbrave.blogspot.com/2016/11/android-post-intent.htm Android - POST 방식으로 Intent 를 사용한 웹페이지 호출 일반적인 get 방식 호출은 쉽게 짤수있지만. 결제를 모바일 웹으로 링크를 걸었더니.. 노출되면 꺼림직한 변수들이 URL에 찍히더라구요 때문에 POST 방식으로 전송하는방법을 알게되어 이렇게 공유합니다. 키포인트 - > URL 을 바로 호출하는... cheonbrave.blogspot.com POINT : INTENT를 통해서 POST 방식으로 요청을 하려면 자바스크립트를 이용하여 요청해야한다.

    리액트의 기초!기본! 컴포넌트에 대한 지식

    리액트의 기초!기본! 컴포넌트에 대한 지식

    리액트 홈페이지에 들어가게 되면 사용자 인터페이스를 만들기 위한 JavaScript 라이브러리 라고 소개가 되어 있다. 그 아래로 내려가서 보게되면 ' 컴포넌트 ' 라는 단어가 반복하여 나오게 되는게 '이게 뭘까?' 라는 의문이 들어 공부를 하고 내가 알게 된 지식을 정리하려고한다. 컴포넌트의 상태값을 이용하여 UI에 표현하게 객체이다. 컴포넌트의 상태는 인스턴스 속성( Properties )을 이용해 관리한다. 컴포넌트 간에 단방향으로 데이터를 주고 받는 props와 컴포넌트 내부에서 사용하는 state가 있다. 데이터를 주고 받는 props는 읽기만 가능하고 수정이 불가능하지만, 컴포넌트 내부에서 사용하는 state는 컴포넌트의 상태를 비동기 방식으로 바꿀수 있고 this.setState를 사용하여 ..

    개발일기 [2019.10.16]

    개발일기 [2019.10.16]

    지난 11일부터 리액트 공부를 시작하기로 마음을 먹었다. 비트캠프 학원에 다닐 때 리액트를 공부하여 프로젝트를 진행한 조의 자료를 분석하는 일부터 시작했다. 분석을 시도하였지만 어떻게 분석해야하는지 감도 안 잡히고! 너무 어려워!! 유튜브 검색을 통해 나동빈님의 리액트 강좌 영상을 보면서 따라 하기로 마음을 먹었다. Visual Studio Code IDE를 설치하고 프로젝트를 시작하여 처음에 뜨는 리액트 로고를 보고 '오.. 재밌겠다'라는 생각이 들었다. 막상 시작하려고 하니 그동안 배웠던 개념들과는 다른 부분이 많아 어려웠다. npm, const, class와 function의 차이점 부터 시작하여 render() 함수 export default, components life cycle 등등. 하나하..

    SQL Practice

    SQL 평균연봉보다 많은 연봉을 받는 사원의 아이디, 부서 아이디, 얀벙, 부서의 평균연봉을 조회 ◆ 컬럼 ALIAS를 지정하여 출력◆ 부서평균연봉은 반올림하여 정수로 출력◆ 부서평균연봉이 많은 사람부터 먼저 출력 1234567SELECT c.employee_id 사번 , c.department_id 부서번호 , c.salary 연봉 ,vt.평균 부서평균연봉FROM employees c, (select department_id, ROUND(AVG(salary),0) 평균 from employees group by department_id) vtWHERE c.department_id = vt.department_idAND salary > vt.평균ORDER BY 부서평균연봉 DESC;Colored by C..