분류 전체보기(619)
-
우테코, 웹 기초
인터넷과 웹 (1) 인터넷 '전세계적으로 연결된 컴퓨터 네트워크'로 미국 국방부에서 군사 목적으로 만든 알파넷이 시초이다. (2) 웹 인터넷 상의 정보를 하이퍼텍스트 방식으로 검색할 수 있게 해주는 검색 시스템이다. 하이퍼테스트란, 하이퍼링크를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트를 의미한다. 웹의 기능 (1) URI vs URL URI: 인터넷에 있는 자원을 나타내는 유일한 주소로, 하위 개념으로 URL, URN이 있다. URL: 컴퓨터 네트워크 상의 자원의 주소를 의미한다. https://www.naver.com/index.html 와 https://www.naver.com/를 클릭했을 때 나타나는 페이지의 차이는 없다. naver.com은 네이버 서버의 주소를 의미하고,..
2023.03.12 -
레벨 1 사다리 미션, step 1 리뷰 정리
사다리 미션 잘한 점 1. 자동차를 움직이는 numberGenerator 인터페이스 활용 - 인터페이스 활용을 통한 전략패턴 사용 및 유연성 확보 - 인터페이스 활용을 통해 test 로직 유연성 추가 피드백 받은 부분 1. 컨트롤러가 NumberGenerator를 필드로 가지는 것이 올바른가? - 컨트롤러가 사용하는 도메인을 제외한 도메인 객체는 컨트롤러나 뷰로부터 보호받아야할 필요가 있다. 2. view에 domain 객체가 침범하고 있는 것이 괜찮은가? - view는 domain에 대해 알지 못해야한다. controller에서 domain을 풀어서 view에게 전달해야한다. 내가 제시한 해결 방법 (1) 출력용 도메인을 만든다. (2) 단순히 unmodified 형태로 도메인을 전달하고 이를 곧바로 ..
2023.03.10 -
아이템 68, 항상 표준 명명 규칙을 따라야한다.
아이템 68, 항상 표준 명명 규칙을 따라야한다. 1. 철자 규칙 특별한 이유가 없는 한 철자 규칙은 반드시 따라야한다. 이 규칙을 어기게되면 API로 사용하기도 어려울 뿐더러 유지보수를 하기도 어렵다. 철자 규칙은 다음과 같은 종류가 있다. 패키지와 모듈 이름 패키지와 모듈 이름은 각 요소를 점(.)으로 구분하여 계층적으로 짓는다. 요소들은 모두 소문자 알파벳이나 숫자로 이뤄진다. 조직의 인터넷 도메인 이름을 역순으로 사용한다. ex) com.google 표준 라이브러리와 선택적 패키지들은 java와 javax로 시작한다. 패키지 이름의 각 요소는 일반적으로 8자 이하의 짧은 단어로 한다. 이때 약어를 사용하기도 한다. ex) utilities (x) → util (o) 요소의 이름은 한 단어나 각 단..
2023.03.08 -
자바의 문자열
자바의 문자열 String 생성 방법 일반적으로 리터럴로 String을 생성하거나 new 키워드로 객체를 생성하거나 intern()을 사용하는 방식이 있다. final String a = "a"; final String b = new String("a"); final String c = new String("a").intern(); 리터럴을 사용해 String 객체를 생성하는 경우에는 새로운 String 객체를 생성하지 않는다. 반면에 new String을 하게 되면 새로운 객체를 만들게 된다. 따라서 다음의 결과가 발생한다. System.out.println(a == b); // false 하지만 intern()을 사용하는 경우에는 String pool에 값이 없다면 이를 생성하고, 그 값을 가리키는 ..
2023.03.05 -
아이템 15, 클래스와 멤버의 접근 권한을 최소화하라
아이템 15, 클래스와 멤버의 접근 권한을 최소화하라 정보 은닉은 각 컴포넌트가 외부에 의존하지 않고 독자적으로 동작할 수 있다는 점 때문에 다음과 같은 장점을 가지고 있다. 소프트웨어 재사용성을 높인다. 독립적인 컴포넌트는 다른 환경에서도 사용이 가능하다. 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬적으로 개발 가능하기 문이다. 시스템 관리 비용을 낮춘다. 디버깅과 컴포넌트 교체 부담이 적기 때문이다. 성능 최적화에 도움을 준다. 병목 현상이 발생하는 컴포넌트를 정해 다른 컴포넌트에 영향을 주지 않고 최적화할 수 있기 때문이다. 큰 시스템 제작 난이도를 낮춰준다. 개별 컴포넌트에 대한 단위 테스트를 해가며 큰 시스템을 개발할 수 있기 때문이다. 자바에서의 정보 은닉 자바에서는 정보 은닉을 위해 다..
2023.03.02 -
자바, 객체야~ 일해라!
우아한테크코스의 프리코스부터 레벨 1을 진행하는 지금까지 배운 것 중에 가장 인상 깊은 내용이 무엇인가?하고 물어보면 나는 곧바로 “객체가 일하도록 해라!”라는 내용을 말할 것이다. ‘객체는 객체스럽게 사용한다.’ 우아한테크코스 프리코스 기간 중에 받았던 피드백 중에는 다음과 같은 내용이 있었다. 이는 무분별한 getter 사용을 자제하고 객체가 스스로 일하게끔 하라는 의미였다. 이를테면 다음과 같은 코드가 있다고 가정해보자. (Line 클래스는 생략…) 사다리 게임을 진행하는 코드의 예시이다. 플레이어는 위치에 대한 정보를 가지고 있고, 플레이어의 위치를 line에 전달했을 때 사다리가 어디로 연결되어있는지 확인할 수 있는 코드이다. Player는 getter와 setter를 통해 플레이어의 현재 위치..
2023.02.27