전체 글 193

chapter. String (숫자만 추출)

주어진 문제는 간단했다. 입력받은 문자열에 숫자가 있으면, 숫자만 추출해 순서대로 자연수를 만들어서 출력하는 문제였다. // ex) g0en2T0s8eSoft -> 0, 2, 0, 8 == 208 이 문제를 어떻게 접근 할 것인가?에 대해 생각해보았고, // 나는 어떻게 접근할 것인가? -> 문자열 입력받고, 문자열의 길이만큼 반복을 통해 숫자와 문자를 필터-> // 그리고 숫자를 배열에 저장-> 배열 반환? (그럼 숫자와 문자를 어떻게 필터할건데? -> '아스키코드' 이용) 이렇게 생각을 했다. 내가 앞서 생각한 방식 int answer = 0; for(int i =0; i57 || (int)a 기존에 생각 했던 부분은 그냥 문자를 계속 더해주는 것... -> (실패) answer = answer*10..

Day.23 예외를 상위에서 처리하는 이유?

2022.05.15 - [Language/Java] - 예외 처리(Exception) 과거 예외처리 관련 정리를 한 적이 있다. 이 속에서 예외와 에러 그리고 예외처리에 대해 간략하게 학습을 했었는데, 다시 한번 정리하면 에러는 프로그램 자체나 하드웨어, JVM에 문제가 생겼을때 발생하며, 예외는 잘못된 조작이나 코드로 인해 예기치 못한 오류가 발생하는데,이 예외가 발생하면 프로그램이 종료되는 부분이 있으나 예외처리를 통해 정상적으로 동작되게 만들어 줄 수있다. 하위 클래스들은 왜 상위 클래스로 예외처리를 해야할까? 이렇게 하지 않으면 예외처리를 했음에도 main에서는 exception을 전달받지 못해서 예외를 인지하지 못하는 경우가 발생한다. 그래서 상위 클래스로 예외를 전달하면서 예외가 발생했음을 알..

Day.22 객체지향설계 SOLID 원칙

2022.11.28 - [기술면접 관련 및 참고하기] - 객체 지향의 SOLID 원칙 객체 지향의 SOLID 원칙 참고 : 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체지향하면 SOLID 원칙이 자연스레 따라나온다. 이 내용을 뭔가 너무 간단하게만 알고 있어서 항상 '아, 그렇구나' 라는 느낌만 있었는 jipang9-greedy-pot.tistory.com 오늘 프로젝트를 거의 마무리하고 객체 지향 관력 학습 도서를 읽으면서 객체 지향의 SOLID 원칙에 대해 이해하고 학습하는 시간을 갖게 되었다.

객체 지향의 SOLID 원칙

참고 : 스프링 입문을 위한 자바 객체 지향의 원리와 이해 객체지향하면 SOLID 원칙이 자연스레 따라나온다. 이 내용을 뭔가 너무 간단하게만 알고 있어서 항상 '아, 그렇구나' 라는 느낌만 있었는데, 오늘 이 객체 지향 관련 학습을 하면서 정리해보려고 한다. 1. 단일 책임 원칙 SRP(Single Responsibility Principle) "어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다" 말 그대로 하나의 책임(기능)만을 가지게 끔 설게하는 것이 단일 책임 원칙이다 설명 Java에서 클래스를 정의할 때, 그 클래스가 제공하는 기능들을 마구잡이로 구현하기 마련인데, 이는 잘못된 방식이다. 그래서 이 원칙에 따라 역할(책임)을 분리하여 설계하는 방식을 통해 책임의 영역을 확실히 하게되면 ..

내배캠-4주차 WIL (2022.11.21~2022.11.27)

FACTS ( 일주일 동안 발생한 일, 그리고 내가 한 일 - What i did this week ) 프로젝트 시작 선택과 집중 어떻게 하면 좀 더 객체지향스러울 수 있을까? CS 지식 흡수하기 FEELINGS ( 나의 생각, 감정, 반응 - Everything i felt mentally ) 고민 코드에 대한 선택과 집중 어지러움 아 이렇게도 짤 수 있구나 FINDINGS ( 내가 얻은 것, 배운 것, - I learnd) CS 지식 객체지향스러운 코드 FUTURE ( 배운 것을 미래에는 어떻게 적용할 지 - Step to the future) 더욱 객체 지향스럽고 논리적인 코드를 작성하자. Week TIL 2022.11.21 - [Language/Java] - 객체 지향적 설계? 2022.11.21..

WIL(Week I Learned) 2022.11.28

Day.21 Git 그리고 HTTP

