프로그래밍 오버뷰
01 동작 원리

- 클라이언트(웹 브라우저)의 요청에 따라 서버가 알맞은 주소를 찾아 html, css, js코드를 클라이언트에 주면 브라우저가 이를 해석하여 사용자에게 보여줌
- 서버는 데이터베이스에 데이터를 저장하기도함
02 개발분야
- 웹 클라이언트

- 모바일 클라이언트

- 서버

프로그래밍 시작하기 in JavaScript
프로그래밍의 원리, 기본개념에 중점을 두자 !
01 프로그래밍 기본개념
세미콜론
문장 끝이 ;작성하는 습관을 들이자
코멘트
코멘트 쓰는 습관 들이자 ( //, /**/)
자료형(Data Type)
- 숫자(Number) : 정수형(Interger), 소수형( floating point)
- 문자열(String): "Hello", 'hello'
- 불린(Boolean) : True&False , 어떤 조건에 의한 결과값으로 많이 사용
추상화 (Abstraction)
:복잡한 것들을 의미에 맞게 단순화하는 것 = 목적 명확히, 불필요한 것 숨기기, 핵심만 드러내기
변수
let 변수이름;
- 문자, 밑줄(_), 달러($)로 시작해야함
- 대문자와 소문자 구별됨
- 예약어(if, for, let ..) 사용하면 안됨
- 의미 없는 이름 (a,b,c)등은 좋지 않음
- 너무 추상적인 이름은 좋지 않음
- camelCase : 첫번째글자는 소문자로하고 띄어쓰기가 있는 각 단어의 첫문자를 대문자로 표기하면 좋음
vscode 들여쓰기 space 2칸으로 설정하는 법
Step1: 상단의 검색창에서 editor tab 이라고 검색한 다음.
Step2: Editor: Detect Indentation 은 체크 해제
Step3: Editor: Tab Size 는 2로 변경
Step4: 기본 값이라 변경할 필요는 없지만 Editor: Insert Spaces 부분이 체크 되어 있는지만 한 번 확인
함수
복잡한 내용은 함수 내부에 숨기고 핵심내용은 함수 이름으로 드러냄
//함수 정의
function 함수이름(){
명령;
명령;
};
//함수 호출
함수이름();
파라미터
함수 내에서 변수처럼 사용 가능
function 함수이름(파라미터){
console.log(파라미터)
};
함수이름(값);
여러 개의 파라미터
function 함수이름(파라미터, 파라미터){
console.log(파라미터)
}
함수이름(값);
retrun문
함수가 실행된 자리에 값을 돌려줄 수 있음
function getTwo(){
return 2;
};
console.log(getTwo());
프로그래밍 핵심 개념 in JavaScript
01 자료형
숫자형
거듭제곱은 곱셈보다 우선순위가 높음
//거듭제곱 2^3
console.log(2**3)
문자열
에디터가 자동으로 닫는마침표를 찍어줌
console.log("I'm Iron man");
console.log(\'I\'m Iron man\');
console.log(`He said "I'm Iron man"`);
불대수
일상적인 논리를 수학으로 표현하는 것
- AND 연산
- OR 연산
- NOT 연산
불린형
console.log(3 === 3) //일치
console.log(3 !== 3) //불일치
typeof 연산자
해당 자료형을 문자열로 되돌려줌 => 다른 연산과 함께 사용할 때는 연산의 우선순위를 고려해야함
console.log(typeof 1);
console.log(typeof 4 -2); // number-2 => NaN
형변환(Type Converesion)
처음에 값으로 정해진 자료형을 다른 자료형으로 바꾸는 것
boolean도 형변환 가능 => 숫자로 바꾸면 1(True)과 0(False)으로 표현
console.log(Number('10') + Number('5')); //15
console.log(String(10) + String(5)); //105
js는 규칙에 따라 자동으로 형변환 해줌
- 숫자와 문자를 연산할 때 +는 문자로 형변환 후 연결
- 나머지 연산자는 문자를 숫자로 형변환 후 연산
- 불린도 숫자로 형변환하여 연산
- 관계 연산자도 숫자 연산과 동일한 규칙 적용
- ===은 형변환이 일어나지 않고 ==는 형변환이 일어남
템플릿 문자열
특정한 형식을 가진 문자열
console.log(`${변수명}입니다.`);
null과 undefined
null은 값이 없다는 것을 의도적으로 표현할 때 사용하는 값
undefined는 값이 없다는 것을 코드를 실행하면서 확인하는 값
02 추상화
할당 연산자
할당 연산자의 오른쪽부터 계산하여 왼쪽 변수에 할당
return과 console.log의 차이
function printSquare(x){
console.log(x*x);
};
console.log(printSquare(3)); //undefined
옵셔널 파라미터
파라미터 있는 함수를 호출할 때 아무 값도 전달하지 않으면 undefined로 출력됨
function introduce(nation='한국'){
console.log(`국적은 ${nation}입니다.`);
};
introduce('미국');// 국적은 미국입니다.
introduce(); //국적은 한국입니다.
변수의 scope
변수에는 유효범위가 있어서 그 범위를 벗어나면 오류가 남
함수와 같이 블록문(중괄호로 감싸진 문) 안에 있는 로컬 변수들은 블록문 안에서만 유효함
상수
절대 변하지 않고 항상 일정한 값 , 선언할 때 값을 할당해야 오류가 나지 않음
대문자와 밑줄로 작성 for 변수와 구분을 쉽게 하기 위해
ex) pi
const PI = 3.14;
03 제어문
if문
//if문
if(조건부분){
동작부분
}
else if문
if(조건){
동작
}else if(조건){
동작
}else{
동작
}
switch문
switch(비교할값){
case 조건값_1:
동작부분;
break;
case 조건값_2:
동작부분;
break;
default:
동작부분;
}
for 반복문
for(초기화부분;조건부분;추가동작부분){
동작부분
}
- 추가동작 부분을 꼭 채울 필요는 없음
- 초기화 부분에서 생성한 변수는 for문의 로컬 변수
- 초기화 부분도 반드시 채울 필요는 없음
while 반복문
while(조건부분){
동작부분
}
글로벌변수로 조건비교할 때에는 while문을 쓰는 것이 좋음
break와 continue
continue문 만나면 그 뒤 문장은 실행하지 않고 건너뜀
for(let i =1; i<=10; i++){
if(i%2 === 0){
continue;
}
console.log(i);
}
//홀수만 출력
프로그래밍과 데이터 in JavaScript
01객체
key-value 쌍 = 속성(property)
//자료형: object
let codeit={
brandName: '코드잇',
bornYear: 2017
isVeryNice: true
}
객체에서 데이터 접근하기
1. 점표기법
cosnsole.log(codeit.bornYear);
2. 대괄호표기법
console.log(codeit['born Year']);
객체 다루기
해당 속성에 접근해서 값을 변경하면 됨
//수정
console.log(codeit.ceo);
codeit.ceo = '강영훈';
console.log(codeit.ceo);
//삭제
delete codeit.worstCourse;
//in 연산자 : property이름 in 객체 => boolean형태로 결과 제공
console.log('name' in codeit);
객체와 메소드
메소드는 객체의 고유한 동작으로서 함수에 의미를 부여할 수 있음
let greetings = {
sayHello: function{name}{
console.log(`Hello ${name}`);
}
}
greetings.sayHello('codeit');
for...in반복문
for (변수 in 객체){
동작부분
}
for(let k in codeit){
console.log(k);
console.log(codeit[k]);
}
- 객체의 preoperty이름이 숫자이면 오름차순으로 정렬되어 출력됨
- 나머지는 추가한 순서대로 정렬
02배열
03 자료형 심화
04 과제로 복습하기
'개발 > Backend' 카테고리의 다른 글
| [SpringBoot] 예제로 배우는 스프링부트 입문 | JPA 기초 (0) | 2024.07.21 |
|---|---|
| [Spring Boot] 예제로 배우는 스프링부트 입문 | JdbcTemplate (0) | 2024.07.15 |
| [Spring Boot] 예제로 배우는 스프링부트 입문 | Form값 검증 (0) | 2024.07.07 |
| [Spring Boot] 예제로 배우는 스프링부트 입문 | Web 기초 (0) | 2024.07.06 |
| [Spring Boot] 예제로 배우는 스프링부트 입문 | Dependency Injection (0) | 2024.07.03 |