[IntelliJ] 콘솔 한글깨짐 처리 (console log encoding .. with tomcat) https://thingsthis.tistory.com/328 카테고리 없음 2년 전
[CleanCode]6장 객체와 자료구조 ▷ 6. 객체와 자료구조 자료 추상화 public class Point { public double x; public double y; } public interface Point { double getX(); double getY(); void setCartesian(double x, double y); double getR(); double getTheta(); void setPolar(double r, double theta) } 위 코드는 구현을 외부로 노출하고 아래는 구현을 완전히 숨긴다. 아래 코드는 자료 구조의 이상을 표현한다. 위 코드에서 구현을 감추려면 추상화가 필요하다. 그저 조회 함수와 설정 함수(게터, 세터)로 변수를 다룬다고 클래스가 되지는 않는다. public interface .. BackEnd/CleanCode 3년 전
[CleanCode]4, 5장 주석 / 형식 맞추기 ▷ 4. 주석 들어가며 잘 달린 주석은 그 어떤 정보보다 유용하다. 하지만 근거 없고 경솔한 주석은 코드를 이해하기 어렵게 만든다. 우리는 코드로 의도를 표현하지 못해, 즉 실패를 만회하기 위해 주석을 사용한다. 주석은 오래될수록 코드에서 멀어진다. 주석을 유지보수하기란 현실적으로 쉽지 않다. 코드로 의도를 표현하라. // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags && HOURLY_FLAG)) && (employ.age > 65) {} if (employee.isEligibleForFullBenefits()) {} 몇 초만 더 생각하면 아래 코드처럼 의도를 명확하게 드러낼 수 있다. 좋은 주석 법적인 주석 결과를 경고하는 주석 - 아래 코드는 정적 초기화 함.. BackEnd/CleanCode 3년 전
[Java]JVM 동작 방식과 메모리 구조 ▷ JVM 동작 방식 1. 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다. 2. 자바 컴파일러가 자바 소스코드(.java)를 자바 바이트코드(.class)로 컴파일한다. 3. Class Loader를 통해 바이트코드를 JVM Data Runtime Area로 로딩한다. 4. Runtime Data Area에 로딩된 바이트코드는 Execution Engine을 통해 실행된다. ▷ JVM 구조 JVM Java Virtual Machine Java와 OS 사이에서 중계자 역할을 수행 자바가 OS 종류와 플랫폼에 관계없이 독립적으로 실행 가능하도록 지원한다. GC를 통하여 자동으로 메모리 관리를 해준다. Class Loader 생성된 바이트코드를 묶어 JVM이 운영체제로부터 할당받은 영역인 R.. Computer Science 3년 전
[CleanCode]3장 함수 ▷ 3. 함수 작게 만들어라! 함수를 만드는 첫 번째 규칙은 '작게!'다. 함수를 만드는 두 번째 규칙은 '더 작게!'다. 함수는 100줄을 넘어서는 안 된다. 아니 20줄도 길다. 다시 말해 if, else, while문 등에 들어가는 블록은 한 줄이어야 한다는 의미이다. 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. 그래야 함수는 읽고 이해하기 쉬워진다. 한 가지만 해라! 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다 . 그 한 가지만을 해야 한다. public static String RenderPageWithSetupAndTeardowns( PagaData pagaData, boolean isSuite) throws Exception { if (isTestPage(page.. BackEnd/CleanCode 3년 전
[CleanCode]1, 2장 깨끗한 코드 / 의미있는 이름 ▷ 1. 깨끗한 코드 코드란? 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업이 프로그래밍이며 이렇게 명시한 결과가 코드이다. 깨끗한 코드란? 1. 비야네 스트롭스트룹 우아하고 효율적인 코드, 논리가 간단해야 버그가 숨어들지 못하며 의존성을 최대한 줄여야 유지보수가 쉬워진다. 오류는 명백한 전략에 의거해 철저히 처리한다. 성능을 최적으로 유지해야 사람들이 원칙없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다. 깨끗한 코드는 한 가지를 제대로 해야한다. 2. 그래디 부치 단순하고 직접적이다. 잘 쓴 문장처럼 잘 읽힌다.(가독성 강조) 설계자의 의도를 숨기지 않으며 명쾌한 추상화와 단순한 제어문으로 가득하다. 3. 큰 데이브 토마스 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다. 단위 테스트 케이스와.. BackEnd/CleanCode 3년 전
[IntelliJ]자주 사용하는 단축키(Mac, Window) ▷ Mac Command - 변수 생성 및 세미 콜론 주입 : 엔터(기존 Option + Enter였으나 커스텀) - 자동완성 : Command + Space(기존 Ctrl + Space였으나 커스텀) - 한줄 복사 : Command + 백스페이스 - 한줄 제거 : Command + X - 현재 탭 닫기 : Command + W - 소스 자동정렬 : Command + Option + L - 오른쪽 탭으로 이동 : Command + Shift + ] - 왼쪽 탭으로 이동 : Command + Shift + [ - 테스트 클래스 생성 : Command + Shift + T - 생성자, Getter, Setter 자동 완성 : Command + N - 인터페이스, 추상 클래스의 오버라이드 메소드 자동 완성 :.. IDE/IntelliJ 3년 전
[알고리즘 문제]배낭 문제(백준 12865번) ▷ 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. * 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,00.. Algorithm/Dynamic Programming 3년 전
[알고리즘 문제]돌다리 건너기 ▷ 문제 철수는 학교에 가는데 개울을 만났습니다. 개울은 N개의 돌로 다리를 만들어 놓았습니다. 철수는 돌 다리를 건널 때 한 번에 한 칸 또는 두 칸씩 건너뛰면서 돌다리를 건널 수 있습니다. 철수가 개울을 건너는 방법은 몇 가지일까요? * 입력 첫째 줄은 돌의 개수인 자연수 N(3≤N≤35)이 주어집니다. * 출력설명 첫 번째 줄에 개울을 건너는 방법의 수를 출력합니다. ▷ 입력 예시 7 ▷ 출력 예시 34 ▷ 풀이 import java.util.*; import java.io.BufferedReader; import java.io.InputStreamReader; class Main { static int[] dy; public int solution(int n){ dy[1] = 1; dy[2] = .. Algorithm/Dynamic Programming 3년 전