Coding (267)


자바스크립트는 출력을 어떻게 하나요?

자바스크립트는 출력을 어떻게 하나요?

자 생각해봅시다. 파이썬은 print문으로 출력하잖음? 근데 자바스크립트에는 그런게 없어요. 여기서 오해하시면 안되는 게, 출력이 안되는 게 아니라 파이썬이나 C언어처럼 print 어쩌고로 적는 출력문이 없다는 얘기다. 그럼 어떻게 출력하나요? 그걸 이제 알아볼거다. 자바스크립트는 프론트엔드 삼신기(HTML, CSS, JS) 중 유일한 프로그래밍 언어이다. 거기서 더 나가면 리액트 뷰 앵귤러 삼대장이 기다리고 있지만 아무튼... 삼대장의 삼대장 걔네는 뭐 확장팩같은거고 걍 자바스크립트도 있긴 있잖아요? 그런데 자바스크립트가 왜 프론트엔드 삼신기냐... 프론트엔드 개발자는 HTML로 뼈대를 만들어서 CSS로 살을 붙이고 자바스크립트로 동작하게 하기 때문이다. 하아니 그런데 출력문이 없다고요? 그럼 어떻게 ..

알고리즘과 시간복잡도

알고리즘과 시간복잡도

백준 시간복잡도 파트 풀다가 오셨다면 어서오십쇼. 일단 알고리즘 알고리즘 들어는 봤는데 이게 뭐임? 알고리즘은 '문제를 해결하기 위한 절차나 방법'을 뜻한다. 뭐 예를 들자면 방에 형광등이 나갔으면 갈아야 할 거 아님? 가는데 절차 있잖아요. 무작정 형광등 떼내고 교체하는 게 아니라 불이 꺼졌는지 확인하고(안그러면 피카츄 10만볼트 맞고 날아가는 로켓단 간접체험한다), 고장난 형광등을 떼고, 새 형광등 포장을 뜯고, 끼운다. Profit? 이런 느낌이다. 그러니까 우리가 자각하지 않더라도 어떤 문제를 해결하는 데에는 논리게이트와 알고리즘이 쓰이고 있다. 물론 CPU는 당신 두개골 안에 있는 세레브럼이고요. 유기체의 4대 조건이 있다. 살아있는 생물이고 유기체라면 다 가지고 있어야 하는 필요조건인데, 바로..

Python의 예외처리

Python의 예외처리

예외처리... 쉽게 설명하자면 에러가 떴을 때 어떻게 할 지 코딩하는거라고 보면 된다. 예를 들어서 웹서핑을 하다 보면 보이는 이런게 있는데 대충 이런거. 404 뜨면 404 페이지를 띄우시오 이런 느낌이라고 보면 된다. 당연한 얘기지만 자바스크립트에도 예외처리가 있다. 나중에 함 다뤄보겠음. 나무위키의 정의에 따르면 예외처리는 '예외 처리(Exception Handling) 혹은 오류 처리(Trouble Shooting)란 실행 흐름상 오류가 발생했을 때 오류를 그대로 실행시키지 않고 오류에 대응하는 방법을 제시하는 개념이나 하드웨어 구조를 의미한다. 일반적으로 프로그래밍에서 프로그램이 실행 중 특정 문제가 발생했을 때 다른 처리 방식으로 흐름을 옮기는 개념으로 사용한다.'라고 한다. 예를 들어서 계산..

n진수->10진수 코딩하기

https://koreanraichu.tistory.com/254 백준 2745번 풀이 문제 https://www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있 koreanraichu.tistory.com 여기서 잠깐 언급했던 그거 맞다. 그것까지 주저리주저리 넣었다간 대참사 터져서 따로 뺐다. 참고로 기본 원리 역시 저기 서술되어있으므로 여기서는 생략. a = input() cipher = len(a) # 자릿수가 영어로 cipher였다니 a = a[::-1] dec_number = 0 for i in range(cipher): dec_..

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자 (번외편)

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자 (번외편)

