언어 28

서브 쿼리

SELECT 안에는 또 다른 SELECT가 들어갈 수 있다. 이것을 서브 쿼리 또는 하위 쿼리라고 부른다. SQL문 2개를 작성해보고, 이 두 개의 코드를 하나로 합쳐보는 작업을 통해 연습해보았다. # 에이핑크의 평균 키 SELECT height From membeer where men_name = '에이핑크'; 에이핑크의 평균 키를 조회했더니, height = 164가 나왔다. #164보다 평균 키가 큰 그룹 조회 SELECT mem_name, height FROM member WHERE height >164; 그 다음에는 에이핑크의 평균 키(164)보다 큰 그룹을 조회하는 코드를 썼다. 이것을 통해 결과문을 얻는데, 두 SQL문을 하나로 합치고 싶을 때 활용하는 것이 서브 쿼리이다. SELECT me..

언어/MYSQL 2023.12.08

Select ~ from ~ where 기본 조건식

SQL에 대해 어느 정도 망각한 것 같아서 다시 복습해보기로 했다. 특정 조건에 대해서 조회하기 위해서는 기본적으로 많이 사용하는 문구가 아래와 같다. SELECT 열_이름 FROM 테이블_이름 WHERE 조건식; 조건식에 다양한 것을 넣을 수 있는데, 1. 행 이름 SELECT 열_이름 FROM 테이블_이름 WHERE 행 이름 = " "; 간단하게 행 이름을 설정해주는 방법이다. 2. 관계 연산자, 논리 연산자 사용 SELECT 열_이름 FROM 테이블_이름 WHERE 비교대상 >= INT; >=, ==,

언어/MYSQL 2023.12.08

generator, yield

generator란 이터레이터를 생성해주는 함수이다. 메모리를 효율적으로 사용하면서 반복을 수행하도록 돕는 객체다. 이터레이터는 클래스에 __iter__, __next__ 또는 __getitem__ 메서드를 구현해야 한다. 하지만 제너레이터 함수 내부에는 이 메서드들이 내장되어 있기 때문에 이터레이터보다 훨씬 간단하게 작성할 수 있다. 아래 사이트에서 그림을 가져왔는데, 간단히 이해하기 위해서 이 그림을 읽어보았고 간단하게 구현도 해보았다. def generator(): yield 0 yield 'Alphabet' yield False gen = generator() print(next(gen)) # 0 print(next(gen)) # 'Alphabet' print(next(gen)) # False d..

언어/Python 2023.12.04

VSCode에서 나타나는 File "<stdin>", line 1 에러

파이썬으로 열심히 코드를 쓰면서 여러 자료구조를 정리하는 도중에 무근본 오류코드를 발견했다. 챗 지피티에 물어봐도 모르고 그래서 결국엔 구글링했는데, exit()나 ctrl+z를 실행하니 문제가 해결되었다. 파일의 1번째줄에서 ^표시된 부분에 잘못된 구문으로 인해 오류가 발생했다는 뜻인데, 사실 이런 것이 왜 나타나는지는 아직 잘 모르겠다. 하지만 특별한 코드 상 오류가 아니기 때문에 그냥 명령프롬프트에 명령어만 잘 누르면 해결이 된다.

언어/Python 2023.10.02

파이썬(python) sys.stdin.readline 사용

보통 input()으로 문자열 값을 입력받지만 반복문으로 여러 줄을 입력받아야 할 때는 시간 초과 문제가 발생할 수 있다고 한다. 특히 스택 / 큐 관련 문제에서는 이렇게 여러 줄을 입력받아야 하는 경우가 많아서 시간 초과의 압박이 크다. 따라서 이럴 경우에는 import sys로 모듈을 불러오고 sys.stdin.readline()을 사용하는 것이 좋다. readline()은 한 줄 단위로 입력받기 때문에 개행문자가 같이 받아지므로 주의하고, 정수로 사용할 경우 int()로 덮어줘야 한다. input()은 값의 개행문자를 삭제시켜서 리턴한다. # 한 개의 정수를 입력받을 때 N = int(sys.stdin.readline()) 리스트와 같이 여러 개의 값을 입력받아야 할 경우에는 개행문자의 특징을 이용..

