본문 바로가기

개발자

(41)
객체지향 OOP! 객체지향 프로그래밍 Object-Oriented Programming 프로그램의 설계 방법이자 개념의 일종이다. 프로그램의 구현에 필요한 객체를 파악하고 각각의 객체들의 역할을 정의 , 객체들간의 상호작용을 이용하여 프로그램을 만들어내는 것을 뜻한다. 객체지향 프로그래밍의 장점 1. 재사용성 : 어떤 객체(class)를 다른 객체(class)가 상속하여 프로그래밍할 때에 코드의 재사용성을 높힐 수 있다. 2. 생산성의 향상 : 잘 설계된 객체(class)를 만들어 독립적으로 재사용함으로써 생산성을 크게 높힐 수 있다. 3. 유지보수의 편의성 : 기존 기능 수정 , 새로운 기능 추가에 용이하다. 객체지향의 특징중 하나인 캡슐화로 인하여 기존 함수를 수정하더라도 주변에 미치는 영향이 최소화되며 새로운 기능 ..
JDK , JavaC , JRE , JVM , GC!! - Java Develoment Kit - 개발자들이 jav로 프로그램을 만들 수 있도록 다양한 기능을 제공하는 java개발 kit이다. - Java Compiler - .java file을 작성 후 Compile 하게되면 JavaC는 .java 파일 -> .class 파일(JavaByteCode)로 변환시켜준다. - Java Runtime Enviroment- 자바 런타임 환경 (JRE)는 자바 클래스 라이브러리 , JVM , 자바 클래스 로더 등을 가지고 있으며 JavaC가 변환한 .class파일을 JVM에게 전달 원할하게 작동할 수 있도록 환경을 구성해준다. - J V M - Java Byte Code를 다양한 OS에 맞게 해석해주는 역할을한다. JavaByteCode는 기계어가 아니기 때문에 OS..
Spring API @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @GetMapping("hello-string") @ResponseBody public String helloString (@RequestParam(..
Spring MVC Pattern Spring MVC Model , View , Controller 패턴의 개념이다. Model 데이터 저장소와 연동하여 사용자의 데이터를 저장하거나 데이터를 출력하는 등의 일을 수행함 여러개의 데이터 변경작업(추가, 변경 , 삭제)들을 하나로 묶는 트랜잭션의 역할도 수행함 DAO class중 service에 해당됨 DAO(Data Access Object) DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 View 모델이 처리한 데이터나 결과를 바탕으로 사용자에게 출력할 화면을 만드는 역할 뷰 컴포넌트는 html , css , Js를 사용하여 출력할 UI를 생성해줌 생성된 UI는 웹 브라우저가 출력 Controller Client의 요청을 받았을 때 그 요청에 대해 실제 업무를 ..
항해99 10일차 , 11일차 =알고리즘 마지막 2일= 알고리즘 주간의 마지막 이틀을 보냈다. 첫주차 미니 프로젝트보다 많이 정적인 한주였으나 좋은 팀원분들을 만나 즐겁게 웃으며 보낸 한주였다. 단순 알고리즘을 푸는 것 만이 아닌 알고리즘을 풀어보고 다른 사람들의 답안을 보며 배워보고싶은 자바 문법과 스킬들을 찾고 정리하는 시간이 스스로 굉장히 큰 도움이 됐던 것 같다. = 알고리즘 주간 마지막 테스트 = 문자열 "1012341234"의 인자 값을 문자열 "010-1234-1234"의 형태로 리턴하는 메서드를 만들어주세요 String 형태로 들어온 매개변수 phone을 phone.split("") 함수를 통해서 한글자씩 쪼게 String배열에 담아줬다. 0,-,- 이 배열에 들어가야하기 때문에 ArrayListType의 빈 배열을 선..
public static void main(String[] args)의 의미 public static void main(String[] args) Intellij로 java를 공부하고 사용하면서 public class Main 코드블럭 내부에 로직을 작성하고 Run해서 내가 작성한 코드를 확인했다. 자바정리 포스팅의 첫번째는 항상 아무 생각없이 마주했던 main함수를 뜯어보는걸로 시작해보려한다. public static void main(String[] args) main method 간단하게는 자바의 규칙이라한다. 프로그램 실행시 반드시 main메서드가 먼저 실행되어야하는 규칙이다. 내가 실행시키고 싶은 로직이 있다면 반드시 public static void main(String[] args){} 중괄호 내부에 로직을 위치시켜야 한다. public 접근제어자로 접근에 제한이 없..
프로그래머스 Lv1 로또의 최고 순위와 최저 순위 import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; //두 배열의 값이 같을 때 , lottos 배열의 값이 0일 때 , 최종적으로 -해줄 때 사용할 객체의 선언 //6개 번호가 모두 일치할 때의 값이 1이기 때문에 rank는 7로 선언한다. int match = 0; int zero = 0; int rank = 7; //배열의 값을 비교하기에 앞서 오름차순으로 두 배열을 정렬 Arrays.sort(lottos); Arrays.sort(win_nums); //반복문으로 두 배열의 값을 비교하며 두 배열의 값이 같으면 match가 1씩 더해진다. f..
프로그래머스 Lv1 두개 뽑아서 더하기 class Solution { public Set solution(int[] arr) { Set set = new TreeSet(); for (int i =0 ; i < arr.length ; i++){ for (int j = 0; j < arr.length; j++) { if(i == j) { continue; } set.add(arr[i] + arr[j]); } } return set; } } Set set = new TreeSet(); -Set- 저장 순서가 유지되지 않는다. 반복문과 인덱스를 통하여 Set의 탐색이 불가능해 Iterator를 사용해야한다. 객체의 중복을 자동으로 제거해준다. -TreeSet- 이진 탐색트리 형태로 데이터를 저장하며 데이터의 추가 , 삭제는 다른 Set Collect..