모듈(Module)이란

 

모듈은 js파일 단위로 분리된 코드, 여기서 js파일은 특정기능을 가진 여러 함수와 변수의 집합

 

하나의 모듈에서 다른 모듈을 호출하여 사용가능

그 자체로도 프로그램이지만 다른 프로그램의 부품도 된다

일반젇으로 한개의 파일이 모듈이 된다

 

웹페이지 과제 때 팀원이 html과 js를 분리한 걸 봤는데 이게 모듈화로 보인다

 

필요한 이유는

1. 코드 베이스를 분리해 구조적인 관리 가능

- 확실히 html과 분리하니 적어도 html은 깔끔하게 보였다

2. 코드를 재사용가능, 모듈화다

- 필요한 기능이 같은 여러 html에 넣을 수 있겠구나

3. 모듈의 인터페이스만 노출 가능, 정보은닉화

-웹페이지를 f12로 뜯으면 가끔 js기능이 전혀 안나와서 당황했는데 이걸로 보인다

프로젝트 조져도 안들키나?

4. 종속성의 관리

 

이해가 안되서 긴빠이

데이터의 종속성 (Data Dependency) : 네이버 블로그 (naver.com)

 

데이터의 종속성 (Data Dependency)

약간의 관심이 생겨 스크랩한 것입니다.   *   데이터베이스를 생성하거나 관리하고 사용자의 질...

blog.naver.com

결론적으로 효율적이라는 말 같다

고마워요 우티스!

 

CommonJS(CJS)

 

브라우저 이외에서 모듈사용가능하게 해준다

해보니 대강 터미널에 node치는 거 같다

설명을 보니 노드에선 이걸 디폴트로 사용

 

모듈 사용법

 

export 명령어를 변수 함수앞에 붙이면 외부모듈에서 접근가능 

-대여 붙여진 내 우산 꼬라지

 

import,require 명령어를 붙이면 외부모듈 사용

-require오타치면 굉장히 짜증남

-둘의 구분법은 require: commonJS에서/ import는 ES6(ES2015)

어디서 긴빠이 친 소스코드따라 임포트 썼을 때 안먹은 이유가 나왔다

 

 

 

에러 핸들링은 에러를 관리하고, 예상치 못한 상황에 대처하는 방식입니다.

 

에러는 예상할 수 있는 에러와 예상치 못한 에러로 구분할 수 있는데,

예상치 못한 에러 상황이 더욱 많이 일어날 것으로 가정해야 합니다.

 

프로그래머가 작성한 코드에서 예상치 못한 에러가 일어날 가능성은 언제나 존재하고, 이러한 에러 상황을 대비해 언제든지 처리할 수 있어야 합니다.

 

서버에서 에러가 발생하지 않게 하기 위해서 저희는 예외 처리를 진행합니다.

예외 처리는 일반적으로 try … catch 문을 사용합니다.

 

확인을 위해 일부러 발생시킬 때에는 throw문을 사용

 

try 에서는 HTTP연결이 되고 있거나 파일과 같은 특정한 ‘자원’을 가지고 처리할 때가 있습니다.

하지만 해당 ‘자원'을 계속 가지고 있으면, 무의미한 메모리만 잡아먹으니

에러 여부와 상관없이 일정 시점에서는 해당 ‘자원'을 삭제 시켜야합니다.

그때 사용하는게 finally인데 좀더 알아봐야겠다

 

 

1 동기 비동기(Sync & Async)

 

동기- 동기로 실행된다= 코드 결과 나올 때까지 기다린다

 

예시는 놀이기구인데 영화관으로 생각해니 이해가 간다

영화관에서 상영 끝나기 전에 새 손님 못받는것처럼

동기로 실행되는 프로그램은 끝 날때 까지 새로 못함

입장퇴장이 동기적으로 관리된다

 

비동기- 실행순서 상관없이 결과가 나옴

 

음식점이 예제였는데 먼저 나올거 나오면 그 빈자리만큼 새로 들어가는게 가능

입장퇴장이 비동기적으로 관리된다

 

2 Blocking Model & Non-Blocking Model

 

