목록java (12)
나의 길

DTO(Data Transfer Object)란?계층 간에 데이터 교환을 위해 사용하는 객체public class User { private Long id; private String name; private String email; private String password;} 위의 User 클래스를 바로 응답으로 넘겨주면 몇 개의 문제점이 있습니다. 1. 해당 클래스의 모든 정보가 보이며 이로 인해 민감한 정보가 노출되어 보안 문제가 발생할 수 있습니다.2. User 클래스가 변경될 경우 View가 View가 변경될 경우 User 클래스가 변경되는 강한 결합을 가지게 됩니다.3. JPA 사용시 직렬화 문제가 발생할 수 있습니다. Lazy 로딩 필드가 직렬화되지 않거나 예외 발생 ..

이 문제는 StringBuilder의 reverse() 메소드와 많은 방법을 통해 구현할 수 있지만 저는 Stack을 활용해서 문제를 풀었습니다. (링크의 과정을 참고하여 Stack으로 풀이!) 구현 코드 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new String..

이 문제는 반복문을 배웠다면 접할 별찍기의 약간 심화 버전처럼 느꼈습니다.(피라미드 + 역 피라미드 별 찍기) 구현 코드 import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); for (int i = 1; i 0; i--){ for ..

스택(Stack)이란? 스택은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 밑이 막힌 투명한 실린더에 고체를 쌓고 뺀다라고 생각하면 됩니다. 특징은 마지막에 넣은 데이터를 처음으로 꺼냅니다. 해당 이미지는 스택을 이해하기 위한 예시를 입니다. Java main method가 실행되고, z method를 호출합니다. z method 호출을 종료하고, main method로 돌아와 main method 호출을 종료합니다. 이미지에도 나타나 있듯이 스택에서 데이터를 집어넣는 것을 push, 빼는 것을 pop이라고 합니다. 스택 기본 사용법 Java에서는 Stack을 push, pop 이외에 peek(맨 위의 데이터 출력), search(해당 데이터가 있으면 그 위치 반환, 없으면 -1 반환), ..

이번에 작성하는 글의 주제는 Udemy Spring Boot 강의(https://www.udemy.com/course/spring-boot-and-spring-framework-korean) 수강 후기입니다!이 강의를 선택하시기 전 알아두시면 좋은 점과 이 강의로 공부한 입장에서 후기를 말씀드리겠습니다! 이 강의를 선택한 이유 아래 이미지와 같이 업데이트가 잘되고, 한글 자막 버전이 아닌 강의도 평이 좋고, 한글 자막도 평이 좋아 선택하였습니다. 다른 강의들보다 탄탄한 커리큘럼이고, 미리 보기 가능한 강의로 어느 정도 수준이 맞을 것 같아 선택하는 계기가 되었습니다. 강의를 통해 배운 점 1. spring boot에서 필요한 spring spring boot를 배우려면 spring 프레임워크의 기능들을 ..

이번에 작성하는 글의 주제는 Spring Boot 강의(https://www.udemy.com/course/spring-boot-kimsonga/) 수강 후기입니다! 이 강의를 선택하시기 전 알아두시면 좋은 점과 이 강의를 완강! 한 입장에서 공부한 것들을 말씀드리겠습니다! 강의 선택 이유 Spring Boot를 사용해 본 지 얼마 되지 않아 입문자 수준의 강의를 원해서 미리 목표?로 작성해 주신 부분에 완강 후에도 혼자 공부할 수 있는 방법을 가져갈 수 있다고 해주셔서 마지막으로 강사님의 자기소개를 보고 이런 사소한 부분도 쉽게 만든다면 강의를 내가 원하는 수준으로 해주실 것 같아서 강의 내용 및 배운 점! 먼저 처음 강의부터 마지막까지 막 자바를 배우고 온 상황이라고 가정하고 강사님이 강의를 해주십니..

문제를 구현하는 것은 간단하다고 생각했다. 먼저 세준이의 과목을 첫 번째 줄에 입력받고, 두 번째 줄에는 빈칸(" ")으로 구분된 각 과목의 점수를 입력받는다. 이후 세준이의 야매(?) 점수 계산법을 통해 {(점수 / 최댓값) * 100} 각 과목의 점수를 바꾸고 바뀐 점수를 통해 우리가 흔히 사용하는 (각 과목 점수의 합 / 과목 수) 평균 식을 적용하여 출력을 하면 된다. 그런데 여기서 조금 생각해 보아야 하는 문제가 있다. 바로 예제 출력값에서 볼 수 있는 소수점이다. 이 소수점을 보고 정수형 자료형이 아닌 실수형 자료형을 생각하고 문제를 풀어야겠다고 생각했다. 코드 import java.io.*; public class Main { public static void main(String[] arg..
조건문 조건문에는 if, if-else, switch가 있다. if문의 구조 if(조건식) { 조건식이 true일 경우 실행되는 실행문 }else { 조건식이 false일 경우 실행되는 실행문 } if(조건식) { 조건식이 true일 경우 실행되는 실행문 } else if (조건식) { else if 조건식이 true일 경우 실행되는 실행문 ....(else if를 계속 쓰는 것이 가능하다.) } else { 위의 조건식이 모두 false일 경우 실행되는 실행문 } !! 고려해야 할 점 : if문의 진행방향은 위에서부터 아래로 진행된다. 위에 조건식이 true면 실행문을 실행하고 더 작은 범위로진행되기 때문에 조건식을 줄일 수 있도록 하자! switch문의 구조 switch(변수) { case 값1: 실..

JAVA 연산자 : 연산에 사용하는 표시나 기호 x + x // 여기서 'x'는 피연산자 '+'는 연산자, 'x + x'는 연산식이다. JAVA 연산자의 종류 연산자의 종류는 위의 표를 보고 이해하는 것이 좋다. 별 문제 없이 이해 할 수 있는 수준이고 우선순위가 높은 증감연산자를 알아보자. 증감연산자 : ++, -- 와 같은 연산자를 말하며 쓰임새는 밑의 예로 알아보자. ++i 와 i++ 는 모두 i=i+1로 동일하다. 하지만 다른 연산자와 같이 쓰이게 된다면 int i = 1; int j = 1; int result1 = ++i + 10; -> result1 = 12 로 저장된다. int result2 = j++ + 10; -> result2 = 11 로 저장된다. case1 ++x +10 x ---..
JAVA에 타입 변환 유형 자동 타입 변환 : 작은 범위에 타입이 큰 범위의 타입에 담기면 말 그대로 자동으로 타입이 변환되는 일을 의미한다. int num1 = 10; double num2 = num1; 이 경우 num2는 10.0 으로 자동 변환됨 강제 타입 변환 : 큰 범위에 타입을 작은 범위의 타입에 담으면 변환되지 않으므로, 강제적으로 타입을 변환시켜주는 것 double num1 = 10.123; int num2 = (int) num1; (int) 가 강제 타입 변환을 위한 Casting(강제 타입 변환) 연산자이다. 이 결과 num2는 10이 출력된다. 정수 연산에서의 자동 타입 변환 산술 연산식에서 int타입 변수 보다 작은 byte, char, short타입 변수로 연산을 한다면 int 타..