22.09.23.Fri - 본질에 집중하고 불태워라
오늘의 요약= 본질에 집중하고 불태워라
1.
TS :타입스크립트
- js 살짝 보완된 버전?
- 느슨해진 js에 긴장을 주는 스크립트.
- pay: go > js front (hign-end).
js Literals
- 정수와 실수의 개념이 없다.
- 전부 실수 로 처리한다.
Strings - 작은 따옴표 또는 백틱을 사용해라.
- " 문자 " (가능하면 사용 x html 여러 속성명들 과의 구분을 위해)
- ' 문자 '
백틱
` 백틱 최근 기술 여러줄의 문자를 작성할때 편의를 위해
OperatorS 연산자
+,-,*,/
:사칙- parseInt(ger):/함수/:default가 실수 인 값을 정수로 변환/몫만 구할때 사용.
- 숫자를 문자열로 묶더라도 숫자형으로 변환해줌. '1234' -> 1234;
- 바꿀수 있는 것만 순서대로 좌->우로바꾼다. '1234kg' -> 1234;
- 순서대로 바꾼다. 'kg1234' -> NaN :Not a Number;
- N 진법으로 변환 가능하다 / 'kg1231' ,36 ; 12324
- backend-보안 에 중요한 정보다.
- 2 ~ 36 진법: 숫자 10 + 알파벳 26개 때문에;
- 2진법의 수를 2진법으로 해석해서 변환 가능.
- Number() 라는 함수도 있는데, 사용하지 말자.
- 응용력이 떨어진다.
- parseFloat : 실수를 표현
- 실수는 동등비교를 하면 안된다. 해야할 경우 정수로 변환후.
let
- 블럭영역 지역 변수
- 글로벌영역 전역 변수
- 누적 코드
- 기존 자료를 추가 하고 싶을때 사용
- 누적되게 코드를 작성, 결과값을 원래의 상자의 값에 누적되게 다시 담아준다.
2.
- 누적
- 숫자끼리는 누적되어 연산
- 문자는 연결된다.
- getElements 보다 querySelector를 사용하라. 알아만 두는 느낌.
- 선택값.innerHTML :
- js로 태그를 추가할 수 있다?
- 만능 진법 변환 프로그램
3.
var let 의 차이
- var = 블록 안에 써도 죽지않고 유지한다.
전역 과 박스의 차이
- 그룹화 되지 않은 변수를 globol(전역)
- 그룹화 안에 사용 되는 변수를 block(박스)
순서의 중요. 위에서 아래로.
생명주기
- 박스 안에 있는 변수는 박스 명령이 끝나면 사라진다.
- 속한 블럭이 종료되면 사라진다.
- 속한 함수가 종료되면 사라진다.
익명의 함수 즉시 실행 함수 function 전체를 ()묶고 바로 (); 실행하면 변수 최소화.
- 전역함수를 최소하 하면 좋다.
4. 논리적 설계를 잘하자/ default를 정하지 말자.
반복문
- 구조: 반복문 명령어(시작정보; 끝정보(조건); 증가 정보){반복할 명령}
- 명령안에는 조건을 추가할 수있다.
- if문(조건문)
- 반복문 명령어
- while
- 횟수를 정확하게 알 수 없을때 주로 사용.
- for
- 횟수를 알 경우
- for(시작정보;끝정보;증가정보){}
- for(시작정보;끝정보;증가정보){
if(종료시점) break;}
- switch
- while
- if 와 반복문을 잘하는 것이 판가름하는 척도이다.
- 같은 결과를 내는 방법은 많지만, 효과적으로 효율적으로 하는 방법은 많지않다.
- 시스템적으로 구조를 잘 짜면 처리 속도가 폭발적이다.
- 반복 횟수를 최대한 줄여야한다.
- 53 vs 35 ==? 53 *는 더하기 니까 더하는 횟수가 더 적은 53이 더 효과적이다.
- ++ -- 는 가급적 쓰지 마라/ 고착화 되어 머리가 깡;
- 판단문을 어떻게 작성하는지 중요!! 결국은 논리적 설계를 잘해야한다.
- 사소한 것들이 처리속도에 큰영향을 준다.(refactoring)
- 시작값;종료값;증가값을 고착화 하지 마라.
- Data의 무서움.
5.
반복문 구조
- 시작을 결정하는 식 [n개]
- 0개 이상 n개의 구문 올 수 있으면, 단 한번만 수행.
- 종료를 결정하는 식 [1개] 혹은 함수 를 호출할 수 있다. )함수를 불러오는 함수.
- 최종 결과물은 논리적인 값이 와야 한다.(함수 호출문이 올 경우 반환되는 값은 논리적인 값을 갖는다)
- 계산식을 변수에 넣어서 종료를 결정하는 식에 넣을 수있다.
- 증가를 결정하는 식
- 0개이상 n개의 구문이 올 수 있으며 반복구문이 처리되고 난 후에 실행된다.
- += : 변수+=i; 변수+i의 값을 변수에 넣어주겠다는 표현;
효과적인 반복문을 작성하는 방법
- : 반복 횟수를 줄여서 동일한 결과를 얻을 수 있는지를 확인한다.
- : 종료를 결정하는 모든 식에서 복잡한 계산이 이루어지지 않도록 한다.
=> 최종 결정된 값으로 종료를 판단하도록 한다. - for of 구문: 배역의 요소를 반복할 때 사용하는 구문이다.
- data만 가져온다. 단 n번째의 자료를 가져오지 못한다.
- 속도는 빠르다.
- for in 구문: 객체의 요소를 반복할 때.(배열의 요소를 반복할 때 사용하지 말자.!!)
// for of 구문
// 간단하지만 응용력이 떨어진다.
for(let i of arrayname){
console.log(i,'배열에 들어있는 자료')
}
// 배열의 자료가 몇번째인지 알고 싶을때 if를 사용한다.
for(let i=0;)
배열 for의 친구
- 배열의 총 개수를 구하려면 배열.length 사용.
- .length를 변수에 담고 그 변수를 반복문 조건식에 넣으면 속도 향상.
6. 어렵다.
- .split('') data를 배열로 만드는 것
- 만능 진법 변환 프로그램 실습
- 머리 깡
7.
let printData = '';
//문자열 공백 초기 셋
- charAt(): 문자열 선택
- 배열
- 객체
- 인덱스를 활용해라
- 값과 필요 데이터의 값을 일치시킨다. 배열,객체 등을 사용하여
알고리즘
- 알면 쉬운데 모르면 머리깡.
n진법 변환
최대한 나눠서(해체해서) 생각한다.
번외
-도지사
조건문을 쓰기 이전에 반복문으로 만들려고 해보자.
판단문을 여러개 해야하면 데이터를 배열해서 맵핑시켜서 하는 것이 좋다.
8.
생각 정리
알고리즘(Algorithm): 연산 演算 (펼 연,셈 산)
펼쳐 있는 식을 계산하는것 순서대로.
알고리즘 = 흐름에 맞게 계산하는 식 = program = 컴퓨터의 계산 방식
모든 여러 단어가 하나의 뜻을 의미한다. 이게 본질이다.
시간의 순서에 맞게 시작부터 끝 까지 컴퓨터가 계산하는 식 == 프로그램.
그 컴퓨터가 이해할 수 있게 만드는 식을 만드는 사람 == 프로그래머.
# 그럼 프로그램을 잘 만든다는 것은 무엇인가?
1. 논리(論理: 논할 논, 다스릴 리)적으로 시작과 끝을 나타내는 흐름도 == 프로그램을 설계.
- 시스템이 필요 `이상`의 부하(負荷:질 부,멜 하)를 지지 않고
유지보수(維持 保守: 벼리 유,가질 지,지킬 보,지킬 수)가 쉬워야 한다.
2. 설계한 흐름을 컴퓨터 언어로 입력(프로그래밍): back-end
- 유지 보수 쉽게
3. 고객(client)이 보는 화면을 보기 편하게 프로그래밍: front-end
4. 안배운 db나 서버 등등을 적합하게 연결해서
5.배포.
# 좋은 프로그램이란 무엇인가?
## 불편함을 해소해주는 서비스 == 가치를 주는 것.
- 가치
1. 정보
2. 재미
3. 해소
- 불편한 문제를 사람이 하는 것을 컴퓨터에게 위임하면된다. 프로그래밍으로.
# 프로그램에서 제일 중요한 것이 무엇이냐?
## 내 생각은 논리적 효율적 구조를 설계하는 작업이라고 생각한다.
그것이 본질이라고 생각한다.
가령 똥을 아무리 예쁘게 포장해도 똥은 똥에서 예쁜똥으로 변한 것이다.
소형차 엔진을 스포츠카 프레임에 넣어도 빨라지지 않는다.
맛집은 섬이라도 찾아가듯, 클래식 자동차가 V8 twin turbo엔진이면 빠르듯.
본질== 내용이 좋으면 소비되고 사용되고 가치가 생긴다.
본질이 좋으면 결국은 시간이 해결해준다.
그것의 속도를 더 빠르게 하는 것이 꾸며주는 것(front)이고,
당신은 예쁜똥을 만드는데 시간을 소비하고 있는 것 아닌가?
많은 배움을 얻은 오늘 이였다.
'공부 > 오늘 배운것' 카테고리의 다른 글
22.09.27.Tue - 사용자를 위한 프로그래밍 (0) | 2022.09.27 |
---|---|
22.09.26.Mon - 그래서 프로그래머는 시인이다. (0) | 2022.09.26 |
22.09.22.Thu - javascrpit 라는 벽을 만나다. (1) | 2022.09.23 |
22.09.21-논리 구조 설계 및 시각화의 중요성 (1) | 2022.09.21 |
22.09.20.Tue - 집중하자. (1) | 2022.09.20 |