전체 글

전체 글

    [백기선님과 함께하는 Live Study] 2주차) 자바 데이터 타입, 변수 그리고 배열

    [백기선님과 함께하는 Live Study] 2주차) 자바 데이터 타입, 변수 그리고 배열

    프리미티브 타입 종류와 값의 범위 그리고 기본 값 Java에서 프리미티브 타입(Primitive Type) 이란 Java에서 제공하는 기본 변수 타입을 말한다. 여기서 타입이란, 컴퓨터가 해당 데이터를 어떻게 식별할지 알려주는 분류기준이라고 생각하면 된다. 프리미티브 타입은 정수 타입을 나타내는 byte, short, int, long과 실수 타입을 나타내는 float, double, 그리고 문자 타입을 나타내는 char과 참/거짓을 구분해주는 논리 타입인 boolean, 8개로 구성되어있다. 정수형 타입은 모두 기본값을 0으로 가지고 long 타입의 경우 0L로 가진다. 실수형 타입들인 float 타입은 0.0f, double 타입은 0.0을 기본 값으로 한다. 마지막으로, 문자형 타입인 char 타입..

    [백기선님과 함께하는 Live Study] 1주차) JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.

    [백기선님과 함께하는 Live Study] 1주차) JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.

    목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습과정 JVM이란 무엇인가 JVM 구성 요소 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JDK와 JRE의 차이 JVM이란 무엇인가? JVM은 Java Vertual Machine의 줄임말이며, Java 바이트코드(*.class 파일)를 운영체제나 CPU등에 종속적이지 않고 독립적으로 실행할 수 있는 주체이다. 즉, Java 파일만 있다면 어떤 환경에서도 JVM 위에서 해당 파일을 실행할 수 있다. 또한, 프로그램의 메모리를 직접 관리해 메모리를 최적화 시킨다. JVM의 구성요소 JVM은 크게 Class loader, Runtime Data Areas, Excution Engin..

    Spring Cloud Config Server를 Private Repository와 연동

    Spring Cloud Config Server를 Private Repository와 연동

    Spring Cloud Config Server와 GitHub 레포지토리를 연동하는 과정에서 추가적으로 Private 레포지토리는 SSH 키 등록 및 등록 과정에서 이슈가 있어서 해결법을 정리하고자 한다. Private 레포지토리를 연동하는 방법은 SSH 키 등록 및 GitHub 계정 자체를 연동하는 방법이 있다. 📌 GitHub 계정 자체를 연동하기 Spring Cloud Config Server의 application.yml 파일에 GitHub 계정 아이디 및 계정 패스워드를 작성한다. server: port: 8088 # Spring Cloud Config Server 포트 spring: application: name: config-server cloud: config: server: git: u..

    Spring Cloud Config Server/Client 설정

    Spring Cloud Config Server/Client 설정

    프로젝트를 진행하면서 다양한 서비스의 프로젝트 환경 설정 정보를 Spring Cloud Config Server와 GitHub Repository를 이용해 중앙에서 관리하면 클라이언트의 환경설정 정보를 따로 수정할 필요 없이 한 번의 수정만 가능할 것 같아 도입하기로 결정했다. 🥇 Spring Cloud Config Repository 각 서비스 환경과 서비스 별 개발, 테스트, 로컬 환경을 구분해 파일을 관리하기 위해서 GitHub Repository를 하나 생성한다. 해당 레포지토리에는 Yaml파일만 관리하는 용도로 사용한다. 각각의 환경 별 설정 파일을 구성해 업로드한다. # 로컬 환경 DB 설정 spring: datasource: driver-class-name: com.mysql.cj.jdbc...

    Swagger를 이용한 API 문서화

    Swagger를 이용한 API 문서화

    ❓Swagger란? Swagger는 Open API를 명세하기 위한 Open Api Specification(OAS) 프레임워크이다. API들이 가진 스펙을 명세하고, 관리하여 문서화 해주는 기능을 가지고 있다. Swagger를 이용해 다른 개발팀과 협업, 프로젝트의 유지보수 , 백엔드 API 명세서를 작성해 보다 편리하게 관리하는 것이 가능하다. ⚙️ Spring Boot Swagger 설정 Spring Boot 프로젝트에 의존성 추가를 한다. implementation 'io.springfox:springfox-swagger2:2.9.2' #Swagger 애노테이션 사용가능 implementation 'io.springfox:springfox-swagger-ui:2.9.2' #Swagger UI 사용..

    2022. 03.17 퇴사를 하다.

    1년간의 회사생활 2021.02.22 - 2022.03.17까지 약 1년간의 첫 직장생활을 하고 퇴사를 했다. 입사 당시를 돌아보면, 점점 더 심해지는 코로나와 그로 인해 얼어붙어 가는 취업시장 상황을 취직한 지인들을 통해 들으면서 도전보다는 안주하자라는 마음이 강했던 것 같다. 2번째 회사 지원만에 운 좋게도 최종 합격까지 이뤄냈고, 신입 기준 초봉이 나름대로 괜찮다고 생각해 관심 없는 분야임에도 자바 백엔드 개발을 담당할 예정이라는 말에 입사를 결심하게 되었다. 하지만, 최종 면접과 신입 사원 OT까지만 해도 자바 백엔드 개발을 담당할 거라는 말과는 다르게 회사는 나를 C를 사용하는 생명보험 ITO부서로 나를 배정했다. 대학교 1학년 학부 시절 이후로 C를 사용해 본적이 없던 나는 많이 당황했었다. ..

    [백준, Java] 12100번 : 2048(easy)

    [백준, Java] 12100번 : 2048(easy)

    🔗 문제 링크 https://www.acmicpc.net/problem/12100 😮 문제 해결 방법 첫 번째 턴부터 시작해서 5턴이 넘어갔을 때 남아있는 블럭 중 최대 크기의 블럭을 탐색했다. 매 턴마다 상, 하, 좌, 우 방향으로 블록이 이동하면서 합쳐질 수 있고, 합쳐진 이후에는 해당 방향으로 블록들을 밀어줘야한다. 그리고, 한 턴당 상, 하, 좌, 우 방향으로 블록을 옮기기 때문에 각 방향으로 블록을 옮길 때마다 블록의 배열을 매 턴의 input 으로 들어온 배열로 다시 돌려놔 줘야 다른 방향에 대해서도 올바르게 탐색이 가능하다. 즉, 매 턴의 게임판의 상태 배열을 깊은 복사를 통해 한 개 더 생성한 후 복사한 배열을 통해 방향을 탐색하고, 방향 탐색을 끝냈을 땐 기존 배열로 다시 초기화 해주었다..

    [프로그래머스, Java] 빛의 경로 사이클

    [프로그래머스, Java] 빛의 경로 사이클

    🔗 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/86052 🤔 문제 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진합니다. 빛이 "L"이 써진 칸에 도달한 경우, 좌회전을 합니다. 빛이 "R"이 써진 칸에 도달한 경우, 우회전을 합니다. 빛이 격자의 끝을 넘어갈 경우, 반대쪽 끝으로 다시 돌아옵니다. 예를 들어, 빛이 1행에서 행이 줄어드는 방향으로 이동할 경우, 같은 열의 반대쪽 끝 행으로 다시 돌아옵니다. 당신은 이 격자 내에서 빛이 이동할 수 있는 경로 사이클이 몇 개 있고, 각 사이클의..