본문 바로가기

Plo Hanghae99

(19)
항해99 2주차 회고(2) 객체지향 프로그래밍이란? 객체지향 프로그래밍 Object-Oriented Programming 프로그램의 설계 방법이자 개념의 일종이다. 프로그램의 구현에 필요한 객체를 파악하고 각각의 객체들의 역할을 정의 , 객체들간의 상호작용을 이용하여 프로그램을 만들어내는 것을 뜻한다. 객체지향 프로그래밍의 장점 1. 재사용성 : 어떤 객체(class)를 다른 객체(class)가 상속하여 프로그래밍할 때에 코드의 재사용성을 높힐 수 있다. 2. 생산성의 향상 : 잘 설계된 객체(class)를 만들어 독립적으로 재사용함으로써 생산성을 크게 높힐 수 있다. 3. 유지보수의 편의성 : 기존 기능 수정 , 새로운 기능 추가에 용이하다. 객체지향의 특징중 하나인 캡슐화로 인하여 기존 함수를 수정하더라도 주변에 미치는 영향이 최소화되며 새로운 기능 ..
항해 99 2주차 회고(1) JDK! - 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..
항해99 12,13일차 Spring 입문 = 주특기 입문 시작! = 미니프로젝트 , 알고리즘 두개 키워드의 2주가 끝나고 주특기인 Spring 입문의 1주일이 시작됐다. 쉽진 않다던 spring , 금방 익숙해지리라 믿는다. 과제 완성 파일들로 게시글을 쓰고 싶었는데 배포하는 과정에서 build를 했더니 .jar로 압축돼버렸다... 압축푸는 방법을 찾아봐야할 것 같다.. = 입문 주차 과제 영상 = 입문주차 과제영상! = Spring MVC = Model , View , Controller 패턴의 개념이다. Model 데이터 저장소와 연동하여 사용자의 데이터를 저장하거나 데이터를 출력하는 등의 일을 수행함 여러개의 데이터 변경작업(추가, 변경 , 삭제)들을 하나로 묶는 트랜잭션의 역할도 수행함 DAO class중 service에 해당됨 DAO(..
항해99 10일차 , 11일차 =알고리즘 마지막 2일= 알고리즘 주간의 마지막 이틀을 보냈다. 첫주차 미니 프로젝트보다 많이 정적인 한주였으나 좋은 팀원분들을 만나 즐겁게 웃으며 보낸 한주였다. 단순 알고리즘을 푸는 것 만이 아닌 알고리즘을 풀어보고 다른 사람들의 답안을 보며 배워보고싶은 자바 문법과 스킬들을 찾고 정리하는 시간이 스스로 굉장히 큰 도움이 됐던 것 같다. = 알고리즘 주간 마지막 테스트 = 문자열 "1012341234"의 인자 값을 문자열 "010-1234-1234"의 형태로 리턴하는 메서드를 만들어주세요 String 형태로 들어온 매개변수 phone을 phone.split("") 함수를 통해서 한글자씩 쪼게 String배열에 담아줬다. 0,-,- 이 배열에 들어가야하기 때문에 ArrayListType의 빈 배열을 선..
항해 99 9일차 (알고리즘 모의고사) = 문제 = 항해 시작일을 입력하면 항해99 수료일을 n월n일 형식으로 리턴하는 메서드를 만드세요 import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(String[] args) { Main method = new Main(); System.out.println(method.solution(1, 18)); } public String solution(int day, int month) { String answer = ""; //Local Date today로 2022년 month월 day일의 객체를 생성 LocalDate today = LocalDate...
항해 99 8일차 (알고리즘) 항해 2주차의 시작이다. 항해 2주차의 시작은 일주일동안 집에 박혀있었으나 감염돼버린 코로나와 함께 깔끔하게 시작했다. -4일차- 28문제 中 28 Clear = Challenge 도전중 = 12문제 中 2 Clear 문제에 수학적 개념이 등장해서 덜컥 겁부터 먹었다. 자바로 문제해결 하는 것도 어려운데 수학적으로 계산까지 해가면서 풀어야하다니... 하는 생각을 했지만 생각보다 많이 간단한 문제였다. class를 통해 제곱근을 구해준 후 차근차근 단계만 밟아가면 되는 문제라큰 어려움이 없었던 것 같다. 이 문제가 유독 기억에 남는 이유는 후에 하샤드 수 , 콜라츠 추측 등의 문제를 마주했을 때 겁먹지 않고 풀어나갈 수 있게끔 해준 문제인 것 같다. 문제를 찬찬히 읽어보고 과정들을 하나 하나 주석으로 적은..
항해 99 7일차 -1주차- 회고 항해99의 1주 차가 끝났다. 정신없던 미니 프로젝트로 시작해 숨막히는 알고리즘으로끝난 1주 차의 회고 주제는 JWT와 API를 정리하는 것으로 주어졌다. 미니프로젝를 하며 내가 JWT를 이해하고 활용했던 부분과 API를 이해하고 설계했던 내용으로 정리를 해보면 좋을 것 같다. 1.Json Wen Tokens jwt는 " . "을 통해 3파트로 header.payload.signature 순으로 구분된다. Header : 토큰의 타입과 해시 암호화 알고리즘으로 구성되어있다. Payload : 토큰이 갖는 데이터를 말한다 (key : value 형태) Signauture : Header에 정의된 암호화 알고리즘을 통하여 암호화된 비밀 값 Secret Key값을 포함하여 암호화됨 1. hash 암호화 알고..
항해 99 6일차 (알고리즘) 한문제 한문제 모두 정리하고 싶었으나 블로그에만 너무 투자하는 시간이 많을 것 같아 알고리즘 주차에는 최대한 기억에 남는 알고리즘 문제를 몇 문제만 작성해보려 한다. -2일차- 28문제 中 24 Clear Arrays class에 sort 함수를 사용하면 간단하게 해결되는 문제였으나 for문으로 한번 해결해보았다. 앞의 문제를 해결할 방법을 찾다 봤던 선택정렬 알고리즘이 너무 인상적이었고 이번 문제를 보자마자 바로 활용해봐야겠다 싶었다. 처음 사용해본 StrignBuffer가 인상적이었던 문제 StringBuffer class는 String과 달리 가변 클래스이기에 .append() , .revrerse() 등의 값을 변경하는 함수의 사용이 가능해진다. 문제를 봤을 때 바로 코드를 짜기보다. 주석으로 어..