전체 글

전체 글

    [에러 해결] SyntaxError: Cannot use import statement outside a module

    (node:53507) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use `node --trace-warnings ...` to show where the warning was created) 프로젝트가 ES Module 을 사용중일 때 import 구문을 사용한 경우 발생하는 에러, Warning 에 써있는대로 package.json 에 type:module 을 추가해주면 된다.

    2023 우아한테크코스 6기 프리코스 후기

    프리코스 과정 지원서를 내면 1달간 매주 하나씩 미션을 수행하게 됩니다. 전 주의 미션을 제출해야 그 다음 주의 미션을 수행할 수 있습니다. https://github.com/snaag/wooteco-6-precourse-be GitHub - snaag/wooteco-6-precourse-be: 우아한테크코스 BE 6기 프리코스 레포지토리 우아한테크코스 BE 6기 프리코스 레포지토리 . Contribute to snaag/wooteco-6-precourse-be development by creating an account on GitHub. github.com 실제 난이도는 4주차가 제일 어려웠지만, 체감상 난이도는 3주차가 제일 어려웠던 것 같습니다. 1,2주차보다 3주차 요구조건이 훨씬 복잡했어서 ..

    우아한테크코스 프리코스 3주차 과제 후기 - 로또 게임

    과제 GitHub - snaag/java-lotto-6 Contribute to snaag/java-lotto-6 development by creating an account on GitHub. github.com 아래 네 단계를 수행하는 과제였다. 구매 금액에 따라 로또를 구매 로또 장수만큼 로또 번호를 생성 당첨번호 및 보너스 번호를 지정 수익이 얼마나 되는지 구현 로또는 왠지 익숙해서 (낙첨도 익숙^^...) 간단할거라고 생각했지만 오산이었다. 생각보다 구현 조건은 고려할 게 많았다. 로또 살때는 쉬웠는데 당첨 규칙이 이리 복잡할줄이야... 맨날 등수랑 돈만 봐서 몰랐다 ㅎ; 후기 구조 고려했던 것들 지난번 과제를 통해 배운 점들을 적용했다. 구조를 보다 빠르고 디테일하게 설계하려고 했다. 그리고..

    우아한테크코스 프리코스 2주차 과제 후기 - 자동차 경주

    과제 자동차 경주 게임이다. 게임의 로직은 같은 시간동안 최대한 멀리 간 참여자가 우승하는 것이다. https://github.com/snaag/java-racingcar-6 GitHub - snaag/java-racingcar-6 Contribute to snaag/java-racingcar-6 development by creating an account on GitHub. github.com 후기 갈아엎고 다시하기 처음에는 의미로 클래스를 나누고, 작업의 흐름을 위주로 생각하다보니 놓치는게 많았다. 그래서 한번 갈아엎었다. 예를들어, 사용자의 입력이 있으니 Player 클래스가 필요하다고 생각했으나... 막상 코드를 작성해보니 사용자는 단순 입력 및 유효성체크 외엔 없어서 Player 클래스는 필요..

    Collection 과 Map (왜 Map 은 Collection 을 extends 하지 않을까?)

    Collection Interface 다양한 자료구조들의 부모(?) 이며 iterable 하다 (순회할 수 있다, Iterable 인터페이스를 extends 했다). 그리고 하나의 값만 추가할 수 있다. 여기 Collection interface 를 extends 한 자료구조들 그림에서 알 수 있듯이, Collection (Interface) 는 Iterable (Interface) 를 extends 하고 있다. 그리고 List, Queue, Set (Interface) 들은 Collection (Interface) 를 extends 하고 있다. 그리고 각각의 구현 클래스 들은 Set, List, Deque 등을 implements 하고 있다. List - ArrayList, LinkedList, Vec..

    추상 클래스(abstract class) 와 인터페이스(interface) / 확장 / 예시 / 용도의 차이

    추상 클래스와 인터페이스 abstract class 와 interface class 는 둘 다 유사 개념에 대해 공통 코드를 만들 수 있고, 인스턴스를 바로 만들 수 없는 설계도 라는 공통점을 갖고 있다. 그렇다면 어떤 차이점을 갖고 있을까? 추상 클래스 abstract class (추상 클래스) 는 상속 (extends) 을 통해 구현될 수 있는 클래스 이다. 상속은 단일 상속 만 가능하다. 추상클래스는 IS-A 관계로 '무엇' 을 의미한다. 즉 무엇인가 가 어떤 특성(멤버 변수) 과 행동(메서드) 을 가지는 것을 정의할 수 있다. 따라서 멤버변수와 메서드를 구현할 수 있다. 추상 클래스의 확장 따라서 추상 클래스의 확장은, 특성이나 행동이 확장되는 것을 의미한다. abstract class Anima..

    Java 의 접근 제어자 - public, protected, default, private 에 대해서

    Java 의 접근 제어자에 대해서 Java 에는 public, protected, default, private 라는 4개의 접근 제어자가 있다. 말 그대로 접근의 범위를 제어하는 키워드 이다. 따라서 접근 제어자가 클래스에 붙어 있으면 해당 클래스의 접근 범위를 제어하는 것이고, 멤버변수에 붙어있다면 멤버변수의 접근 범위를 정하는 것이다. public protected default private 접근 범위 - 어디서나 - 자손 Class 내에서 - 같은 Package 내에서 - 같은 Class 내에서 - - 자손 Class 내에서 - 같은 Package 내에서 - 같은 Class 내에서 - - - 같은 Package 내에서 - 같은 Class 내에서 - - - - 같은 Class 내에서 protect..

    왜 자바 애플릿은 지원이 종료되었을까

    왜 자바 애플릿은 지원이 종료되었을까? 자바에 대해서 공부하다가 https://leexx.tistory.com/112 자바 애플릿은 무슨 사연으로 종료가 되었을까 궁금해서 찾아보았다. 책에서는 보안 문제라고 하였지만, 찾아보니 의외로... 보안 관련 특정 사건이라기보다는 복합적인 이유로 사라졌다고 한다. 누가 악의적인 프로그램을 만들어서 크게 문제가 되어서 중단이 된 줄 알았는데... 그렇진 않았다. 정리해보니 두 가지 이유로 볼 수 있었다. Flash 의 등장과 HTML5 로의 진화(?) 가 이유이다. 물론 보안 문제도 있지만, 그건 Flash 를 사용하지 않게 된 이유에 더 가깝다. 왜 자바 애플릿은 Flash 에게 밀렸을까? 무려 12년 전에 올라온 질문이다 (여기) 정리해보면, 자바 애플릿은 실행..