Blocking Model- 코드 실행이 끝나기 전까지 제어권을 넘기지 않아 다른 작업 못하고 대기하는게 Blocking Model

 

Non-Blocking Model- 끝나지 않아고 실행제어권을 넘겨 다음코드 적용가능

 

js는 Async + Non-Blocking Model 즉 비동기에 논블록킹이라 지금 실행중인

코드가 끝나지 않아도 다음코드를 호출함

그결론적으로 명령들이 순서대로 ㅅㄹ행은 하지만 동기적 명령이 아니면 싹다 비동기로 진행

 

여기서 동기 비동기의 다른점은 

 

논블로킹- 제어권 넘기면 다른 코드도 가능해서 비동기가 가능하고

블로킹이면 비동기가 가능한 환경이라도 제어권을 넘기지 않아 비동기 불가

 

 

프로미스-promise

 

js에서 비동기를 동기로 처리하게 하는 빌트인 유형

 

왜 비동기를 동기로 처리하나?

js의 관점에서 그렇다는 얘기라고

 

여러가지 이야기가 더 있지만 후략

 

 

 

 

 

 

 

 

 

 

 

 

노드에 대해 전체적으로 배우는 날이였습니다

 

영상 다시봐야해서 오늘은 내용이 없습니다

이렇게 살면 안되겠구나 싶어서 무료강의와 유료강의를 더 구매했습니다

 

뭐라도 해야겠지요

'내배캠 TIL WIL > 내배캠 wil' 카테고리의 다른 글

내배캠 5주차 wil  (0) 2022.12.26
내배캠 4주차 wil 납기는 철저히  (0) 2022.12.19
내배캠 WIL 2주차 (정규화)  (0) 2022.12.04
내배캠 WIL 2주차  (0) 2022.11.27
내배캠 노드4기 1주차 wil  (0) 2022.11.20

한 것이 없습니다.

 

강의 몇개 추천 받고

 

js문서로 펑션을 빼는 정도만 배웠습니다

==============================================================

==============================================================

==============================================================

==============================================================

==============================================================

 

팀의 무게추를 맡고있다

 

내 파트도 팀원이 한다

근데 중복 파일명이 생기면 어쩌냐는 생각이 들어

 

파일 로컬에 올림

->중복 시 파일명 번호 추가 해서 변경할수도 있음

->경로 저장해서 경로만 가져옴

->작성한 텍스트와 경로를 디비에 저장

 

이러려고 했는데 안됨

 

저걸 할 능력도 능지도 없음

 

즉시 stackoverflow 입갤

 

업로드 된 파일이 같은 이름을 갖지 않도록하는 방법 Flask 파이썬 - 스택 오버플로 (stackoverflow.com)

 

How to prevent uploaded files from having the same name Flask Python

I am trying to build a website in python using flask that takes file uploads and saves them to a folder (called uploads). However, when two files with the same name are uploaded, the first one is

stackoverflow.com

 

굇수들 가라사대 이름에 추가하거나 이름 자체를 uuid로 갈아라

수업 수준에선 중복 찾는데 평생걸림

 

 

고마워요 Rahul K P!

 

 

 

uuid란?

 

  • UUID는 Universally unique identifier의 약자로서, 정보 식별을 위하여 사용되는 식별자이다
  • 128-bit 숫자로 이루어져 있으며, xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 형식으로 표현한다
  • UUID의 장점 중, 데이터들이 나중에 단일 DB로 통합되거나, 같은 채널에서 전송되더라도 식별자가 중복될 확률이 매우 낮다는 점이 있었다

출처

UUID란 무엇인가 – Hojongs Tech Blog – Hojong's a Knowledge Archive

 

UUID란 무엇인가

UUID는 Universally unique identifier의 약자로서, 정보 식별을 위하여 사용되는 식별자이다 128-bit 숫자로 이루어져 있으며, xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 형식으로 표현한다 UUID의 장점 중, 데이터들이 나

hojongs.github.io

 

랜덤 식별자 줘서 중복 가능성 줄이는 거

 

고마워요 Hojong님!

 

 

 

어제 슬쩍한 이미지 업로드 코드에 접목 3시간

 

