분류 전체보기 (165) 썸네일형 리스트형 Ch.02 알고리즘이 중요한 까닭 (도서 요약 "누구나 자료구조와 알고리즘") 어떤 자료 구조를 결정했더라도 어떤 '알고리즘'을 선택했냐에 따라 코드의 효율성은 달라진다. 알고리즘이란, "어떤 과제를 완수하는 명령어 집합"일뿐이다. 예를 들어 '라면을 끓이는 과정'도 다음 다섯 단계를 거친다. 1) 물을 끓인다. 2) 스프를 넣는다. 3) 면을 넣는다. 4) 더 끓인다. 5) 젓가락을 집는다. 이처럼 알고리즘이란, 정해진 순서대로 따라가며 특정 과제를 달성하기 위한 명령어 집합이라고 보면 된다. 2. 1 정렬된 배열 새로운 자료 구조인 '정리된 배열(ordered array)'를 알아보자. "정렬된 배열"은 1장에서 설명한 '전형적인' 배열과 거의 같기 때문에 값이 항상 순서대로 있어야 한다. 즉, 값을 추가할 때마다 적절한 셀에 넣어 배열의 값을 정렬된 상태로 유지한다. 예를 들.. [완강 후기] 안랩 샘 14기 '데이터베이스 과정 - MySQL' - 공부 기간 : 2022년 3월 21일 ~ 4월 11일 (주 1회, 총 4주 과정) - 강의 시간 : 총 16시간 - 플랫폼 : 맘잡고 - 100% 온라인 강의 선택 이유 패스트 캠퍼스 강의로 SQL 공부를 시작한 뒤, SQL에 관해서 거부감이 많이 사라졌다. 동시에 더 구체적으로 공부하고 싶다는 의욕이 생겼다. 패스트 캠퍼스 강의로는 배움에 한계가 분명히 있었기 때문에 대안 강의가 필요했다. 당시 공부 방향에 대해 고민하고 있었고, 나에게 맞는 부트캠프를 찾고 있던 도중, '안랩샘 아카데미'을 알게 됐다. (주) 안랩에서 청년이나 경력 단절 여성들을 위해 재교육 프로그램을 제공하는 사회공헌 프로젝트였다. 마침 14기를 선발한다고 해서 코스를 살펴보니 SQL 강의도 있었다. 적절한 타이밍에 찾아온 기회.. Ch.01 자료 구조가 중요한 까닭 (도서 요약 "누구나 자료구조와 알고리즘") 코드의 품질을 측정하는 다양한 척도 중에 코드 '효율성'이 있다. 같은 목표를 달성해도 더 빠르게 실행되는 코드를 효율적인 코드라고 한다. 뛰어난 소프트웨어 개발자로 성장하고 싶다면 더 빠르게 실행되는 코드 작성 능력을 갖춰야 한다. 효율적인 코드를 작성하는 첫 번째 단계는 자료 구조가 무엇인지, 다양한 자료 구조가 코드 속도에 어떤 영향을 미치는지 이해하는 것이다. 1. 1 자료구조 '자료 구조'란 데이터를 조직하는 방법이다. // 문자열 데이터의 조합 String x = "Hello! "; String y = "How are you "; String z = "today?"; System.out.println(x + y + z); // "Hello! How are you today?" // 문자열 데이.. [완강 후기] 가장 쉽게 시작하는 데이터 분석, SQL유치원 - 공부 기간 : 2022년 3월 15일 ~ 4월 18일 (총 34일 소요) - 강의 제공 시간 : 12시간 46분 - 플랫폼 : 패스트 캠퍼스 - 100% 온라인 강의 선택 이유 스프링은커녕 아직 자바 공부도 끝내지 못했던 상황에서 코딩 테스트에 대한 이야기가 들려왔다. 요즘 웬만한 기업에선 코딩 테스트가 필수이니 준비를 하라고 하던데 알고리즘이니, 자료구조니 너무 어렵게만 느껴졌다. 그러한 낯섦 때문일까 일단 자바 공부부터 마무리 짓고 시작하자고 합리화했다. 그러나 힐끗 방문해본 코딩 테스트 홈페이지와 차후 고려하는 여러 부트캠프의 코딩 테스트, 기업 공고문을 살펴보니 알고리즘 문제뿐만 아니라 한 가지가 더 있었다. 그것이 바로 SQL이었고, 그때가 첫 만남이었다. 알고리즘, 자료구조를 대신해 무언가.. [4주 차 학습후기] Java&Spring boot로 시작하는 웹프로그래밍 (feat. 자바 인강) - 총 8주 과정 (22.03.23 ~ 22.05.18) - 총 33시간 과정 - 100% 온라인 진행 - Lv.2 (실전-심화) - 무료 (K-Digital training 지원) 4주 차 학습일지 (22.04.13 ~ 04.19) - 6주차_자바 프로그래밍_자바와 자료구조(4) (1:27:54) - 7주차_자바 프로그래밍_스프링 입문_객체지향(1) (1:20:49) - 7주차_자바 프로그래밍_스프링 입문_디자인 패턴(1) (1:30:33) - 8주차_자바 프로그래밍_스프링 입문_웹 개발 개론(1) (0:36:20) - 8주차_자바 프로그래밍_스프링 입문_스프링 부트 시작하기(1) (1:00:32) - 8주차_자바 프로그래밍_스프링 입문_스프링 부트 시작하기(2) (1:26:11) 자료구조와 객체지향,.. [OOP] 객체지향 개발 5대 원칙, 'SOLID'란 무엇인가? SOLID란 무엇인가 개발자 면접에서 많이 등장하는 개념으로 좋은 객체지향 프로그래밍을 하는데 준수해야 하는 5가지 원칙을 말한다. 이와 같은 원리들을 적용하면 코드의 유지보수가 굉장히 수월해진다. 단일 책임의 원칙 (Single Responsibility Principle) [SRP] 하나의 클래스에 너무 많은 데이터, 기능, 책임을 부여하면 안 되고, 모든 클래스는 각각 하나의 책임만 가져야 한다. SRP를 위반한 좋지 못한 케이스 public class man { public eat() {} // 인간으로서 역할 public takeClothes() {} public goToBathroom() {} public void kiss() {} // 남자친구 역할 public void giveHerPres.. [3주 차 학습후기] Java&Spring boot로 시작하는 웹프로그래밍 (feat. 자바 인강) - 총 8주 과정 (22.03.23 ~ 22.05.18) - 총 33시간 과정 - 100% 온라인 진행 - Lv.2 (실전-심화) - 무료 (K-Digital training 지원) 3주 차 학습일지 (22.04.06 ~ 04.12) - 4주차_자바 프로그래밍_객체지향 핵심(3) (0:58:54) - 5주차_자바 프로그래밍_객체지향 핵심(4) (1:39:08) - 5주차_자바 프로그래밍_자바와 유용한 클래스들(1) (1:16:27) - 5주차_자바 프로그래밍_자바와 자료구조(1) (0:55:57) - 6주차_자바 프로그래밍_자바와 자료구조(2) (0:59:31) - 6주차_자바 프로그래밍_자바와 자료구조(3) (0:37:26) 이번 주는 추상 메서드부터 시작해서 제네릭 프로그래밍까지 많은 개념들을 배웠다.. [MySQL] 컬럼 생성시 unsigned을 사용하는 의미 테이블에서 컬럼을 생성할 때 unsigned 를 선언할 때가 있다. unsigned 는 해당 컬럼에서 '음수' 를 사용하지 않겠다는 의미이다. 예를 들어 int 형 범위는 - 2147483648 ~ 2147483647 인데 음수를 사용하지 않으면 절반은 낭비가 된다. 만약 쓸모없는 음수 범위를 버리고 양수로 사용한다면 사용 가능한 int 형 범위가 0 ~ 4294967295 로 넓어진다. 따라서 음수를 사용하지 않는 컬럼을 생성할 때 unsinged 선언을 해서 더 효율적인 구조를 만들 수 있다. CREATE TABLE test ( id INT(11) UNSIGNED NOT NULL, ... ... ) [2주 차 학습후기] Java&Spring boot로 시작하는 웹프로그래밍 (feat. 자바 인강) - 총 8주 과정 (22.03.23 ~ 22.05.18) - 총 33시간 과정 - 100% 온라인 진행 - Lv.2 (실전-심화) - 무료 (K-Digital training 지원) 2주 차 학습일지 (22.03.30 ~ 04.05) - 2주차_자바 프로그래밍_객체지향 입문(1) (1:47:43) - 3주차_자바 프로그래밍_객체지향 입문(2) (1:31:06) - 3주차_자바 프로그래밍_객체지향 입문(3) (0:46:45) - 3주차_자바 프로그래밍_객체지향 입문(4) (1:21:05) - 4주차_자바 프로그래밍_객체지향 핵심(1) (0:52:40) - 4주차_자바 프로그래밍_객체지향 핵심(2) (0:55:47) 이번 주에 첫 스터디 모임을 했다. 나를 포함해서 5명인 9조는 첫 모임에서 한 명을 제외하.. [MySQL] 문자열 함수, 'LENGTH( )'와 'CHAR_LENGTH( )'의 차이 LENGTH 는 문자열의 '바이트 길이'를 가져오는 함수이다. 한글은 한 글자를 표현하기 위해서 3 byte 를 사용하기 때문에, LENGTH 함수로 읽으면 한 글자당 3 을 출력한다. 따라서 LENGTH 로 '안녕' 을 읽으면 6 이 출력된다. 반대로 영어는 한 글자가 1 byte 이라서 알파벳 개수만큼 출력된다. SELECT LENGTH('안녕'); -- 6 SELECT LENGTH('abcd'); -- 4 CHAR_LENGTH 는 문자열의 길이를 가져오는 함수이다. 문자의 byte 수를 계산하기 않고 단순히 몇 개의 문자가 있는지를 가져오는 함수이다. 따라서 문자열의 길이를 알기 위해서는 CHAR_LENGTH 를 사용하는 것이 좋다. SELECT CHAR_LENGTH('안녕'); -- 2 SELEC.. [MySQL] SQL 쿼리는 꼭 대문자로 작성해야 하는가? [MySQL] GROUP BY와 SELECT의 관계 [MySQL] NULL 값 기준으로 ORDER BY 정렬하기 기본적으로 NULL 값을 제외하려면 WHERE 절에서 IS NOT NULL 을 선택하면 된다. 그렇지 않고 ORDER BY 로 정렬하면 NULL 값이 가장 위에 올라온다. 즉 NULL 값이 우선시된다. 만약 ORDER BY 로 정렬했을 때 NULL 값을 가장 아래로 내리고 싶다면, ORDER BY 문에 ' IS NULL ASC ' 를 추가하면 된다. SELECT * FROM 테이블명 ORDER BY name IS NULL ASC; -- NULL이 아닌 값이 우선 조회됨 반대로 NULL 값이 우선적으로 취급되었으면 좋겠다면 ORDER BY 문에 ' IS NULL DESC ' 를 추가하면 된다. SELECT * FROM 테이블명 ORDER BY name IS NULL DESC; -- NULL 값이 우선적으로.. [MySQL] LIMIT 사용법 (feat. OFFSET) - LIMIT 원하는 행 개수 처음부터 몇개만 가져오기 SELECT * FROM 테이블명 LIMIT 10; -- 처음 부터 10개만 출력하기 (1 ~ 10) - LIMIT 시작 지점 , 원하는 행 개수 시작 지점을 정하고, 그 후 원하는 행 개수를 정하기 SELECT * FROM 테이블명 LIMIT 100, 10; -- 100번째부터 그 후 10개 출력하기 (101 ~ 110) - LIMIT 원하는 행 개수 OFFSET 시작 지점 어디서부터 몇 개를 가져올지 정하기 즉 OFFSET 은 시작 위치를 나타낸다. SELECT * FROM 테이블명 LIMIT 20 OFFSET 5; -- 5번째 행 부터 25행 까지 출력 (6 ~ 25) 아래 두 쿼리문은 동일한 결과를 가져온다. SELECT * FROM 테이블명.. [1주 차 학습후기] Java&Spring boot로 시작하는 웹프로그래밍 (feat. 자바 인강) - 총 8주 과정 (22.03.23 ~ 22.05.18) - 총 33시간 과정 - 100% 온라인 진행 - Lv.2 (실전-심화) - 무료 (K-Digital training 지원) 선택의 기준 자바 프로그래밍 언어를 오직 '자바의 정석' 책으로 독학했는데 그 과정에서 한계를 느꼈다. 특히 '객체지향 파트'에서 낯선 개념들 때문에 이해하는데 어려움이 있었다. 객체지향이란 고비를 넘기 위해서 책을 반복적으로 봤다. 노력이 통했을까, 처음엔 도통 모르겠던 개념들이 하나 둘씩 연결되고 퍼즐 조각 맞춰지듯 커다란 그림으로 다가왔다. 그 때의 희열은 정말 대단했다. 하지만 책 내용을 이해하는 것과 해당 개념을 내 것으로 만드는 것은 다른 문제였다. 객체지향의 최대 특징인 '캡슐화', '상속', '다형성'이 무엇인.. 이전 1 ··· 4 5 6 7 다음