수업 돌아보기 (계속 추가)

포키·2022년 10월 8일
1

국비과정

목록 보기
1/73

계속 머리에 넣고 있어야 할 것 같은 말들
기억하는 건 적지 않음

코드 작성 관련

필수 메서드

  • toString() : 객체 정보를 문자열로 반환
  • getter, setter : 사용자(main)에서 멤버변수 접근할 때 사용하는 메서드
  • equals(Object o) : 객체 비교 메서드 (새로운 클래스 작성시 필수)
  • hashCode() : for 'hashing' (Map 사용시 필수)

리팩토링 ★★★★★x100

: 같은 코드도 더 보기좋게, 중복없이, 짧게, 반복이 적게, etc...로 작성하려는 노력

중복 제거

1005

  • 값 중복
    -> 변수 사용
  • 연산 중복
    -> 1. 연속, 규칙이 있을 경우 - 반복문
    -> 2. 연속x 규칙x - 범위 지정, 메서드 생성 등

효율 & 단순

1007

  • 변수 재사용
    : 코드의 구조를 잘 이해한다면 변수를 덜 만들 수 있다
  • 조건 단순화
    : 복잡하게 교차하지 않고, 해당 조건값 저장 변수 만들기
    369게임
  • public static fianl int 변수 (상수화)
    : 숫자(상수)에 이름 붙여주기
    -> 구체적인 숫자를 몰라도 코드를 읽고 쓸 수 있음
    ex) 자판기 객체의 상품번호 (COLA=1), zealot 객체의 최대•최소체력 (MAX_HP=100, MIN_HP=0)
  • 배열의 행렬 전환 - pivot
		int[][] arr = new int[n][m];
        // arr은 원소로 int배열 n개를 가지는 배열
        // arr의 원소는 int값 m개를 가지는 배열
		int[][] arrReverse = new int[arr[0].length][arr.length];
        // int[][] arrReverse = new int[m][n]; 과 같은 의미
        // arr.length = n / arr[0~n].length = m
        // arrReverse는 원소로 int배열 m개를 가지는 배열
        // arrReverse의 원소는 int값 n개를 가지는 배열
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < arr[i].length; j++) {
				arrReverse[j][i] = arr[i][j];
                // ex) arr의 (1, 2) 값을 arrReverse의 (2, 1)에 넣기
			}
		}

코드 짜는 법

1007

  • 마지막값 변경?? 대신 첫값 변경 하기
  • 경로 나눠주기 (if문, key값 변수) (ex) 첫값 경로 vs. 나머지값 경로)

주사위경우의수

반복 횟수 줄이기

1006
반복문은 가급적 적은 반복으로 결과를 구하도록 노력!
1007
소수구하기

예측 가능하게 작성

continue, break 쓰지 않기

에러 방지

0930
1. 블럭을 보면 수행이 보장되는 블럭인지 아닌지 확인! 변수가 있다면 특히 더 확인!
1) 컴파일 과정에서 변수(값)는 계산되지 않는다. (자료형 확인 정도만...)
예를 들면 if문에서 조건이 무조건 true여도! 존재하지 않는 false인 경우까지 고려하여, 컴파일 error를 반환할 수 있다

기술, 용어, 상식

0921

  1. Java의 장점은 안정성이다

1005

  1. 언어체계가 확립되어 기준이 되는 버전 = 1.5

1014

  1. 오버로딩(method overloading)이란?
    = 메서드 중복정의
    만들어진 코드가 불러쓰기 편하도록 하기 위함 (쓰는 사람 입장)

  2. 오버라이딩(method Overriding)이란?
    = 메서드

  3. 익명내부클래스(Anonymous Inner Class)?

1012
1. 클래스 간의 순서는 없다
자바 코드에서 순서는 오직 '메소드 안'에만 존재한다!

0418
1. GET 방식과 POST 방식의 차이
파라미터(사용자가 보내는 정보)가 요청라인(URL)에 담겨 보내지면 GET
파라미터가 바디에 담겨 보내지면 POST

이외 - 태도, 팁

0922

  1. 프로그래밍 언어를 배우는 순서: 기본문법 -> 복수data -> GUI -> I/O -> Thread -> Network

0927

  1. 공부법: 코드 한줄한줄에 주석을 달아보고, 모르면 질문

  2. 이상적인 개발: 개발은 사람들과 함께하는 것 -> 이해하기 쉽게 코드 쓰기

0928

  1. 우리는 단순 코드 작성이 아닌 대체 불가능한 업무를 지향해야 한다.
    : 무엇이 필요한지, 어떻게 요구를 충족시킬지, 변경 사항을 어떻게 반영하고, 오류를 어떻게 보완할지

1014

  1. 생성자는 메소드가 아니다
  • Java api를 보면 methods summary와 constructors summary가 분리되어 있음.

1018

  1. 코드가 왜 이렇게 나오는지 '사용자/개발자/컴퓨터 입장'에서 생각해보기

1205
1. AND연산 (&&) : (조건A) && (조건B)에서 조건 A가 false일 경우 B는 확인하지 않는다. (B를 확인하지 않아도 자동 false 처리한다.)

0414
1. 설정값을 클래스 내부에서 저장해둘 경우, 설정값이 변화할 때마다 새롭게 컴파일해야 해서 기존 파일들과 충돌이 일어날 수 있음
이 경우 수정 시에도 컴파일할 필요 없어 충돌의 여지가 적은 Properties를 사용하면 더 유연하게 설정값을 변경할 수 있다.

0419
1. 캐시 사용안함 설정

<%
   response.setHeader("Cache-Control", "no-cache");
   response.addHeader("Cache-Control", "no-cache");
   response.setHeader("pragma", "No-cache");
   response.setDataHeader("Expires", 1L);
%>

0.523
1. sql - delete, update 사용하기 전에 꼭 select로 확인하기!!

profile
welcome

0개의 댓글