자바 웹 개발 과정 5주차🌞
뉴렉처 강사님의 국비지원 강의를 들으며 매주 공부한 내용을 포스팅으로 남기고 있다.
강의를 듣기 시작한 지 얼마 되지 않은 것 같은데 벌써 5주차라니...!
5주차에는 또 어떤 내용을 배웠는지 복습하는 시간을 가져보자🙂
Back-end
구조화된 프로그래밍을 위해 함수 정의하기
1. 절차를 자르는 도구인 함수의 특징
- 직접 사용 차단: 인터페이스 역할
- 작게 나누어서 사용
- 코드 집중화: 특정 함수의 코드 수정 시, 해당 함수를 사용한 다른 함수에서도 변경 사항이 적용됨
- 코드 재사용: 다른 곳에서도 코드를 쉽게 재사용할 수 있음
2. 자바에서 함수를 정의하고 사용하는 방법
- 매개변수 입력 시 자료형과 함께 입력하기
- return할 값의 자료형도 함수 이름 앞에 명시하기
static int add(int x, int y) {
return x + y;
}
데이터를 얻는 코드와 데이터를 출력하는 코드 분리하기
// 1. 검사진행자 수가 가장 많았던 날을 얻는 코드
static String getDate(String[][] rows, int count) {
int index = 0;
String date = "";
int max = getMax(rows, count);
for(int i=0; i<count; i++) {
if(Integer.parseInt(rows[i][3]) == max) {
index = i;
break; // max를 찾았으면 그 위치에서 끝나게 하기
}
}
date = rows[index][0];
return date;
}
// 2. 검사진행자 수가 가장 많았던 날을 출력하는 코드
static void printDate(String[][] rows, int count) {
String date = getDate(rows, count);
System.out.printf("검사진행자 수가 가장 많았던 날: %s\n", date);
System.out.println();
}
함수를 재사용하는 방법
1. 함수 재사용의 의미
- 소스코드를 컴파일했을 때 만들어지는 실행 코드를 가져와 재사용한다는 것을 뜻함
- 같은 Project 안에 있는 다른 클래스에서 함수를 재사용하는 방법
사용하고자 하는 함수가 위치하는 클래스를 함수 앞에 명시
LottoProgram.gen(); // LottoProgram - 사용하고자 하는 함수가 위치하는 클래스
LottoProgram.sort(lotto);
- 다른 Project에서 함수를 재사용하는 방법
원본 함수가 위치하고 있는 class 파일을 외부에 내보내기 위해 JAR 파일로 압축해주는 과정이 필요하다.
[원본 함수가 위치하는 프로젝트 오른쪽 마우스 클릭 -> Export -> JAR 파일 -> 원하는 위치 설정]
함수를 재사용하기 위해 JAR 파일을 내가 사용하고자 하는 프로젝트로 가져온다.
[사용하고자 하는 프로젝트 오른쪽 마우스 클릭 -> Build Path -> Configure Build Path -> Add External JARs -> export한 JAR 파일 클릭]
2. 함수 안에서 구조체를 사용했을 때 발생하는 문제점
int[] lotto = null; // 내가 생각하는 lotto를 기본 형식으로 쓰게 되면 lotto의 의미를 제대로 표현하기 힘듦
Lotto lotto = null; // 더 의미있는 개념 단위의 데이터로 묶어서 쓰자
-> 이렇게 되면 고립화되어야 할 함수에서 구조체 속 인스턴스 변수의 변화에 따라 함수 속 코드의 내용도 변화하게 된다는 큰 문제점 발생
-> 이걸 해결할 방법은 바로 캡슐화이다!
캡슐화
1. 캡슐화
- 연관 있는 변수와 함수를 클래스로 묶는 작업
- 데이터에 수정 사항이 생겼을 때 클래스 내에 있는 캡슐화된 코드에서만 오류가 생기기 때문에 오류의 범위가 한정된다는 장점이 있다.
- 캡슐화에는 은닉성이란 것이 있어서 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하게 할 수 있다.
2. 캡슐을 깨지 못하게 하는 도구: 접근 제어 지시자
- private: 동일 클래스 O, 외부 클래스 X
- public: 동일 클래스 O, 외부 클래스 O
객체지향 프로그래밍
1. 객체지향
- 지금까지는 함수가 앞세워지고 데이터가 뒤로 밀려나도록 코드를 작성했다.
함수지향: ex.Lotto.sort(lotto);
- 좀 더 사람에게 직관적인 코드를 작성하는 게 어떨까라는 생각에서 출발한 객체지향 프로그래밍
객체지향: ex.lotto.sort();
2. 객체지향적으로 코드 작성하기
// Program.java
// 로또 정렬하기
lotto.sort();
// ---------------------------------------------
// Lotto.java
public void sort() { // static 키워드를 삭제하고, 매개변수에 전달해줬던 Lotto 객체도 삭제
for(int i=0; i<this.size-1; i++) // 객체를 명시하는 대신 this로 변경, this는 생략 가능
for(int j=0; j<this.size-1-i; j++)
if(this.nums[j] > this.nums[j+1]) {
int temp;
temp = this.nums[j];
this.nums[j] = this.nums[j+1];
this.nums[j+1] = temp;
}
}
Front-end
CSS - grid 속성
1. 너비에 맞춰서 grid 그리기
- 고정 개수로 맞추기
grid-template-columns: 1fr 1fr;
- 고정 크기로 맞추기
grid-tempate-columns: 100px 100px 100px;
2. 아이템에 맞춰서 grid 그리기
grid-template-columns: repeat(auto-fit, minmax(100px, auto));
grid-template-rows: repeat(auto-fit, 100px);
3. grid에서 아이템을 정렬하는 방법
- inline축(수평) 정렬
a. justify-content: 행(row) 축을 따라 그리드를 준 박스 자체를 정렬한다.
b. justify-items: 행(row) 축을 따라 그리드 아이템 내부 콘텐츠를 정렬한다.
c. justify-self: 행(row) 축을 따라 그리드 아이템 내부 콘텐츠들의 정렬 위치를 각각 정해줄 수 있다.
- block축(수직) 정렬
a. align-content: 열(column) 축을 따라 그리드를 준 박스 자체를 정렬한다.
b. align-items: 열(row) 축을 따라 그리드 아이템 내부 콘텐츠를 정렬한다.
c. align-self: 열(row) 축을 따라 그리드 아이템 내부 콘텐츠들의 정렬 위치를 각각 정해줄 수 있다.
CSS - font 속성
font 속성은 font-family, font-size, font-style, font-weight 등의 단축 속성이다.
- font-family: 원하는 글꼴을 지정할 때 사용
- font-size: 글꼴의 사이즈 지정 시 사용
- font-style: 글꼴체 지정 시 사용
normal, oblique(기울임), italic(이탤릭), inherit(부모 태그의 값) - font-weight: 글자 굵기 지정 시 사용
Author And Source
이 문제에 관하여(자바 웹 개발 과정 5주차🌞), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minjulee97/자바-웹-개발-과정-5주차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)