반응형 전체 글113 우테코에서 찾은 나만의 효과적인 공부법 함께 자라기 우테코 이전에는 혼자 자라기를 매우 선호했다. 다른 사람과 함께 학습하는 과정에서 함께 자란다는 느낌을 받은 적이 없었기 때문이다.우테코를 기회로, 함께 자라기 경험을 위해 필독서 스터디를 진행했다. '처음에는 같은 책을 읽는데, 서로 공유해야 할 것이 있을까?'라는 생각을 하였다. 그러나 스터디를 진행하면서 생각이 조금씩 바뀌게 되었다. 스터디원들의 사전 지식이 모두 다르기 때문에, 같은 책을 읽어도 습득하는 지식의 양이 달랐다. 그래서 스터디원들과 이해한 내용을 공유하다 보면 새롭게 알게 되는 것들이 많았다. 또한 스터디를 통해 책의 이해가 되지 않은 부분들을 스터디원들이 쉽게 설명해주었다. 이렇게 스터디원들의 도움을 통해 많은 성장을 이루었고 혼자 학습해도 충분하다라고 생각했던 과거의 .. 2022. 5. 25. [Mysql] 날짜 연산 1. CURRENT_TIMESTAMP 실행 시의 시간 표시하는 함수 ex) SELECT CURRENT_TIMESTAMP; 2. 날짜 서식 날짜를 표기하는 방식이 다양하므로 TO_DATE 함수를 사용해 문자열 데이터를 날짜의 형태로 변환한다. TO_DATE('2022/05/23','YYYY/MM/DD') 3. 날짜 덧셈 기존 날짜를 a라고 할 때, a + 1 DAY의 형태로 계산한다. ex) SELECT CURRENT_DATE + INTERVAL 1 DAY; 4. 날짜 뺄셈 두 날짜 사이에 차이가 얼마나 발생하는 지 계산할 때 사용하는 함수 DATEDIFF(날짜1, 날짜2) ex) DATEDIFF('2022-05-22','1998-05-13') 2022. 5. 23. [Mysql] LIKE LIKE 는 문자열의 일부분을 비교하는 부분 검색을 할 수 있다. 패턴을 정의할 때 %와 _를 사용할 수 있다. 1. _ _는 임의의 문자 하나를 의미한다. 2. % %는 임의의 문자열과 매치하며, 빈 문자열에도 매치한다. SELECT * FROM EXAMPLE WHERE text LIKE '%SQL%'; 위의 sql문은 text에 SQL이 존재하는 행을 검색 SELECT * FROM EXAMPLE WHERE text LIKE 'SQL%'; 위의 sql문은 text에 SQL로 시작하는 행을 검색 % 자체를 검색하고 싶다면? -> \%로 검색 2022. 5. 12. 가상 호스트 가상 호스트란 ? 호스트는 네트워크에 연결된 하나의 컴퓨터를 의미한다. 즉, 가상 호스트는 한 대의 컴퓨터로 여러 대의 컴퓨터가 동작하는 것처럼 한다는 뜻 이런 이점을 이용하여, 서버 하나에 가상 호스트 여러개를 생성하여 소비자에게 빌려주는 서비스가 Shared Web Hosting 가상 호스트 운용 방식 1. Named - based ( 이름 기반 ) Name-based 방식의 가상 호스트는 같은 IP 주소를 가지고 여러 개의 호스트명을 가진다. 여러 개의 호스트명이 있을 때 ex) www.sun.org, www.ing.org 같은 IP 주소를 가지는 호스트를 구분하기 위해 서버에서는 클라이언트의 REQUEST 메시지 안에 들어가 있는 호스트 헤더 요청을 받는다. GET /.../... HTTP/1.1.. 2022. 5. 10. 적시에 방어적 복사본을 만들라 적시에 방어적 복사본을 만들라 자바는 안전한 언어다. 그러나 클라이언트가 불변식을 깨뜨리려 한다고 가정하고 방어적 프로그래밍을 해야 한다. 방어적 프로그래밍을 해야 하는 예: public class Period { private final Date start; private final Date end; public Period(Date start, Date end) { if (start.compareTo(end) > 0) { throw new IllegalArgumentException(); } this.start = start; this.end = end; } } 위의 클래스는 불변처럼 보인다. 하지만 Date가 가변이므로 어렵지 않게 불변식을 깨뜨릴 수 있다. public static void mai.. 2022. 4. 4. 제네릭과 가변인수를 함께 쓸 때는 신중하라 가변인수와 제네릭은 자바 5때 함께 추가되었다. 이 둘은 궁합이 좋지 않다. 가변인수 기능은 배열을 노출하여 추상화가 완벽하지 못하다. 그리고 배열과 제네릭은 타입 규칙이 서로 다르다. 이 두 부분에서 궁합이 맞지 않는다. 가변인수 동작 방식 가변인수 메서드를 호출하면 가변인수를 담기위한 배열이 생성된다. 그런데 내부로 감춰야 했을 이 배열을 클라이언트에 노출하는 문제가 있다. 제네릭과 같은 실체화 불가 타입 런타임에서 컴파일보다 타입 관련 정보를 적게 담고 있다. 따라서 메서드 선언 시 가변인수 매개변수로 제네릭을 선언한다면 컴파일러가 경고를 보낸다. 제네릭과 varargs를 혼용하면 타입 안정성이 깨진다! static void dangerous(List... stringLists) { List int.. 2022. 4. 1. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 태그 달린 클래스보다는 클래스 계층구조를 활용하라 다음 코드는 원과 사각형을 나타내는 코드다. public class Figure { enum Shape {RECTANGLE, CIRCLE} //태그 필드 - 현재 모양을 나타낸다. private Shape shape; // 사각형일 때 사용되는 필드 private double length; private double width; // 원일 때 사용되는 필드 private double radius; //원용 생성자 public Figure(double radius) { shape = Shape.CIRCLE; this.radius = radius; } //사각형용 생성자 public Figure(double length, double width) { shap.. 2022. 3. 29. 우아한테크코스 한 달 생활기 추상 클래스 우테코 우테코를 진행하면서, 우테코는 추상 클래스라고 생각했다. 우테코에서는 해야 할 것들을 명시해주었지만, 구현 방법은 가르쳐주지 않았다.한 달 동안 스스로를 우테코 클래스를 구현한 객체라고 생각했다. 우테코 클래스에는 많은 추상 메서드가 존재한다. 우테코의 객체로서, 나름대로 이 메서드들을 구현해보았다. 결과적으로 한 달 동안 2가지 메서드를 실행해보았다. 1. 미션 진행하기 우테코는 미션이 끊이지 않는다. 미션이 종료된 다음날에 새로운 미션이 시작된다. 우테코는 바쁜 스케줄을 제공해주었다. 모든 미션은 정답이 없다. 스스로의 판단하에 정답을 찾아가야 한다. 이 부분은 한 달이 지난 지금까지도 낯설다. 살아오면서 정답이 없는 일은 시도해본 적이 없는 것 같다. 정답이 없지만 정답을 찾아가.. 2022. 3. 26. 변경 가능성을 최소화하라 변경 가능성을 최소화하라 불변 클래스란? 인스턴스 내부 값을 수정할 수 없는 클래스 불변 클래스를 만들기 위한 5가지 방법 1. 객체의 상태를 변경하는 메서드를 사용하지 않는다. (setter) 2. 클래스를 확장할 수 없도록 한다. - 클래스 final로 선언하기 3. 모든 필드를 final 로 선언한다. 4. 모든 필드를 private로 선언한다. (필드에 직접 접근하는 것 막기) 5. 자신 외에는 내부 가변 컴포넌트에 접근할 수 없다. 즉, 가변 필드는 외부로 반환하면 안된다. public final class Complex { private final double re; private final double im; public Complex(double re, double im) { this.re.. 2022. 3. 25. 이전 1 2 3 4 5 6 7 ··· 13 다음 반응형