본문 바로가기

전체 글59

객체지향과 절차지향의 데이터 처리 방식은 무엇이 다를까? 프로그래밍을 공부하다 보면 객체지향과 절차지향이라는 용어를 많이 들어볼 수 있다. 그러면 여기서 우리는 의문점을 가질 수 밖에 없다. 객체지향과 절차지향이 뭐지? 무엇이 다르지? 에 대한 의문점 말이다. 이름만으로 생각해 보면, 아! 객체지향은 객체를 지향하니까 객체를 사용하는거고, 절차지향은 절차를 지향하니까 순서대로 뭔가를 처리하는 방식이겠구나! 라고 생각할 수 있다. 결론부터 말하면 완전히 틀린 접근이다. 객체지향과 절차지향에 대해서 세세히 설명하자면 글이 끝없이 길어질 것 같으니, 이 글에서는 전하고자 싶은 부분만 전하도록 하겠다. 필자가 생각하기에 둘의 큰 차이점은 "데이터의 관리 및 가공 방법"에 있다. 예를 들어 한번 설명해 보겠다. 어느 학급 학생들의 시험 점수 평균과 을 구하는 기능을 구.. 2021. 3. 9.
모던 자바 인 액션 스터디 3. 스트림 활용 손너잘 5장 문제.손너잘은 집을 사기 위해 열심히 저금을 하고 있다. 이번 우테코은행에서는 손너잘과 같은 사람들을 위해 적금 시스템을 만들었다. 적금은 4년 만기 이며 매달 돈을 내면 이자를 매달 복리로 계산하여 준다. 이자울는 10%이다. 아래와 같이 손너잘이 저금한 금액이 들어왔을 때 최종적으로 손너잘이 받을 금액을 산출하시오. 단 복리계산은 다음과 같이 한다. 1년, 1월에 74만원을 입금한 손너잘은 이자 10퍼를 더한 7.4만원을 2월달에 받고 2월에 80만원을 입금하였으므로 그 시점 자산은 74 + 80 + 7.4 인 171.4만원이 된다. 이 금엑에 또 10퍼의 이자를 받고 3월달에 합쳐지고..... 또한 4년 마지막 달의 이율은 계산하지 않는다. 이해가 안되면 댓글 부탁 드립니다. 입력은 행.. 2021. 3. 7.
모던 자바 인 액션 스터디 2. 스트림. 찰리 ====================== 모던 자바 인 액션 2회차 4장. 스트림 소개 ====================== 맥북 프로가 사고싶은 찰리는 배민 커넥트를 시작하는데 찰리의 배달을 받는 조건은 다음과 같습니다. 배달장소가 “요기요“인 주문은 받지 않습니다. 거리가 2000 미만인 주문만 받습니다. 추가로 다음의 정보도 확인하려합니다. 전체 배달목록 중 “우테코“가 포함되는 장소에서 주문한 갯수 아래와 같이 Iterator 객체를 사용해서 배달요청을 필터링하는 코드를 만들었습니다. 하지만 다음날 제이슨의 강의에서 Stream API를 배우고 코드를 리팩토링 하기로 결심합니다. 아래의 main 메서드 안에있는 코드에 Stream API를 적용시켜주세요! import java.util.A.. 2021. 3. 7.
모던 자바 인 액션 스터디 1. 람다 각자 챕터를 읽고 챕터에 맞는 문제를 제출, 스터디원은 문제를 푼다. 손너잘 3장 문제 나갑니다.손너잘은 람다를 공부하고 람다식의 매력에 푹 빠져버렸다. 결국 그는 악행을 저지르고 마는데, 특정한 수를 계산하는데 있어 람다식을 남발해 버리고 만 것이다. 그나마 다행인것은 자바 8에 추가된 함수형 인터페이스를 이용하여 뭔가를 만들어냈다. 이 코드를 자세히 살펴보던 갓니는 손너잘에게 역정을 내며 말했다. "이렇게 성능이 개구진 코드를 짜면 어떡합니까? 당신 프로그래머 실격이에요" 다음은 손너잘이 짠 코드이다. MyNumber 클래스를 제외한 부분을 수정하여 프로그램의 성능을 최대한 끌어 올리고, 왜 수정된 부분에 의해 성능 하락이 발생했는지 서술하여라. (단, 람다식을 메소드로 분리하여 레거시 하게 리팩토링.. 2021. 3. 4.
DTO와 VO, 의문에 대한 답변 (DTO와 VO는 왜 혼용되는가, DTO는 왜 사용하는가, VO는 무엇인가) 이번 우테코 테코톡에서 인비의 DTO와 VO에 대한 발표가 있었다. 테코톡이 끝나고 루트가 DTO와 VO에 대한 질문을 남겼는데, 생각해 보니 같은 의문점이 들어서 자료를 찾아봤다. 이번 글은 DTO와 VO에 대해 설명하느 글이 아니다. DTO와 VO에 대한 사람들의 의문에 대한 답변을 준비해 봤다. 댓글로 남긴 답변을 약간 다듬어서 블로그에 남겨본다. 저도 DTO VO를 공부하다가 알게된 사실이 있어서 공유 드립니다! 인비가 자세하게 설명해 줘서 추가자료라고 생각하시면 좋을 것 같아요.루트의 질문을 받고 저도 문득 DTO와 VO에대해 궁금해져서 자료를 좀 찾아봤어요. 그리고 그 정답이 들어있는 자료를 찾았습니다! 그것은 바로, 마틴 파울러 아저씨의 저서입니다 (Patterns of Enterprise .. 2021. 2. 26.
공변반환 타이핑 이펙티브 자바의 builder 패턴을 읽다가 발견했다. 지금까지 모르고 있었는데 정말 신기한 기법이다. 자바의 변수가 "공변" 임을 이용하는 기법인데 소스를 보면서 확인하자 public class Main { abstract static class Test { int a = 1; public int getA() { return a; } abstract public Test ret(); } static class T extends Test { int b = 2; public int getB() { return b; } @Override public T ret() { return new T(); } } public static void main(String[] args) { T t = new T(); t.g.. 2021. 2. 26.