Languages

    [JS] 자바스크립트 함수를 변수에 할당할 수 있는 이유

    이 본문은 자바스크립트 함수의 개념을 다룹니다💪🏼 본문을 시작하기에 앞서 자바스크립트의 리터럴과 표현식에 대한 개념을 간단히 정리하고자 한다. 리터럴(Literal) 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용하여 값을 생성하는 표기법을 말한다. // number literal 3 123; 이 예제의 123은 단순한 숫자값이 아닌 숫자 리터럴이다. 사람이 이해할 수 있는 아라비아 숫자 표현을 사용해 숫자 123을 코드에 기술하면 자바스크립트 엔진은 이를 숫자값 123으로 평가한다. 즉, 사람이 이해할 수 있는 표현을 사용하여 자바스크립트 엔진이 값을 생성하는 것이다. 아래에서 다시 언급하겠지만, 자바스크립트는 함수를 하나의 객체로 정의한다. 즉, 객체 리터럴로 객체를 생성하는 것처럼 함수 리터럴..

    [JS] 자바스크립트 원시 값과 객체(Immutability, Mutability)

    ECMAScript6(ES6)는 7개의 데이터 타입(number, string, boolean, undefined, null, symbol, object)을 제공한다. 이는 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있다. 자바스크립트 원시 타입(Primitive Type) 값의 변경이 불가능한 값(Immutable Value) 변수에 할당된 값은 더 이상 변경이 될 수 없다!! 여기서 중요한 포인트는 원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것이 아니다. number, string, boolean, undefined, null, symbol 타입이 이에 해당된다. 자바스크립트의 객체 타입(Object Ty..

    [Python] python의 변수 스코프

    Python의 with 개념을 공부하다가 문뜩 궁금한 점이 생겼다. 아래의 코드에서 contents와 my_file 값이 with 구문을 벗어나도 읽힐까? with open("text.txt", "r") as my_file: contents = my_file.read() print(my_file) # print(contents) # hello 매우 잘 읽힌다... 왜지🤔 https://stackoverflow.com/questions/45100271/scope-of-variable-within-with-statement Scope of variable within "with" statement? I am reading only firstline from python using : with open(fil..

    [Python] Handling (Exception, File, Directory, Data)

    아래의 본문은 부스트캠프 AI Tech 1기 수강 중에 작성한 학습 기록입니다🙂 1. Exception Handling(예외 처리) 1) try ~ except 구문 exceptions이 발생한다고 프로그램이 종료하는 것이 아니다. 그 부분만 에러 메시지를 출력하고 다음 작업을 수행한다. # 0으로 숫자를 나눌 때 예외처리 하기 for i in range(10): try: print(10 / i) except ZeroDivisionError: print("Not divided by 0") except 구문을 더 추가할 수 있다. a = [1, 2, 3, 4, 5] for i in range(10): try: print(i, 10 // i) except ZeroDivisionError: print("Not..

    [Python] Python의 자료구조

    Stack, Queue, List, Dict 등 Python의 자료구조와 collections 패키지의 모듈을 간단히 배웠다. 코테 문제를 풀면서 이미 자주 사용하고 있는 것들이지만, 1주차에서 Python에 대해 좀 더 꼼꼼히 배우면서 다른 컴파일 언어들을 공부할 때처럼 좀 더 깊게 찾아보게 되는 것 같다. 화요일 쯤부터 피어세션 팀원 분들과 Python에서 변수/객체/generator 등의 메모리 할당이 어떤 식으로 이루어지는지 고민하고 공부하면서 블로그 정리가 조금 밀렸다. (+ 화, 목 과제까지..) 이전까지 다루었던 언어들과 또 다른 재미가 있어서 보람차다. 공부하면서 알게 된 것들은 주말을 활용해서 정리해야겠다! 💭 List의 rotate 메소드를 활용하면 원형큐 관련 문제도 풀 수 있을 것 ..

    [Python] Immutable 객체와 Mutable 객체

    Everything is object in Python. Python 메모리 관리 부스트캠프 AI Tech 1기에서 강의를 듣던 중 Python의 변수 할당과 ==와 is 비교 연산자에 대해 배우게 되었다. 변수에 값을 할당할 때 또는 매개변수로 값을 전달할 때, Python은 C/C++ 또는 Java의 방식과 뭔가 다르다는 점을 깨닫게 되었다. 궁금한 점을 찾아보다가 얼떨결에 Python의 메모리 관리 방식에 대해 빡공을 하게 되었다. 뭔가 다르다는 것은 알겠는데 이해가 잘 되지 않아서 피어 세션 때 팀원 분들과 함께 이야기해보게 되었고, Python의 Mutable 객체와 Immutable 객체에 대해 듣게 되었다. 그리고 개인 학습 시간에 추가적으로 Python의 메모리 관리에 대해 찾아보면서 상당..

    [java-live-study] 🌈 5주차 과제: 클래스

    백기선 님이 유튭에서 진행하는 JAVA Live-study 과정을 기록한다. 매 주 이슈에 올라온 질문들에 대해 공부하고 답을 남기고, 이슈에 링크를 공유하는 방식으로 진행된다. 추후 백기선 님의 유튜브 라이브를 통해 피드백을 받게 된다. 조금 늦더라도 과제를 수행하면 출석 인정을 해주시기로 했다!(늦더라도 꼭 공부하는게 중요!) 즉, Java 공부를 기록하는 과정이다 🌱 📌 목표 자바의 Class에 대해 학습하세요. 📌 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 You can not write Java code without defining a class. 1. 구조체 vs 클래스 [Java에..

    You can not write Java code without defining a class.

    좀 뜬금없지만, 클래스 없이 자바를 쓸 수 있을까...? 🤔 Yes, you need at least one class to have a program, but no, you do not need any methods (contrary to some other answers). The reason you need a class is because in Java, all code is inside classes. So to have any code, you need a class. However, code doesn't necessarily need to be in a method. It can also be in initializers. So, here is a complete Java progr..

    [java-live-study] 🔥 4주차 과제: 제어문

    백기선 님이 유튭에서 진행하는 JAVA Live-study 과정을 기록한다. 매 주 이슈에 올라온 질문들에 대해 공부하고 답을 남기고, 이슈에 링크를 공유하는 방식으로 진행된다. 추후 백기선 님의 유튜브 라이브를 통해 피드백을 받게 된다. 즉, Java 공부를 기록하는 과정이다 🌱 📌 목표 자바가 제공하는 제어문을 학습하세요. 📌 학습할 것 (필수) 선택문 반복문 제어문이란? 제어문(Control-flow statement)은 프로그램의 실행 순서를 제어할 수 있게 한다. Java의 제어문은 decision making, branching, looping, conditional block이 있다. (이미지 출처: https://soshace.com/wp-content/uploads/2020/01/unti..

    [Swift] 스위프트 Class vs Struct

    🤔 Swift의 Class와 Struct를 비교해보자. ✔️ Class - Enemy.swift class Enemy { var health: Int var attackStrength: Int init(health: Int, attackStrength: Int) { self.health = health self.attackStrength = attackStrength } func takeDamage(amounts: Int) { self.health -= amounts } func move() { print("Walk forwards.") } func attack() { print("Land a hit, does \(attackStrength) damage.") } } - main.swift let zom..