
[프로그래머스] 파일명 정렬(2018 KAKAO BLIND RECURITMENT)
2022. 9. 22. 17:49
CodingTest
문제 링크 - 파일명 정렬 2018 KAKAO BLIND RECRUITMENT 기출 문제 1. 접근 방법 ‣ 이번 문제는 최대한 객체지향적으로 풀어보려고 노력했습니다. ‣ 이 문제의 핵심은 주어진 문자열에서 원하는 부분들을 추출하는 능력입니다. ‣ File이라는 클래스를 정의하고 내부에는 head, number와 originalFileName을 갖도록 합니다. ‣ 생성자로 원본 파일명을 전달받아 head, number를 추출하고 originalFileName을 그대로 저장합니다. ‣ 구현한 정렬 조건에 따라 정렬하고 순서대로 originalFileName을 출력합니다. 2. 소스 코드 class Solution { class File implements Comparable{ private String h..

[프로그래머스] N진수 게임(2018 KAKAO BLIND RECRUITMENT)
2022. 9. 15. 21:16
CodingTest
문제 링크 - N진수 게임 2018 KAKAO BLIND RECRUITMENT 기출 문제 1. 접근 방법 ‣ 이 문제는 10진수를 n진법으로 변환시켜주는 Integer.toString(number, n) 메소드를 알고 있는지가 핵심이다. ‣ StringBuilder를 2개 사용했는데 preBuilder는 튜브가 뽑아야하는 최대 t개, 게임 참가 인원 m을 곱한만큼 진법 변환한 숫자를 append 한다. ‣ answerBuilder에서는 원하는 갯수 t개가 될 때까지 preBuilder에서 튜브의 순서에 맞는 숫자를 append 해준다. ‣ answerBuilder를 출력한다! 2. 소스 코드 class Solution { public String solution(int n, int t, int m, in..

[운영체제 스터디] - 1. 운영체제 개요
2022. 9. 15. 02:48
Fundamental/OS
[1주차] - 운영체제 개요 운영체제란 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층으로 사용자에게 편리한 인터페이스 환경을 제공하고 컴퓨터 시스템의 자원을 효율적으로 관리하는 소프트웨어이다 운영체제의 역할 자원관리 컴퓨터의 자원을 응용 프로그램에 나누어주어 사용자가 원활하게 작업할 수 있도록 돕는다 자원보호 비정상적인 작업으로부터 컴퓨터 자원을 지킨다 하드웨어 인터페이스 제공 다양한 장치를 사용할 수 있도록 해주는 하드웨어 인터페이스 제공 운영체제가 다양한 하드웨어를 일관된 방법으로 사용할 수 있도록 지원하기 때문에 우리는 하드웨어를 신경 쓸 필요가 없다 사용자 인터페이스 제공 사용자가 운영체제를 편리하게 사용하도록 지원하기 위한 것 GUI, ..

인터페이스에 대해 알아보자!
2022. 9. 12. 17:47
Language/Java
스프링의 다형성의 장점을 누리기 위해서는 인터페이스에 대해서 잘 알아야해서 인터페이스를 정리해는 시간을 가지려고 한다! 인터페이스란 일종의 추상클래스이다. 하지만 추상클래스보다 추상화 정도가 높아 멤버변수와 일반 메소드를 가질 수 없다.(자바 8부터는 default 키워드를 통해 일반 메소드 구현이 가능하다.) 1️⃣ 인터페이스 정의하는 방법 ‣ 인터페이스를 정의하는 방법은 class 키워드가 아닌 interface 키워드를 이용하여 작성한다. interface Animal { void cry(); void sleep(); } 2️⃣ 인터페이스 구현하는 방법 ‣ 인터페이스를 구현하는 방법은 class 뒤에 implements 인터페이스명 키워드를 활용해 구현한다. ‣ 인터페이스를 구현할 클래스에서는 반드..

자바의 패키지란?
2022. 9. 2. 03:03
Language/Java
1️⃣ package 키워드 ‣ 패키지란, 클래스의 묶음이다. ‣ 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리이다. ‣ 모든 클래스는 반드시 하나의 패키지에 속해야 한다. ‣ 패키지는 점을 구분자로 하여 계층구조로 구성할 수 있다. ‣ 패키지 선언하기 ‣ 패키지 선언문은 반드시 소스파일에서 주석과 공백을 제외한 첫 번째 문장이어야 하며, 하나의 소스파일에 단 한번만 선언될 수 있다. ‣ 자바는 기본적으로 이름없는 패키지를 제공한다package 패키지명; 2️⃣ import 키워드 ‣ 클래스의 코드를 작성하기 전에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 소스코드에 사용되는 클래스이름에서 패키지명은 생략할 수 있다. ‣ im..

자바의 클래스란?
2022. 8. 21. 22:12
Language/Java
1️⃣ 클래스 정의하는 방법 ‣ 클래스는 객체를 정의하는 틀(설계도)이며 상태(변수)와 행위(메소드)를 가져야한다. ‣ 자바에서 클래스는 필드, 생성자, 메소드로 구성된다. public class Foo { // 필드 private String name; private String age; public Foo() { } public Foo(String name, String age) { this.name = name; this.age = age; } public String getName() { return name; } } 2️⃣ 객체 만드는 방법 (new 키워드 이해하기) ‣ 위에서 만든 클래스를 객체로 만들어 사용해야 하는데 이렇게 객체로 만드는 과정을 인스턴스화라고 한다. ‣ 객체는 new 라는 ..

[Exception] 전역으로 예외처리 해보기
2022. 8. 13. 15:29
Backend/Spring
토비의 스프링 스터디를 진행하며 4장에서 더 알아보고 싶은 내용으로 위와 같은 주제를 정했다. 이제부터 자세히 알아보자! 1. DispatcherServlet에서의 예외처리 SpringBoot에서 예외처리를 하는 방식 doDispatch 메소드 내부에서 try/catch를 통해 예외처리를 하고 있음 이후 processDispatchResult에서 Dispatch 결과 처리 public class DispatcherServlet { protected void doDispatch(...) throws Exception { // ... try { ModelAndView mv = null; Exception dispatchException = null; try { // Controller 로직 실행 (핸들러를 ..

[JPA] 영속성 관리
2022. 8. 12. 22:12
Database/JPA
영속성 관리 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련되 모든 일을 처리한다. 엔티티 매니저 팩토리와 엔티티 매니저 // 공장에서 엔티티 매니저 생성, 비용이 거의 안든다. EntityManager em = emf.createEntityManager(); 엔티티 매니저 팩토리는 이름 그대로 엔티티 매니저를 만드는 공장인데, 공장을 만드는 비용은 상당히 크다. 따라서 한 개만 만들어서 애플리케이션 전체에서 공유하도록 설계되어 있다. 엔티티 매니저 팩토리는 여러 스레드가 동시에 접근해도 안전하므로 서로 다른 스레드 간에 공유해도 되지만, 엔티티 매니저는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 된다. 영속성 컨텍스트란? 엔..

자바의 제어문을 알아보자
2022. 8. 11. 17:51
Language/Java
1️⃣ if문 ‣ 조건문을 테스트해서 조건문이 참이면 if문을 수행하고, 거짓이라면 else문을 실행한다. 조건의 세분화가 필요하다면 else if문을 추가해 조건을 판단한다. ‣ if문의 기본 구조 if (조건문) { ; ; ... } else if(조건문) { ; ; ... } else { ; ; ... } 2️⃣ switch/case문 ‣ if문과 비슷하지만 더 정형화된 조건 판단문이다. ‣ 입력변수의 값과 일치하는 case 입력값(입력값1, 입력값2, ...)이 있다면 해당 case문에 속한 문장들이 실행된다. ‣ case문마다 break 라는 문장이 있는데 해당 case문을 실행 한 뒤 switch문을 빠져나가기 위한 것이다. 만약 break 문이 빠져 있다면 그 다음의 case 문이 실행된다...

자바의 다양한 연산자에 대해 알아보자
2022. 8. 6. 01:09
Language/Java
연산자란? ‣ 연산자는 연산을 수행하는 기호를 말한다. ‣ 연산자 ‣ 연산을 수행하는 기호(+, -, *, / 등) ‣ 피연산자 ‣ 연산자의 작업 대상(변수, 상수, 리터럴, 수식) ‣ 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다. 식과 대입연산자(=) ‣ 연산자와 피연산자를 조합하여 계산하고자하는 바를 표현한 것을 식이라고 한다. ‣ 대입연산자 =를 사용해서 변수와 같이 값을 저장할 수 있는 공간에 결과를 저장해야 한다. 비트 연산자(& ㅣ ^ ~ > >>>) ‣ 비트 연산자는 피연산자를 비트단위로 논리 연산한다. ‣ 피연산자로 실수는 허용하지 않는다. ‣ | (OR 연산자) ‣ 피연산자 중 한 쪽의 값이 1이면, 1을 결과로 얻는다. 그 외에는 0을 얻는다. ‣ & (AND 연산자..