2022.11.25 - [기술면접 관련 및 참고하기] - HTTP는 뭔데요? ( CS 특강 - HTTP/HTTPS/통신 흐름, TLS/SSL 등) - 작성 중 HTTP는 뭔데요? ( CS 특강 - HTTP/HTTPS/통신 흐름, TLS/SSL 등) - 작성 중 HTTP (HyperText Transfer Protocol) " 우리는 HTTP 메시지에 모든 것을 전송한다 " 1. HTTP란 뭘까? 이 HTTP는 우리가 백/프론트 (클라- 서버) 사이에서 자원을 교환하기 위한 TCP./IP 기반의 통신 프로토콜이다 ( jipang9-greedy-pot.tistory.com 오늘 CS 특강에서 다룬 내용을 중심으로 다시 정리하는 시간을 가지게 되었으며, HTTP에 대해 더욱 짚고 넘어갈 수 있는 시간이 되었다.

HTTP는 뭔데요? ( CS 특강 - HTTP/HTTPS/통신 흐름, TLS/SSL 등) - 작성 중

HTTP (HyperText Transfer Protocol) " 우리는 HTTP 메시지에 모든 것을 전송한다 " 1. HTTP란 뭘까? 이 HTTP는 우리가 백/프론트 (클라- 서버) 사이에서 자원을 교환하기 위한 TCP./IP 기반의 통신 프로토콜이다 (프로토콜은 여기서 상호 간 정의한 규칙이다) 2. HTTP의 특징은? 상태가 없는 프로토콜 (stateless), 비 연결성 HTTP 메시지 단순함, 확장 가능 클라이언트 서버 구조 클라이언트 서버 구조 (독립적인 이점이 존재함) 클라이언트는 서버에 요청을 보내고, 응답을 대기한다. 그럼 서버는 이 요청에 대한 결과를 만들어서 응답한다. (Request, Response 구조) 이렇게 클라 단과 서버 단을 분리하면 (옛날엔 이 개념들이 분리되어 있지 ..

Day.20 BigDecimal 연산

2022.05.22 - [Language/Java] - 자료형과 BigDecimal 그리고 소수점(부동, 고정) 자료형과 BigDecimal 그리고 소수점(부동, 고정) 자료형 언어마다 다양한 변수의 타입을 지원하며, 값의 범위와 종류는 다르다. 기본 자료형과 참조 자료형으로 나눌 수 있는데 다음과 같다 기본 자료형 (8) = boolean, char, byte, short, int, long, float, d jipang9-greedy-pot.tistory.com 과거 BigDecimal에 대해 접하고, 이게 무엇인지에 학습을 했는데, 오늘은 이 BigDecimal을 이용한 연산에 대해 학습을 해보았다. 이 BigDecimal은 실수에 대한 정확한 연산이 필요할 때 사용하는데, 돈과 소수점 같은 데이터..

Day.19 Java 미니 프로젝트 (메모장 만들기)

드디어 두번째 미니프로젝트가 진행되었다. 이번 프로젝트는 무려 2개.. 프로젝트를 진행함에 있어 긴장감과 설렘이라는 감정이 교차로 느껴졌다. 이유는 평소에 자바로 무언가를 만들어 봐야겠다는 생각을 해본 적도 없었고, 그냥 문법과 자바 지식만 습득한 상태라 그냥 그러려니 했던 부분들 직접 구현하려하니 생각보다 시간이 오래 걸렸다. 기본적인 CRUD를 구현함에 있어 고려해야 할 점들과 기본적인 예외처리라던지, 요구사항을 만족할 수 있도록, 나름대로 분석?을 하고 그 후 개발을 시작했다. 중간중간에 팀원분들과 점검을 했었고, 서로 코드를 공유하면서 작업을 진행하니 나름 재미있었다. 오늘도 역시 어떻게 하면 객체지향적으로 코드를 짤 수 있을까? 라는 고민과 어떻게 하면 코드를 이쁘게, 효율적으로 짤 수 있을까?..

Day.18 자바 미니 프로젝트 전

객체지향스럽게 코드를 짤 수 있도록 생각하고 또 생각한 하루 + 내일있을 미니 프로젝트를 어떻게 진행해야 할 까에 대한 고민 + 스프링 입문을 위한 자바 객체 지향의 원리와 이해 책 읽기 오늘은 크게 뭘 학습하진 않았고, 새로운 지식인 멀티 모듈이 있었다. 아직 정확하게 이해는 부족하지만, 아 이런게 있구나. 이렇게도 가능하구나 라는 생각을 해보았다. 또 튜터님께서 Java를 이용해서 Spring으로 서비스까지 하는 부분에 대해 신기했다. 해봐야겠다는 생각이 없었는데 실제로 동작하는 것과 뭔가 다양한? 경험을 할 수 있었던 하루였다. https://cjw-awdsd.tistory.com/55 [스프링] 멀티 모듈(Multi Module) 개념/예제 feat. Gradle 최근 진행하는 토이 프로젝트의 A..