전체 글 67

[Docker] 리눅스 환경에서 컨테이너 관리하고 실행하기

도커를 사용하여 여러 개의 컨테이너를 관리하고 실행해보았다. 이 실습은 세 개의 컨테이너를 사용한다. MySQL 컨테이너 (mysqldb): MySQL 데이터베이스를 실행하고 관리한다. fisa라는 데이터베이스에 activist, recipient, probono, probono_project라는 네 가지 테이블을 생성하고 데이터를 삽입한다. Oracle 컨테이너 (oracledb): Oracle 데이터베이스를 실행하고 관리한다. 이 컨테이너는 user01이라는 사용자와 관련된 설정을 사용하여 실행된다. Spring Boot 어플리케이션 컨테이너 (springbootapp): 스프링 부트 어플리케이션을 실행한다. 이 어플리케이션은 MySQL 데이터베이스와 연동하여 데이터를 조회하고 웹 페이지를 제공한다...

Infra 2024.02.16

프로그래머스 압축 Java - 최적화하기

https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2018 KAKAO BLIND RECRUITMENT 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr 위의 문제를 이전에 풀어봤을 땐 5일씩 붙잡고 풀었던 기억이 난다. 여러 가지 노하우가 쌓인 지금 Ha..

Algorithm 2024.01.25

[JavaScript] JSON 데이터 table 형태로 표현하기

DB에서 여러 건을 가져와서 html에 테이블 형식으로 출력하고자 한다. DeptController.java 우선 Controller에서 ObjectMapper를 사용해서 객체 타입의 데이터를 JSON 형태로 바꿔준다. @WebServlet("/dept") public class DeptController extends HttpServlet { DeptDAO dao = new DeptDAO(); protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { ObjectMapper objectMapper = new ObjectMapper(); S..

Web 2023.12.28

Spring Boot H2 Database 사용하기

실행 환경은 Windows, IntelliJ, Java 17, Spring Boot 3 버전, gradle 프로젝트를 사용했다. plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } ... java { sourceCompatibility = '17' } resources 하위에 application.yml 파일을 만든 후 아래의 코드를 작성한다. spring: h2: console: enabled: true server: port: 8070 프로젝트 실행 후 Console 창에서 JDBC URL 을 찾아서 ctrl+C로 복사해둔다. 콘솔창에서 ..

Java 2023.12.27

자바 입문 전 알아두면 좋은 것 2

함수 vs. 메서드 함수는 어디에 속해있지 않고 단독 모듈이기 때문에 함수를 그냥 호출하여 사용이 가능하다. 메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 한다. 변수는 데이터, 함수 또는 메서드는 기능, 클래스는 변수와 기능을 보유한 구조로 생각할 수 있다. 객체를 생성하여 class 기반으로 실제 하드웨어 메모리에 생성하고 데이터를 활용할 수 있다. 객체 생성 시 반드시 생성자라는 요소가 필요한데, 개발자가 코딩하지 않아도 class 내부에 자동으로 생성된다. 개발자들이 개발하는 모든 class는 자바 데이터 타입으로 사용 가능하다. 타입은 객체 타입 또는 참조 타입이다. 생성된 객체를 관리하는 변수는 참조(reference) 변수라고 ..

Java 2023.12.14

Ubuntu에 있는 MySQL을 로컬 Windows JDBC와 연결하기(Eclipse)

VirtualBox에서 Linux 환경을 구성하고 MySQL을 설치했다. 로컬 PC의 Windows 환경에서 JDBC 연결이 잘 되지 않아 헤맨 내용을 바탕으로 해결한 내용을 포스팅한다. 현재 DBeaver에는 root 계정과 user01 계정이 있다. alter user 'root'@'localhost' identified with mysql_native_password flush privileges; grant all privileges on . to 'root'@'localhost' with grant option use mysql; select user,host from user; 결국에는 위의 내용과 같이 권한을 주어서 해결하는 것 같은데 root는 연결 성공하고 user01은 되지 않는 문제점..

Infra 2023.12.12

입사 지원 ERD 그려보기

https://dbdiagram.io/home dbdiagram.io - Database Relationship Diagrams Design Tool dbdiagram.io 입사 지원을 하다보면 이력서에 작성해야 할 내용이 많다. 방대한 입력 데이터를 회사는 어떻게 DB에 저장할까? 그림으로 데이터 관계도를 그려봤다. 채용 프로세스를 살펴보면 대부분 입사 지원(이력서 제출) > 코딩 테스트/필기 시험 > 1차 면접 > 임원 면접 > 최종 발표 와 같은 형식으로 진행된다. dbdiagram 사이트를 통해 ERD를 그려보았다. dbdiagram 코드 // Use DBML to define your database structure // Docs: https://dbml.dbdiagram.io/docs Tab..

Database 2023.11.28

[Programmers] 등굣길 Java

동적 계획법(Dynamic Programming) > 등굣길 https://school.programmers.co.kr/learn/courses/30/lessons/42898?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 코드(효율성 0점) class Solution { public int solution(int m, int n, int[][] puddles) { int answer = 0; int[][] route = new int[m + 1][n + 1]; for(int i = 0; i < puddles.length; i..

Algorithm 2023.11.28

Windows에서 MySQL 설치 및 삭제하기

목차 1. MySQL 다운로드 2. MySQL 실행 확인 3. 자동 path 설정됐는지 확인해보기 4. MySQL 예제로 테스트해보기 5. MySQL 삭제하기 1. MySQL 다운로드 https://www.mysql.com/downloads/ MySQL :: MySQL Downloads MySQL NDB Cluster CGE MySQL NDB Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL NDB Cluster MySQL NDB Cluster Manager Plus, everything in MySQL..

Database 2023.11.28

[Programmers] 가장 먼 노드 Java

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가장 먼 노드 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리..

Algorithm 2023.11.22