231011

한라봉봉·2023년 10월 11일
0

CSS

CSS 속성에 사용하는 단위

  • 고정: px
  • 상대: %
  • 부모를 기준(텍스트): em
  • html 기준(텍스트): rem

html 기본문서의 글자크기는 16px

텍스트 속성

  1. font-family: <글꼴1>, <글꼴2>...<글꼴유형>;
    • 1개이상의 폰트를 설정한다. 글꼴이 없으면 다음 순위 글꼴을 적용한다.
    • 글꼴 유형이란 글꼴의 개념이 아닌 글꼴의 형태이다. 지정한 글꼴을 전부 불러오지 못하더라도 텍스트가 유사한 형태로 보인다.(ex: serif, sans-serif, monospace, fantasy, cursive)
    • font-family: Batangche, "Times New Roman", serif;(공백이 있는경우 "" 붙여야 구분함)
  2. font-size
  3. font-style: normal/italic/oblique;
    기본, 이탤릭체(글꼴에서 지원하는 이탤릭체), 기울임꼴(단순히 글자를 기울여 보여줌)
  4. color
  5. text-align:left/center/right/justify;
    왼쪽정렬, 가운데정렬, 오른쪽정렬, 양쪽정렬
  6. text-decoration: none/line-through/overline/underline
    • 텍스트장식 모두지움, 텍스트 관통 선, 텍스트위 선긋기, 텍스트 밑줄긋기
    • 최근에는 html 태그로도 텍스트 관통선을 그을수있다.
  7. letter-spacing:normal/15px;
    • 웹 브라우저 기본값/15px 적용
    • 자간조절(글자 사이 간격)
  8. line-height: normal/1.5/200%/16px;
    • 웹 브라우저 기본값/현재 font-size1.5/현재 font-size2배/입력 크기 적용
    • line-height가 font-size보다 작으면 윗줄과 아랫줄의 텍스트가 겹쳐 가독성이 떨어짐. 항상 line-height > font-size 로 설정하는 것이 좋다.

box

주의점

  1. margin: 10px 20px; == margin: 10px 20px 10px 20px;
  2. margin 겹침현상
    • 인접한 margin 값은 큰값 하나로 통일되어 한곳에만 적용된다.
    • 겹침현상은 마진이 아닌 padding 사용시 예방된다.

border style

p.203
1. border / padding / margin 값 설정

  • border: 10px
    -> 상/하/좌/우 10px 적용
  • border: 10px, 30px
    -> 상하 10px, 좌우30px 적용
  • border: 10px, 30px, 20px
    -> 상10px, 좌우30px, 하20px 적용
  • border: 10px, 20px, 5px, 30px
    -> 상10px, 우20px, 하5px, 좌30px 적용
  1. 선 굵기도 설정가능
    border-bottom-width: thick;
    border-left-width: 1px

backgroud

  1. color
  2. image

position

static

  • 변화 없음, 디폴트값

relative, absolute

  • 상대좌표는 요소를 기준으로 할수 있음
  • 절대좌표는 웹페이지전체 시작점 등 절대적인 좌표위치에 따라 배치

기타

  1. beautifulsoup
    • 웹크롤링시 사용하는 파이썬 패키지
  2. 가운데정렬
    margin:0 auto
  3. 인라인 스타일은 태그 안에
<strong style="color:red;/>
  1. CSS 전체

    • 이전 CSS(table) : 글자크기 / 간격 / 글꼴
    • 반응형 이후(div) : 배치(box, display: float <-수평메뉴 / position, flex, grid 3가지 이해. Mix해서 써야됨)
    • JSES7을 기준으로 봐야함. 이후 연도로 바뀌었으나 큰 틀은 변화없음
  2. 3개 mix

    • position: 절대 / 상대
    • flex : 1차원, 한축만 선택
    • gird : 2차원, 행/열 - 가로 세로
  3. java 버전

    • 1.8 == 8 버전이 가장 많이 쓰임
    • 8~11까지 -> 톰캣9 -> 스프링5 -> 스프링 부트 2.x
    • 17버전 -> 톰캣10 -> 스프링6 -> 스프링 부트 3.x
  4. js 호이스팅
    JSES6
    - var 중복가능
    - let 일반 변수. 지역과 전역을 구분하고 중복을 불허
    - const == java의 final, 상수

https://cafe.naver.com/hamminglab/21079

java

Class

정적 멤버, 인스턴스 멤버

  1. 정적멤버: static(필드|메소드), 클래스에 고정.
    • 정적 메소드와 정적 블록(일괄 초기화) 내부에 인스턴스 필드나 인스턴스 메소드를 사용할 수없다.
  2. 인스턴스: new로 생성한 객체에 소속

static final 대문자

  1. 상수는 객체마다 저장할 필요가없고, 여러개의 값을 가져도 안되기 때문에 static 이면서 final인 특성을 가져야 한다.
    따라서 상수는 다음과 같이 선언한다.
    static final 대문자 [=초기값];

import (*)

  1. 지정된 모든 클래스를 인식
  2. 단, 그 단계만 가능

import java.util.date
import java.util.input
import java.util.input
-> import java.util.*

import java.uti.oututp.sort
-> import java.util.* 로 커버할수 없다.

  1. 같은 이름의 클래스가 하위에 있는경우 컴파일 에러. 이럴때는 패키지명을 모두 써주고 import문은 필요없으므로 지운다.

  2. import 문 자동추가

    • 이클립스 Ctrl+shift+O import추가, 사용하지 않는 import 정리시 사용.
    • 인텔리제이는 Ctrl+alt+O 단축키없이 자동 추가되나, 사용하지 않는 import 정리시 사용.