아니 나 급 생각난건데 얘가 코딩한걸 보니까 변수명이 my_list 막 이렇더라고... 그래서 궁금해졌음. 과연 변수명을 지정해서 코딩할 수 있는가? 또 서버오류가 반기는거 아니냐 일단 걍 리스트를 만들어보자. 전에는 my_list였는데? 아무튼 그럼 변수명을 내가 지정해주자. 변수명은 one_to_ten으로 할거다. 사실 여기에는 숨겨진 주문이 하나 더 있는데... 다들 알겠지만, 언어가 파이썬이 아니라 자바스크립트다. 리스트 이름을 지정한 변수명으로 하는 것도 무난하게 된다. 그런데... 자바스크립트 출력 방식이 console.log만 있는 게 아니란말이지... alert로 띄우게 할 건데, alert라고 직접적으로는 얘기를 안 할거다. 사실 이거 말고 HTML 요소의 내용을 바꾸는 방법도 있긴 함...

왜 리눅스인가

왜 리눅스인가

지금이야 Swift(iOS 앱 개발용 언어) 할 거 아니면 걍 윈도우 쓰세요~ 하지만 본이 노트북 2호 살때 OS 추천이 크게 두개였다. 리눅스랑 맥. 당시 예산이 100만원이라 맥북은 패스... 토익 없어서 수리받으러 갔다가 입구컷당한다 아무튼, 그런 이유로 우분투를 사서 깔게 됐고 지금까지 잘 쓰고 있다. 노트북 2호도 어언 6년... 아직까지 살아있는게 용하지만 아무튼... 윈도우와 비교했을 때 리눅스는 어떤 특징이 있는지 대충 알아보자. 공짜다 보통 어느정도 컴잘알인 분들은 노트북을 FreeDOS(아무것도 안 깔림)로 사서 거기다가 본인이 필요한 OS를 직접 깔아서 사용한다. 이건 나도 마찬가지 아니냐... 그러려면 일단 OS를 사든가 해서 깔아야 하는데, 이 때 윈도우 CD가 없어서 같이 사게 ..

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자 (2)

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자 (2)

https://koreanraichu.tistory.com/226 강해져서 돌아온 ChatGPT에게 코딩을 시켜보자 아니 자기가 강해져서 돌아왔대잖아요... 일단 이번에 시켜볼 것은 매우 간단한 코딩들... 뭐 import 할 수는 있겠지만 패키지 설치를 요하는 건 아닌, 그런 것들을 시켜볼거다. 여담이지만 오늘 제 koreanraichu.tistory.com 1편은 여기로 모시겠습니다 고객님. 저녁에는 좀 되는듯... 아까 서버 문제있었나? 근데 지금도 네트워크 에러가 간간이 일어나는게 얘네 서버실에 커피 엎은 것 같음. (아까 시키려던거) 입력받은 문자열 출력하기 input_string = input("문자열을 입력하세요: ") print("입력한 문자열은", input_string, "입니다.") ..

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자

강해져서 돌아온 ChatGPT에게 코딩을 시켜보자

아니 자기가 강해져서 돌아왔대잖아요... 일단 이번에 시켜볼 것은 매우 간단한 코딩들... 뭐 import 할 수는 있겠지만 패키지 설치를 요하는 건 아닌, 그런 것들을 시켜볼거다. 여담이지만 오늘 제일 많이 본 것은... 강해져서 돌아왔다며!!! Hello, World! 출력하기 print("Hello, World!") 프로그래밍 책에서도 첫빠따로 나오는 헬로월드다. 따옴표는 ""도 되고 ''도 되는데 아무튼 저 코드 자체는 잘 됐음. 일차원 배열 만들기 반복문을 사용하지 않고 a = [1,2,3,4,5] 이런 식으로 직접 할당하는 배열 말하는거다. my_list = [i for i in range(1, 6)] print(my_list) 오 고급기술... 원래 의도했던 건 a = [1,2,3,4,5]였..

GUI vs CUI

GUI vs CUI

