---
# System prepended metadata

title: 언어 기본

---

# 언어 기본
- int a = b + 10
![](https://i.imgur.com/bKKOTKt.png)
![](https://i.imgur.com/mQ6AyRQ.png)
![](https://i.imgur.com/4z6dOJS.png)
![](https://i.imgur.com/7BkbDPj.png)


# 언어 특징
- C
    - 최초의 고급언어. 메모리 직접 접근 가능 
- Java
    - JVM 가상머신. JAVA로 컴파일된 프로그램은 OS에 상관없이 실행가능 But 느림
- Javascript
    - 웹을 위해 구현된 언어. 최근에 Node 라는게 생겨서 웹 외 서버에서도 사용가능

- 느슨한 타입 VS 엄격한 타입
    - Type이 정의 안됨 -> 버그 발생할 확률이 높음, 자유로움 사용자가 쓰기위움
        - JavaScript -> TypeScript
    - Type이 정의 됨 -> 버그찾기가 쉬움
        - Java(Strict) -> Kotlin

- 인터프리터 VS 컴파일러 :+1: 
    - 컴파일러는 전체를 분석해서 수행. 틀린부분이 있으면 다시 처음부터 컴파일 시작
    - 인터프리터는 한줄씩 수행. 한줄씩 수행하니 틀린 부분 찾기가 힘듬
    - 최근에는 JIT

# 코딩 컨벤션
- 각 언어마다 변수명 짓는법이 정해져 있음 (네이밍 컨벤션)
    - https://hoonesden.tech/posts/namingconvetion/
- 프로젝트 별로 컨벤션이 존재하기도함
    - 요새는 규칙을 정의하면 자동으로 검사해주는 프로그램도 존재함
    - indent를 텝으로할지 스페이스로 할지. 스페이스면 몇칸으로 할지
```javascript=
if(){
    console.log("aaaa")
}else{
    
}

if(){
    console.log("aaaa")
}
else{
    
}
if() console.log("aaaa")

if()
    consolo.log("aaaa")
```


- 베스트 셀러
    - http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9788966260959


# 백엔드 VS 프론트엔드
- 백엔드 
    - DB와 통신 + API 구현
    - 서버 구조 (데이터 분산, 기타 등등)
    - DB와 직접 통신? 뚤어주세요
    - 스프링 공화국
- 프론트엔드
    - API를 가공
    - 웹페이지 제작
    - 웹 퍼블리셔
    - 리액트, Vue


# 언어를 안다
- 단순 if,for,while 아는게 X
- javascript 기준
    - 함수형 언어 (함수를 인자로 주고, 리턴할 수 있다)
    - Closures 같은 특징을 알 수 있다.