getter setter 생성자 자동생성

alt+Insert
1. 객체 지향 프로그래밍에서는 직접적인 외부에서의 필드 접근을 막고 대신 메소드를 통해 필드에 접근하는 것을 선호 -> Setter 사용

디자인 패턴

  1. 책 추천: 헤드 퍼스트 디자인 패턴 -> 14가지 GoF(Gang of Four 최초 작가가 4명임) 패턴 소개
  2. 싱글톤 == SPA

상속

extends 와 implement

  1. extends <- class
    -실제 상속, 한개 부모 클래스만 상속가능(java특성임), class에 실제 내용이있음
  2. implement <- interface
    -구현체, 여러개 구현가능, interface에 선언만 해놓음

부모생성자 호출 super();

  1. 자식객체는 부모 객체가 먼저 생성되고 이후 생성된다.
  2. 부모객체의 생성자도 호출해야만 생성된다. 호출 위치는 자식 생성자 맨 첫줄에 숨겨져 있는 super()에 의해 호출된다.
  3. 부모클래스에 기본생성자가 없고 매개변수를 갖는 생성자만 있다면, 개발자는 super(매개값, ...) 코드를 자식 생성자에 직접 넣어야 한다.
  4. 매개변수 없다면 super() 생략가능(컴파일시 자동 추가됨)

메소드 재정의(메소드 오버라이딩)

  1. 부모 메소드가 자식이 사용하기에 적합하지 않으면 자식 클래스에서 재정의해서 사용
  2. 오버라이딩시 규칙 주의
    • 부모 메소드의 선언부(리턴타입, 메소드이름, 매개변수) 와 동일해야 한다.
    • 접근 제한을 더 강하게 오버라이딩 할수 없다.(public -> private)
    • 새로운 예외를 throws 할수없다.
  3. 메소드를 재정의 하면, 기존 부모 메소드를 무시하므로 100줄중 한줄만 바꾸고 싶더라도 100줄 모두를 자식메소드에서 다시 작성해야 한다.
  4. (@Override 애너테이션 사용은 인텔리제이 alt+Insert로 자동 생성가능. 이클립스는 source 참고)

protected 접근제한자

  1. 제한 가능 대상: 필드 생성자, 메소드
  2. 같은 패키지이거나, 상속받은 자식 객체만 사용가능

자동 타입 변환

  1. 부모 타입으로 자식객체를 대입할 수 있다.
  2. Cat 객체를 생성하고 Animal 변수에 대입하면 자동 변환이 일어난다. -> 부모든 자식이든 타입만 다를뿐 동일한 객체를 참조한다. p.306 참고
  3. 객체지향 프로그래밍의 일환으로, 다형성을 지원하기 위해서 사용한다.
    처음부터 변경에 유연한 구조로 미리 설계하는 방식이다.
    1) List = ArrayList (정형 데이터)
    2) Map = HashMap (비정형 데이터)

다형성

p.315

  • 자동타입 변환 + 오버라이딩 = 다형성 구현(사용방법은 동일하지만 실행 결과가 다양하게 나오는 성질)
  1. 필드 다형성: 필드 타입은 동일(사용방법 동일) 대입되는 객체가 달라져서 실행결과가 다양하게 나올수잇는것
public class CarExample {
    public static void main(String[] args) {
        //Car 객체 생성
        Car myCar = new Car();

        //Tire 객체 생성
        myCar.tire = new Tire();
        myCar.run();
        // HankookTire 객체를 Tire 필드인 tire에 대입할수 있다. 자동타입 변환이 되기 때문.
        myCar.tire = new HankookTire();
        myCar.run(); // HankookTire는 roll() 메소드를 오버라이딩(재정의) 하고 있으므로 해당 값이 나온다.
        // 자동타입 변환 + 오버라이딩 = 다형성 구현(사용방법은 동일하지만 실행 결과가 다양하게 나오는 성질)
        myCar.tire = new KumhoTire();
        myCar.run();
    }
}
  1. 매개변수 다형성: 메소드가 클래스 타입의 매개변수를 가지고 있을경우, 호출할때 자식객체를 제공할수도 있다.(동일한 타입의 객체를 제공 하는 것이 정석이긴 함) 여기서 다형성이 발생.
public class DriverExample {
    public static void main(String[] args) {
        //Driver 객체 생성
        Driver driver = new Driver();
        
        Bus bus = new Bus();
        /* 매개값으로 Bus 객체를 제공하고 driver 메소드 호출
        매개값은 Vehicle 타입으로 Bus 타입을 대입할 수있다. 자동타입 변환이 되기 때문.
        Bus 내에는 run 오버라이드 되어있으므로 dirve() -> run() 메소드 실행시 Bus run()이 실행 */
        driver.drive(bus);
  
        //어떤 자식 객체를 제공하느냐에 따라 drive 실행결과는 달라진다. 이것이 매개변수의 다형성이다.
        Taxi taxi = new Taxi();
        driver.drive(taxi);
    }
}

과제

  • uml 하루 한개씩 정리해서 이해하기
  • p.286 /315/319 코드 짜오기
  • 명일 추상 -> abstract는 넘어가고, 인터페이스 학습
profile
백엔드 개발공부 로그를 기록합니다

0개의 댓글