일단 CUI(character user interface)의 대표적인 예시가 DOS인데... 이게 뭐냐면 대충 이런거다. 이 창은 윈도우가 GUI라서 파워셸 안쪽만 CUI지만, DOS는 그런거 없고 상남자의 CUI다. 그럼 GUI는요? 지금 윈도우 바탕화면 한번 보자. 아이콘 있지 마우스 커서 있지 바탕화면 이미지 있지 작업표시줄 있지. 다 그래픽으로 나오잖음? CUI는 그래픽으로 나올법한 요소들이 죄다 글자로 나오는거라 폴더 한 번 이동하는데 명령어 쳐야돼 복사도 명령어 쳐야돼 삭제도 명령어 쳐야돼... (악마의 명령어 rm -rf *를 생각해봅시다) 예전에는 CUI여도 와 386! 이러면서 썼지만 요즘 OS는 거진 GUI다. 그럼 CUI는 아예 안 쓰나요? 아니 그건 아님. 요즘 리눅스도 GUI를 지..

자바스크립트에도 정규식이 있다고???

자바스크립트에도 정규식이 있다고???

https://koreanraichu.tistory.com/118 정규식(Regular Expression)-기호와 메타문자 문자 찾는 것 자체는 find()도 해주는데, 얘는 딱 정확하게 일치하는 문자열만 찾아준다. 그럼 정규식은? 그건 대충 와일드카드같은 거다. 그러니까 find()는 소라빵 찐빵 팥빵 붕 koreanraichu.tistory.com 여기서 정규식이 대충 와일드카드 같은거고(글은 분량상 두개로 나눴음) 파이썬에서는 re모듈을 쓴다고 했는데, 사실 파이썬 뿐 아니라 자바스크립트에서도 정규식을 쓸 수 있다. 정규표현식, 그러니까 정규식은 파이썬만의 전유물이 아니기때문에 다른 언어에서도 사용하는 방법이 다를 뿐이지 일단 쓸 수는 있다. 정규식에 대해 설명하면서 대충 '와일드카드 같은 것'이..

컴파일러와 인터프리터

왜 가끔 보면 어떤 언어는 컴파일러, 어떤 언어는 인터프리터...라고 하는데 이게 뭔지 궁금하지 않음? 대체 이 둘이 무슨 차이길래??? 자 일단 기본적으로 아셔야 할 게 있다. 프로그래밍 언어에는 저급 언어와 고급 언어가 있는데, 기계어와 어셈블리어는 저급 언어이고 나머지는 다 고급 언어다. 이게 연식이 오래돼면 저급 언어인가요? 놉. 그럼 포트란 베이직도 저급이게? 그게 아니라, 저급 언어인 기계어와 어셈블리어는 컴퓨터 입장에서 이해하기 쉬운 언어고 고급 언어는 사람 입장에서 이해하기 쉬운 언어다. 대체 어째서 우리는 010100010010 이렇게 쓰면 모르지만 컴퓨터는 반대로 print('Hello, World!') 하면 모른다. 그럼 프로그래밍이 안되는 거 아니냐고? 아니 근데 다들 하잖아요. 예..

for, for in, for of, forEach

Python에는 for와 while이라는 반복문이 있고, 이 둘은 범위냐 조건이냐의 차이만 빼면 반복문이라는 기본 골자는 같은데, 이런 게 자바스크립트에도 당연히 있다. 라디오버튼 뺑뺑이 돌면서 얘가 뭘 체크했나 보는 것도 반복문의 일이기 때문. 그런데 이 반복문... Python처럼 심플하지 않아요... for, for in, for of See the Pen for, for in, for of by koreanraichu (@koreanraichu) on CodePen. 얘네들은 Pyhlogenic tree로 치자면 그 트리가 막 갈라지는 와중에도 진화적으로 매우 유사한 homolog이기 때문에 또이또이 쌤쌤임을 인정받은 애들... 맞는 비유인지는 모르겠지만, 자매나 형제같은 느낌이다. 그래서 형식 ..