HashMap에서 입력받은 Key가 존재하는지 확인하고, HashMap 전체를 탐색하는 방법 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 의상의 이름은 사실 필요없는 값이다. 종류별 몇 개가 있는지만 기록하고, 각 종류별 부분집합을 구하는 문제인데 모든 종류의 옷을 입지 않아도 되기 때문에 각 종류별로 0 즉, 입지 않는 경우의 수를 포함하여 곱해주..
전체 글
연관관계 매핑을 JPA 계의 포인터라고도 한다. 낙오의 갈림길이라는 의미이다. 연관관계의 개념을 정확히 알지 못한 채 프로젝트를 진행하다 보니 헷갈리는 부분이 너무 많아서 기본 개념을 확립해야겠다는 생각이 들었다. 연관관계 매핑 객체는 참조(주소)를 사용해서 관계를 맺고, 테이블은 외래 키를 사용해서 관계를 맺는다. 이 둘은 완전히 다른 특징을 가진다. 객체 관계 매핑에서 가장 어려운 부분이 바로 객체 연관관계와 테이블 연관관계를 매핑하는 일이며 이를 연관관계 매핑이라 한다. 객체 연관관계와 테이블 연관관계의 가장 큰 차이 참조를 통한 연관관계는 항상 단방향이다. 객체의 양방향 관계는 사실 서로 다른 단방향 관계 2개이다. 반면, 테이블은 외래 키 하나로 양방향으로 JOIN할 수 있다. 테이블의 양방향 ..
인텔리제이에서 mysql을 사용하는 방법을 정리해보았다. mysql 설치부터 연결까지 초기 세팅 과정이다. 만약 mysql을 사용하는데 아래와 같은 에러가 발생한다면 깜빡한 것이 있는지 확인해보자. ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061) 1. mysql을 설치해준다. 아래 링크에서 둘 중 아래 파일을 클릭하여 인스톨러를 다운받는다. 만약 컴퓨터에 visual studio가 깔려있지않은 경우 설치해줘야 한다. 하지만 최신버전인 2022는 또 안된다. 2019 버전을 설치해주자 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Install..
디지털 미니멀리즘 – 칼 뉴포트 모든 일에는 동기부여가 필요하다. 우리는 하루에 스마트폰을 3시간 넘게, 밤늦게까지 보고 다음 날 아침 피곤해하며 후회하곤 한다.(나만 그런 거 일수도 있다..) 하지만 휴대폰을, 특히 SNS를 오래 보면 안 되는 구체적인 이유와 적게 사용해서 얻을 수 있는 이점 등을 깊이 공감해야만 동기가 생기고 실천할 수 있게 된다. 이 책은 그 동기부여를 도와준다. SNS의 위험성 과도한 온라인 활동은 정신건강에 부정적인 영향을 미친다. 소셜 미디어는 사람의 기분을 조종한다. 나는 sns를 할 때 새로운 정보를 획득하고 다른 사람들의 이야기를 통해 자극을 받을 수 있어 좋다고 생각했다. 하지만 이는 내 정신 상태가 건강하고 상황이 여유로울 때 가능한 생각이라는 사실을 알게 되었다. ..
IoC와 DI는 스프링에만 국한된 단어가 아니다. IoC는 프로그래밍 원칙 중 하나이고 DI는 디자인 패턴 중 하나이다. 제어의 역전(Inversion of Control) : 내가 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것. 말 그대로 제어권이 뒤바뀐다는 의미한다. 객체 측면에서는 객체에 대한 제어권을 애플리케이션이 가지는 게 아니라 프레임워크가 가지는 것을 의미한다. IoC가 왜 필요한가? 기존에는 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고 연결하고 실행까지 다 했다. 한 마디로 구현 객체가 프로그램의 제어 흐름을 스스로 다 조종했다. 혼자서도 모든 걸 알아서 잘하는 스마트한 객체를 설계했다는 뜻이다. 이는 개발자의 입장에서는 자연스러운 흐름이며 프로..
싱글톤 패턴(Singleton Pattern) 웹 애플리케이션에서는 싱글톤 패턴이 많이 활용된다. 웹 애플리케이션은 보통 여러 클라이언트가 서버에 동시에 요청을 한다. 아래 그림과 같이 클라이언트가 memberService를 요청하면 new로 객체를 생성하여 반환해준다. 여러 클라이언트가 요청할 때마다 객체를 새로 생성하여 반환하기 때문에 메모리 낭비가 심하다. 이러한 문제를 해결하기 위해 등장한 방안이 해당 객체가 딱 1개만 생성되고 다른 클라이언트들에게 공유하도록 설계하는 것이고 이를 싱글톤 패턴이라 한다. 싱글톤 패턴은 단순하지만 강력한 흐름을 따른다. (물론 이 흐름말고도 다양한 방법으로 구현할 수 있다.) 싱글톤 패턴은 클래스의 인스턴스가 딱 하나만 생성되는 것을 보장한다. 어떻게? -> 객체 ..
H2 Database - 자바 기반의 오픈소스 DBMS. - 용량이 작고 가벼우면 Web admin page도 제공해준다. 따라서 실무에서는 잘 사용하지 않지만 교육용으로 적합함. 설치 방법(Windows 기준) 1. http://h2database.com/html/main.html 접속 2. Download에 Windows Installer 클릭하여 다운로드 3. 다운받은 파일 압축 풀고bin 폴더에 h2.bat파일 실행 4. 아래와 같이 chrome 탭에서 자동으로 H2 콘솔이 실행된다. 만약 url만 뜨고 콘솔 화면이 안 나오는 경우, url의 포트 앞 ip를 지우고 "localhost"로 변경해주면 된다. 간단 사용 방법 콘솔 화면에서 JDBC URL 칸이 있는데 초기 화면에서 이 값은 jdbc:..