언어/Python 2023.08.04

pip/conda 의미, 가상환경의 정확한 의미

패키지의 관리자(Pip vs Conda) pip : python에 한정된 패키지의 관리자, 가상 환경 별도 필요 conda : 다른 언어를 포함한 패키지 관리자, 가상 환경 생성 포함 가상환경 컴퓨터 별로 호환, 환경이 다른데, 이를 극복하기 위해 내부에 여러 버전의 환경을 만들어주면서 호환에 문제가 없도록 하는 환경이다. Virtualenv: python2부터 사용된 라이브러리 venv : python 3.3부터 기본모듈에 포함됨 conda : Ana+conda = pip + venv + 과학

언어/Python 2023.06.08

async / await

async 키워드는 함수를 비동기 함수로 선언하는 데 사용된다. 비동기 함수 : 내부에 await 키워드를 사용할 수 있는 함수 async 함수 내에서 await 키워드를 만나면, JavaScript 엔진은 해당 표현식의 평가가 끝날 때까지 함수의 실행을 일시 중지한다. 그런 다음, 표현식의 평가가 끝나면 함수의 실행을 재개하고 표현식의 결과를 반환한다. await 키워드는 async 함수 내에서 사용되며, Promise 객체를 기다리는 역할을 수행한다. await 키워드 오른쪽에 있는 표현식은 Promise를 반환하는 함수 호출, 다른 비동기 함수 호출 또는 직접 Promise 객체일 수 있다. await를 사용하면 JS 엔진은 해당 Promise의 결과를 기다린 후, 결과를 반환하거나 변수에 할당한다..

언어/JavaScript 2023.06.03

setAttribute

setAttribute() 메서드는 JavaScript에서 요소의 속성을 설정하거나 변경하는 데 사용된다. 이 메서드를 사용하여 HTML 요소의 속성 값을 동적으로 설정하거나 변경할 수 있다. element.setAttribute(attributeName, attributeValue); # element: 속성을 설정하려는 HTML 요소를 나타내는 변수. # 이 변수는 getElementById(), getElementsByClassName(), querySelector() 등의 메서드를 사용하여 요소를 선택할 수 있다. # attributeName: 설정하려는 속성의 이름을 나타내는 문자열. 예를 들어, "src", "href", "class" 등이 될 수 있다. # attributeValue: 속성에..

언어/JavaScript 2023.06.03

onclick this

JavaScript에서 onclick은 HTML 요소를 클릭할 때 실행되는 이벤트 핸들러를 정의하는 속성이다. onclick 속성에 할당된 값은 클릭 이벤트가 발생했을 때 호출되는 JavaScript 함수이다. 이벤트 핸들러 함수 내부에서 this 키워드는 현재 이벤트가 발생한 HTML 요소를 가리킨다. 이렇게 this를 사용하면 클릭된 요소에 접근하고 해당 요소에 대한 작업을 수행할 수 있다. 예를 들어, 아래의 HTML 코드는 버튼을 클릭했을 때 changeColor 함수를 호출하는 버튼 요소를 가지고 있다. 클릭 JavaScript 함수 changeColor를 다음과 같이 정의하고, this를 사용하여 버튼의 스타일을 변경하는 예제를 살펴보았다. function changeColor() { this..

언어/JavaScript 2023.06.03

toggleClass()

JavaScript의 toggleClass 메서드는 HTML 요소의 클래스를 토글(전환)하는 데 사용된다. 클래스를 토글한다는 것은 요소의 클래스가 이미 존재하는 경우 해당 클래스를 제거하고, 존재하지 않는 경우 클래스를 추가하는 것을 의미한다. 이렇게 클래스를 토글하면 요소의 스타일이나 동작을 변경할 수 있다. Hello, World! 위 블럭을 아래처럼 바꾸면 var myDiv = document.getElementById('myDiv'); myDiv.classList.toggle('highlighted'); myDiv 요소의 클래스 중에 'highlighted' 클래스가 있는지 확인한다. 클래스가 있으면 제거하고, 없으면 추가한다. 따라서 위의 코드를 실행하면 'highlighted' 클래스가 토글..

언어/JavaScript 2023.06.03