본문 바로가기

혼공학습단 11기(完)38

[혼공스] 마무리 하는 글 1월 3일부터 2월 16일까지 45일간 항상 함께였던 혼공스를 보내주는 글이다. 이 글을 작성하고 나면 언제나 책상 위에 있던 혼공스도 이제 책장으로 들어갈 것이다. 진작에 작성했어야 했는데.. 다른 스터디를 진행하고, 뜬금없이 유니티를 공부하게 되면서 조금 미뤄졌다. 정말 책이랑 정이든게 얼마만인가.. 싶을 정도로 아쉽기도 하고, 이런 기분이 반갑기도 하고, 뿌듯하기도 하고 만감이 교차하고 있다. 결론적으로 프론트엔드를 담당하지 않게 되었기 때문에 '자바스크립트를 공부한 것이 무의미했다!'라고 생각할 수도 있지만, 책 한 권을 다 읽으면서 언어 하나에 대한 전반적인 내용을 학습할 수 있었고, 생각했던 것보다 군데군데 빈 개념이 많다는 것을 깨닫고 채워 넣을 수 있었다. 프로그래밍 언어라는 것이 큰 틀에.. 2024. 2. 21.
[혼공스] 09 - 2 '클래스의 고급 기능' 정리 (2) Getter와 Setter 방금 살펴보았던 private 속성을 사용하면 외부에서는 #length 속성에 아예 접근할 수 없는 문제가 발생한다. 현재 square 객체의 length 속성이 몇인지 확인할 수도 없고, length 속성을 변경하고 싶어도 변경할 수 없다. 그래서 프레임워크 개발자들은 상황에 따라서 속성을 읽고 쓸 수 있는 메소드를 만들어서 제공한다. DOCTYPE html> Document // 정사각형 클래스 class Square { #length constructor (length) { this.setLength(length) } setLength (value) { // 함수를 사용하므로, 내부에서 예외 처리 등을 할 수 있다. if (value DOCTYPE html> Documen.. 2024. 2. 16.
[혼공스] 09 - 2 '클래스의 고급 기능' 정리 (1) INTRO 클래스라는 문법은 객체를 더 안전하고 효율적으로 생성하기 위해 만들어진 문법이다. 즉 클래스 문법들은 '어떤 위험이 있어서', '어떤 비효율이 있어서'라는 이유를 기반으로 만들어졌다. 따라서 '어떤 위험'과 '어떤 비효율'이 있었는지 이해할 수 있어야 문법을 제대로 활용할 수 있다. 이번 절에서는 제시되는 코드 예제에 어떠한 문제가 있는지 파악한 뒤, 새로운 문법을 살펴보면서 문제를 해결하는 형태로 진행하겠습니다. 상속 다음 코드는 Rectangle이라는 사각형을 나타내는 클래스를 선언하고 사용하는 예이다. getPerimeter()라는 사각형의 둘레를 구하는 메소드와 getArea()라는 사각형의 넓이를 구하는 메소드를 추가했다. DOCTYPE html> Document class Recta.. 2024. 2. 15.
[혼공스] 09 - 1 '클래스의 기본 기능' 정리 INTRO C를 제외한 모든 프로그래밍 언어는 객체 지향(Object Oriented)이라는 패러다임을 기반으로 만들어진 프로그래밍 언어이다. 객체 지향 패러다임이란 객체를 우선적으로 생각해서 프로그램을 만든다는 방법론이다. 객체 지향 프로그래밍 언어들은 클래스라는 문법으로 객체를 효율적이고 안전하게 만들어 객체 지향 패러다임을 쉽게 프로그래밍에 적용할 수 있도록 도와준다. 추상화 필요한 요소만 사용해서 객체를 표현하는 것을 추상화(abstraction)라고 부른다. 좀 더 포괄적인 사전적 의미로는 복잡한 자료, 묘듈, 시스템 등으로부터 핵심적인 개념과 기능을 간단하게 추려내는 것을 추상화라고 한다. 같은 형태의 객체 만들기 학생 성적 관리 프로그램을 만든다고 생각해보자. 학생이라는 객체가 필요하고, 그.. 2024. 2. 13.
[혼공스] 6주차 미션 혼공학습단 마지막 미션이다. 2024년 1월 3일부터 2월 9일까지 약 38일간 열심히 달렸다. 어떤 책이든 책 한 권을 다 보는 것이 쉽지 않은데 혼공학습단이라는 동기가 생겨서 꾸준하게 달려올 수 있었다. 혼공족장님을 포함해 함께 달려온 러닝 메이트 모두에게 감사하고 고생했다고 말해주고 싶다. 기본 미션 p.315의 을 실행한 후 출력되는 고양이 이미지 캡처하기 코드 DOCTYPE html> Document document.addEventListener('DOMContentLoaded', () => { const rects = document.querySelectorAll('.rect') // 특정 클래스로 요소를 선택한다 rects.forEach((rect, index) => { const width.. 2024. 2. 9.
[혼공스] 08 - 2 '예외 처리 고급' 정리 오늘은 08 - 2장의 내용을 정리해 보자. 08 - 2장의 제목은 '예외 처리 고급'으로, 예외 객체와 throw 구문에 대해서 설명하고 있다. 현대 자바스크립트 개발에 예외 객체와 throw 모두 적극적으로 사용되고 있다. 그럼 정리 시작! INTRO 자바스크립트는 다른 프로그래밍 언어와 비교해서 예외가 거의 발생하지 않는 프로그래밍 언어이다. 이는 프로그램에 수많은 버그를 일으킬 수 있는 요소가 되기도 한다. 그래서 개발자가 예외를 강제로 발생시켜줘야 하는 경우가 많다. 예외를 강제로 발생시킬 때 throw 키워드를 사용한다. throw 키워드를 이용해 예외를 어떻게 강제로 발생시킬 수 있는지 알아보자. 예외 객체 현실에서 어떤 사건이 발생하면 '누가, 언제, 어디서, 무엇을, 어떻게, 왜'라는 정.. 2024. 2. 8.