코드
import uuid #uuid추가
코드
app.config['UPLOAD_FOLDER'] = './static/images/' #추가

@app.route('/fileUpload', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        f = request.files['file']
        hash_value = uuid.uuid4().hex
        f.save(os.path.join(app.config['UPLOAD_FOLDER'], hash_value + secure_filename(f.filename)))
        return render_template("check.html")

이런식으로 변경

 

저 파일을 고르고 제출

 

 

깔쌈하게 uuid화 완료

 

근데 꼴랑 이거했다고 crud 할줄 아는거임 하면 울고싶다

curd 크림은 잘 하는데

 

mysql만 보면 토나옴

https://github.com/neltia/flask-project/tree/main/01_File_Upload

 

GitHub - neltia/flask-project: 블로그 https://blog.naver.com/dsz08082에서 다루는 프로젝트를 시작하기 위한 플

블로그 https://blog.naver.com/dsz08082에서 다루는 프로젝트를 시작하기 위한 플라스크 기초 - GitHub - neltia/flask-project: 블로그 https://blog.naver.com/dsz08082에서 다루는 프로젝트를 시작하기 위한 플라스크

github.com

[Python Flask] #09 파이썬 플라스크 파일 업로드 서버 구축 : 네이버 블로그 (naver.com)

 

[Python Flask] #09 파이썬 플라스크 파일 업로드 서버 구축

#09 파이썬 플라스크 파일 업로드 서버 구축 (File upload) > 목차 - 개요 - 파일 업로드 서버 구축 결...

blog.naver.com

 

전부 이분의 코드를 유용했다....

 

내가 건드린건 하나도 없고 지정해 놓으셨던 폴더가 아니라 팀에서 하려던 static에 집어 넣을 수 있냐만 실험

 

성공했다

 

문제는 게시글 작성기능을 맡았는데

제목, 글 내용, 사진이 한번에 묶여서 올라가야하고

이게 db에 올라가야하고

 

호출은 내가 안했지만 호출할 때 이게 잘 나와야하는데

스태틱에 넣은 이미지를 어떻게 디비에 저장하고(생 파일이 아니라 그 게시글을 누를 때 호출할 방법)

 

코드를 내가 손을 건드린게 없기 때문에 여기에 올리는건 저작권과 도의에 맞지 않는다

 

궁금하신 분들은 깃에서 코드를 보시고 블로그에서 설명을 읽어보시는게 적합하다 하겠다

 

이하는 내가 건드릴 목록

 

check.html

비슷한 용도의 팝업이든 웹이든 만들어야 할 것 같다

근데 난 다른 텍스트도 묶어야 해....

 

home.html

업로드 사이트를 만드신 만큼, 그 기획에선 있어야 하지만 난 아님

 

upload.html

 

 

이거야 비슷한 기능을 하려면 모두가 만들어야하는데

제출버튼을 다른 텍스트 저장이랑 같이 못하나?

이게 제일 고민이다

 

 

제일 소름 돋는건

어제 오후 언저리에 내 mysql나간거 고쳤는데

오늘 오후에서야 이분 블로그를 찾아내고

코드 다운로드 못 찾아서 배껴쓰고

로컬 폴더에 저장이 되는지 확인하는데 2시간 넘게 걸림

 

이게 내 길이 맞냐?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

금요일부터 mysql을 잘못 건드려 여러 고장이 났었는데

런타임 오류, path 상태가 문제였습니다

 

 

이게 가장 큰 해결방법

 

설정 어줍잖게 건들지 맙시다

 

mysql은 벤치에서 쓰지맙시다, 특히 다크모드 깔겠다고 시스템 파일 건들지도 맙시다 제발

윈도우는 특히

 

맥 씁시다 돈은 없지만

사도 이꼴 나겠지만

오늘은 금요일부터 이어진

 

flask에 mysql 연동

mysql에 db설계대로 테이블만들기

이미지 게시글 올리는 html

위와 연동되는 파이썬이 모조리 실패하여 올릴게 없습니다

 

밤새햐합니다...

 

프로젝트에 내가 제일 먼저 끝내야 하는 걸 내가 제일 늦으니 착잡합니다

+ Recent posts