웹서버(Web server)와 WAS(Web Application Server)
·
Web
정적컨텐츠 , 동적컨텐츠 정적컨텐츠: 요청인자값에 상관없는, 변하지 않는 컨텐츠 동적컨텐츠: 요청인자값에 따라 바뀔 수 있는 컨텐츠 ✏️ 웹 서버 웹 브라우저로부터 http요청을 받아서 요청에 맞는 정적 컨텐츠를 제공한다. 웹 서버의 기능 클라이언트로부터 http요청을 받을수 있다. 정적컨텐츠 요청시 정적 컨텐츠 제공 동적컨텐츠 요청시 was로 요청전달, was가 처리한 내용을 클라이언트에 전달 ✏️ 웹 어플리케이션 서버 DB조회나 다양한 로직처리를 요구하는 동적인 컨텐츠를 제공한다. WAS의 기능 클라이언트로부터 http요청을 받을수있다(대부분 was는 웹서버를 내장하고있기때문(웹서버+웹컨테이너)) 요청에맞는 정적컨텐츠를 제공할수있다 db조회나 다양한 로직처리를 통해 동적컨텐츠를 제공할수있다. 📍 웹 ..
GitHub 꾸미기 | waka-box : 프로필에 코딩시간 표시하기
·
기타
내 메인에 위 사진처럼 언어별로 코딩시간을 표시하는법! 내가 사용하는 IDE와 연동해서 일주일동안 어떤 언어를 얼마나 사용해서 개발했는지 깃허브 프로필에 표시해보자~ WakaTime이라는 사이트와 깃허브 gist, waka-box레포지토리를 이용해서 설정하면 메인에 표시할 수 있다. 01. GitHub 설정(Gist, token 만들기) ✔️ GitHub Gist를 만든다 -> 링크 꼭 public으로 만들어야 한다! 이름은 아무렇게나 만들면 된다. 나중에 알아서 바뀜! 📌 그리고 description에는 아무것도 적지 않는다. description에 waka-box로 적었더니 Weekly development breakdown이라는 제목 대신 waka-box가 떴다...수정해서 지우면 되긴 하지만 적지..
파이썬 | Type Hints, 타입 지정하기
·
Python
파이썬은 변수에 타입이 없는 동적언어이다. 하지만 타입힌트를 통해서 타입을 표시할 수 있다. 함수 def greeting(name: str) -> str: return 'Hello ' + name 함수의 경우에는 이렇게 함수명(매개변수명: 타입) -> 리턴타입으로 지정할 수 있다. 타입힌트는 말그대로 힌트일뿐 다른 타입이 들어온다고 해서 에러가 나지는 않는다. def greeting(name: int) -> str: return 'Hello ' + name print(greeting("메롱")) # Hello 메롱 .__annotations__로 타입을 확인해볼 수 있다. print(greeting.__annotations__) # {'name': , 'return': } 변수 name: str = "김..
LeetCode | 001. Two Sum
·
TIL
문제 nums 리스트 안의 요소 중 더해서 target이 되는 두 수의 인덱스를 리스트로 리턴. - 답은 하나만 존재하고, 요소를 중복해서 사용하지 않는다. Input: nums = [2,7,11,15], target = 9 Output: [0,1] Explanation: Because nums[0] + nums[1] == 9, we return [0, 1]. Input: nums = [3,2,4], target = 6 Output: [1,2] 내 풀이 def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for i in range(len(nums)-1): for j in range(..
node.js | express로 서버 띄워보기
·
TIL
유튜브 강의를 보면서 따라해본 노드 express로 서버 띄워보기 app.js파일 만들기 require명령어로 express라는 모듈을 다운받음 const express = require("express"); express를 실행시켜서 app변수안에 넣어줌 const app = express(); listen 명령어로 서버를 띄운다 (포트번호, 콜백함수) app.listen(3000,() => {console.log("서버가동");}); 3000번 포트에 서버를 띄우고 콘솔에 "서버가동"을 찍어줘라 터미널에서 서버를 열어준다. -> node 명령어로 app.js파일을 js로 읽어준다. >>> node app.js node는 js파일을 v8엔진을 사용해서 코드를 해석하는 명령어다. v8엔진: 자바스크립트 ..
Django | 쿼리셋 내 객체 수
·
Django
✨ len() 쿼리셋은 인덱스로 접근이 가능하다. -> 길이를 재는데(쿼리셋 안 객체 수를 세는데) 파이썬의 len()함수 사용 가능. 하지만 len(queryset)을 사용하면 쿼리셋의 평가가 일어난다. len(queryset)은 select * from table 을 호출한다. 이 명령은 쿼리셋 내 객체의 수만큼 쿼리를 호출한다. O(n) + 이를 저장할 O(n)의 메모리가 추가로 필요하다. ✨ count() 그래서 쿼리셋을 평가하지 않고 쿼리셋 안의 객체의 숫자만 세고싶다면 항상 count()를 사용해야 한다. queryset.count()는 SQL의 select count(*)를 호출한다. queryset.count()는 select count(*) from table 을 호출한다. -> 한번의 ..
VCS | CVS, SVN, Git
·
기타
📌 형상관리 툴(Version Control System) 소스코드의 변화를 추적하고 기록하기 위해서 사용하는 툴 📌 CVS(Concurrent Versions System) 2세대 VCS로 오랜 기간 사용되었다.(수정사항을 파일별로 추적하는 1세대 VCS인 RCS의 프론트엔드이다.) 중앙에 위치한 Repository에 파일을 저장하고, 모든 사용자가 접근 가능하도록 설계되어있다. 최종 버전의 소스만 관리한다. -> 혼자 개발할 경우에 적합하다. - 장점 시스템이 안정적이다. 하나의 파일에 동시작업 가능한 최초의 VCS 파일 전체를 저장하는 것이 아니라 변경사항만을 저장함으로 용량을 적게 차지한다. - 단점 파일 이동이나 이름 변경은 관리가 되지 않아서 파일을 지우고 다시 만들어야 한다. 버전 분기가 힘..
JS | 기초
·
JavaScript
🚀 변수 Variables 1. 주의할점 파일 내 중복이름 불가 대소문자구분 첫글자는 영문, 밑줄(_), 달러기호($)만 가능 function, const와 같은 예약어는 변수명으로 사용 불가 자바스크립트에서는 camel case 사용 (camel case -> camelCase) 의미가 추측 가능하도록 지어야 하는 이유 코드의 가독성을 높일 수 있다. 커뮤니케이션에 들어가는 리소스를 줄일 수 있다. (유지보수 용이) 2. let, const let 값의 재할당(수정) 가능 선언과 할당 분리 가능 let myName; myName = "홍길동"; const 재할당 불가. 선언시 할당 필수! var는 사용하지 않는 것이 좋다. 재선언과 재할당이 모두 가능해서 문제가 생길수 있음.. 🚀 함수 Funtion ..
반응형