Programming Language
[모던 자바스크립트 Deep Dive] 4장 변수
👩💻 Java 개발자의 JavaScript 공부 기록JavaScript를 처음 공부하는 입장에서Java 언어와 비교하여 다른 점이나, 프로그래밍 공부를 하며 새롭게 알게 된 내용을 위주로 정리했습니다. 📑 4.1 변수란 무엇인가? 왜 필요한가?자바스크립트는 개발자의 직접적인 메모리 제어를 허용하지 않는다. 프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여 재사용하기 위해 변수라는 메커니즘을 제공한다.변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 변수는 프로그래밍 언어의 컴파일러 또는 인터프리터에 의해 값이 저장된 메모리 공간의 주소로 치환되어 실행된다.따라서 개발자가 직접 메모리 주소를 통해 값을..
[모던 자바스크립트 Deep Dive] 3장 자바스크립트 개발 환경과 실행 방법
👩💻 Java 개발자의 JavaScript 공부 기록JavaScript를 처음 공부하는 입장에서Java 언어와 비교하여 다른 점이나, 프로그래밍 공부를 하며 새롭게 알게 된 내용을 위주로 정리했습니다. 📑 3.1 자바스크립트 실행 환경모든 브라우저는 자바스크립트를 해석하고 실행할 수 있는 자바스크립트 엔진을 내장하고 있다.브라우저뿐만 아니라 Node.js도 자바스크립트 엔진을 내장하고 있다. 브라우저는 HTML, CSS, 자바스크립트를 실행해 웹페이지를 브라우저 화면에 렌더링 하는 것이 주된 목적이지만Node.js는 브라우저 외부에서 자바스크립트 실행 환경을 제공하는 것이 주된 목적이다.따라서 브라우저와 Node.js 모두 자바스크립트의 코어인 ECMAScript를 실행할 수 있지만,브라우저와 N..
[모던 자바스크립트 Deep Dive] 2장 자바스크립트란?
👩💻 Java 개발자의 JavaScript 공부 기록JavaScript를 처음 공부하는 입장에서Java 언어와 비교하여 다른 점이나, 프로그래밍 공부를 하며 새롭게 알게 된 내용을 위주로 정리했습니다. 📑 2.1 자바스크립트의 탄생1995년, 약 90%의 시장 점유율로 웹브라우저 시장을 지배하고 있던 넷스케이프 커뮤니케이션즈는웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어인 자바스크립트를 도입했다. 📑 2.2 자바스크립트의 표준화1996년, 마이크로소프트는 자바스크립트의 파생 버전인 "JScript"를 인터넷 익스플로러 3.0에 탑재했고,JScript와 자바스크립트가 표준화되지 못하고 서로 자사 브라우저의 시장 점유율을 높이기 위해 자사 브라우저에서만 동작하는..
MapleStroy Worlds(MSW) - 인트로 재생 구현(캐릭터 자동 이동 & 대화창)
※ 작성자도 MSW 초보자이므로 코드가 비효율적이거나 기술 구현이 많이 부족합니다!😅 구현 영상 동작 설명 게임에 처음 접속하는 플레이어(뉴비)일 경우, 인트로를 실행합니다. StartMap에서 IntroMap으로 플레이어 이동시킵니다. 플레이어를 자동 이동 시키며, 스토리에 대한 이해를 도울 대사를 대화창을 통해 주인공의 혼잣말 형식으로 보여줍니다. 인트로가 끝나면 StartMap으로 다시 이동시킵니다. 중간에 Skip 버튼 누를 시 인트로 기능이 중지됩니다.(자동 이동이 멈추고 대화창 꺼지며 StartMap으로 이동하게 됩니다.) 뉴비가 아니라면 접속 시 인트로가 실행되지 않습니다. 테스트 데이터를 초기화하고 다시 접속하면 뉴비로 인식되어 인트로 실행되는 것을 확인할 수 있습니다. 개선이 필요한 부분..
게임으로 배우는 파이썬 Part 1 Chapter 4 :PyGame
PyGame은 파이썬 게임용 라이브러리이다. PyGame을 사용하면 윈도를 만들어 자유롭게 그릴 수 있다. 마우스나 키보드 입력도 받는다. 게임에서 편리하게 사용할 수 있는 명령도 풍부하다. 1 : 윈도 표시 먼저, 윈도를 화면에 표시한다. """justwindow.py""" import sys import pygame from pygame.locals import QUIT pygame.init() # (widht, height) SURFACE = pygame.display.set_mode((400, 300)) # window title pygame.display.set_caption("Just Window") def main(): """main routine""" while True: SURFACE.f..
게임으로 배우는 파이썬 Part 1 Chapter 3 :제어문
1 : 인덴트 인덴트란 문장 앞 들여쓰기로 문서를 읽기 쉽게 할 때 사용한다. 파이썬에는 인덴트를 사용해 그룹화하는 특징이 있다. if 조건식: 명령1 명령2 명령3 if 문의 조건이 성립했을 때에는 명령1과 2가 실행되고, 그 후 명령3으로 간다. 반대로 조건이 성립하지 않을 때는 명령1과 2를 건너뛰고, 명령3이 실행된다. 다른 언어와 같이 개인의 기호에 따라 인덴트 스타일이 다르지는 않기 때문에 누가 써도 비슷하게 기술된다. 그 결과 읽기 쉬운 코드로 연결된다. 다른 언어의 경우 명령이 하나 이상일 때, { }로 감싸 여러 개의 문장을 하나로 합한다. 이때 사람의 스타일마다 인덴트를 사용하지 않기도 하고 인덴트를 사용해 가독성을 높이기도 한다. 다른 언어에 익숙한 사람에게는 괄호가 없는 것에 위화감..
백준 문제 풀때, python3과 pypy3의 차이
처음에는 pypy라는 다른 언어가 있는 줄 알았다. (워낙 언어가 다양하다 보니..) 그런데 2805 번 문제를 풀다보니 계속 시간 초과가 났다. 그래서 뭐가 잘못 됐는지 구글링을 해봤는데, 블로그에 올라온 코드들은 모두 맞았습니다!! 를 받은 코드들일텐데, 변수 이름 빼고는 거의 똑같았다. 어느 한 블로그에서 pypy3으로 제출을 했다길래, 나도 pypy3으로 돌려봤는데 맞았습니다!! 가 떴다. 그래서 python과 pypy의 차이에 대해 검색해보았고, 이 블로그에 의하면, PyPy는 JIT컴파일을 도입하며 CPython보다 빠르다는 것이다. PyPy에는 자주 쓰이는 코드를 캐싱하는 기능이 있기 때문에, 메모리를 조금 더 사용하여 실행속도를 개선하였고 반복문을 많이 사용하는 코드에서는 PyPy가 속도 ..
Python - deque objects
https://docs.python.org/3/library/collections.html#collections.deque collections — Container datatypes — Python 3.10.0 documentation collections — Container datatypes Source code: Lib/collections/__init__.py This module implements specialized container datatypes providing alternatives to Python’s general purpose built-in containers, dict, list, set, and tuple. namedtuple() factory f docs.python...
파이썬 알아두면 좋은 표현
1. 다음과 같이 여러 수를 여러 줄에 입력 받을 때, list에 넣는 경우 맨 첫 줄에 몇 개의 수를 입력 받을 것인지 입력됨. # 입력 5 10 100 1000 10000 100000 import sys n = int(input()) num = [int(sys.stdin.readline()) for _ in range(n)] 2. 다음과 같이 여러 수를 한 줄에 입력 받을 때, 각 변수에 넣는 경우 n1, n2 = map(int, input().split()) 3. 문자열의 순서를 뒤집어 저장 n = input() reversed_n = "".join(reversed(n)) 4. 리스트의 가장 마지막 원소 list[-1] 5. 리스트의 원소들을 하나씩 한 줄에 출력 print('\n'.join(lis..
게임으로 배우는 파이썬 Part 1 Chapter 2 :데이터형과 데이터 구조
함수 divmod 몫과 나머지를 한 번에 구한다. >>> divmod(11, 4) (2, 3) max max(a,b)일 때 a와 b 중 큰 쪽 값을 반환한다. >>> max(2, 6) 6 >>> max(-4,-8) -4 >>> max(2.4, 3.14) 3.14 min min(a,b)일 때 a와 b 중 작은 쪽 값을 반환한다. >>> min(2, 6) 2 >>> min(-4,-8) -8 >>> min(2.4, 3.14) 2.4 type 인수에 수치나 변수를 주면 그 데이터형을 반환 값으로 돌려준다. >>> type(6) >>> type(7.8) >>> type(-4) >>> type(-5.723) >>> type(3.0) int 부동소수점형의 값 및 부울값, 문자열을 정수로 변환한다. >>> int(2...