본문 바로가기

분류 전체보기36

Week 회고 회고재미로 만든 추억 사이트지난주는 html + css + js + pyhton을 이용해 미니 프로젝트를 만들었다.pythonanywhere를 이용해 배포를 했다. 나름 재미있어서 친구들과의 사진을 저장하는 페이지를 만들어 목록마다 특정 친구들 사진을 불러오게 하는 작업도 했다.  약 2일간 미니 팀 프로젝트 DevMinds3명이서 간단한 프로젝트를 만들었다. 주제는 블로그로 velog를 모티브로 삼았다. https://github.com/DevMinds-inno/DevMinds GitHub - DevMinds-inno/DevMindsContribute to DevMinds-inno/DevMinds development by creating an account on GitHub.github.com내가 맡.. 2024. 6. 17.
[Effective java] 상속보다는 컴포지션을 사용하라 목적 확장할 목적으로 설계되었고 문서화도 잘 된 클래스라면 상속도 안전합니다. 하지만 일반적인 다른 패키지의 구체 클래스를 상속하는 일은 위험할 수 있다고 합니다. 오늘은 상속을 쓰기 좋은 상황과 상속의 위험성과 상속대신 컴포지션을 사용하는 방법을 알아보려고 합니다. 상속의 위험성 상위 클래스는 릴리스마다 내부 구현이 달라질 수 있습니다. 해당 여파로 하위 클래스가 오동작할 수 있습니다. 하위클래스가 상위클래스로 인해 깨지기 쉬운 예시 1. HashSet - 문서화가 잘 안되어 있을 경우 HashSet으로 생성된 이후 원소가 몇 번 더해졌는지 알 수 있어야한다라고 했을 때 다음과 같이 상속으로 구현할 수 있을 것입니다. import java.util.Collection; import java.util.H.. 2023. 9. 9.
[Effective java] Comparable 구현 고려하기 목적 Comparable 인터페이스에는 compareTo 메서드가 있습니다. compareTo는 단순 동치성 비교뿐 만이 아닌 순서를 비교할 수 있고, 추가로 제네릭한 특징을 가지고 있습니다. Comparable을 구현했다는 것은 자연적인 순서가 있음을 뜻하게 되어 Arrays.sort()와 같은 메서드, 자동 정렬되는 컬렉션(ex. TreeSet) 등과 함께 사용하면 관리가 쉬워집니다. 단순히 Comparable을 구현해서 정렬만 쉽게 하면된다고 생각했는데, 몇 규약을 지키지 않을 경우 문제가 발생할 수 있다고 합니다. 그래서 오늘은 Comparable 인터페이스를 구현할 때 지켜야하는 규약과 규약을 지키지 않았을 때 문제점, 작성 요령에 대해 알아보고자 합니다. Comparable 인터페이스를 구현할.. 2023. 9. 2.
[백준][JAVA] 11725: 트리의 부모 찾기 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음에 문제 이해를 잘 못했었다. 정확히 무엇을 출력해야하는 것인지를 이해하지 못했었는데 알고보니 노드 2번부터 N번까지 차례대로 부모노드가 몇번인지를 알려달라는 것 이었다. dfs를 적용하면 간단하게 해결할 수 있던 문제였다. 트리의 루트가 1번이기 때문에 dfs로 1번부터 순차적으로 방문을 체크하면서 확인해주면 된다. import java.util.*; import java.io.*; class Main{ static boolean[] visited; st.. 2023. 8. 26.
LIST