글의 목적 김영한님의 스프링 핵심 원리 - 기본편의 섹션 1 수업을 듣고 공부한 스프링의 탄생 배경과 필요성을 스스로 정리해보고 이해하는 것! 본문 한줄 요약 스프링은 EJB의 한계를 극복하고 POJO 즉, 순수한 자바 형태의 객체 지향 설계를 지원하기 위해 탄생한 프레임워크이다. 본문 Chapter 1. 자바 진영의 추운 겨울 때는 바야흐로 2000년대 초반, 자바 표준 모델로서의 EJB(Enterprise Java Bean)가 자바의 생태계를 군림하던 때였다. 자바 진영의 개발자들은 어렵고 복잡한 EJB로 인해 크고 작은 난항을 겪곤 했다. EJB가 어깨를 펼치고 자바 생태계를 활보할 때마다, 개발자들의 야근 마일리지도 함께 쌓여 갔다. 개발자들은 끝도 모르고 몰려오는 야근에, 그들에게 허락된 유일한..
https://prashantgaurav1.files.wordpress.com/2013/12/java-util-collection.gif Map을 제외한 Collection 인터페이스 산하의 List와 Set의 상속 관계 도표 진한 파란색은 class를 나타내고 그냥 파란색은 interface를 나타낸다! 컬렉션 프레임워크 구현시 활용하자! Collection framework는 수많은 수학자, 공학자들이 그들의 피와 땀으로 발견, 개발한 지적자산인 알고리즘과 자료구조를 java를 만드신 분들이 우리가 편한 프로그래밍을 할 수 있도록 (그들의 노동력을 갈아서) 만들어 놓은 API이다. 알고리즘과 자료구조를 일일히 공부하고 나서 복잡한 코딩으로 구현해야 하는 사항을 Collection framework를 ..
시작하기에 앞서 본 글은 국비지원을 수강하는 학생이 공부한 내용을 바탕으로 '정리를 위해' 작성한 글입니다. 학생이 쓴 글이기 때문에 내용에 오류가 있을 수 있습니다! 본 글은 생활코딩의 java-다형성 강의, 책 이젠 나도! 자바의 상속 파트, 프로그래밍 언어 튜토리얼 사이트 tutorialspoint의 java-polymorphism을 바탕으로 작성 하였습니다! 다형성(Polymorphism)이란 다형성은 하나의 메소드나 클래스가 다양한 방법으로 동작할 수 있는 것을 의미한다. 이를테면 코드상에 존재하는 a라는 메소드를 사용할 때, 어떤 식으로 사용하느냐에 따라(매개 변수를 다르게 한다던지 - 오버로딩, 상속을 통해 구현부를 수정한다던지 - 오버라이딩) a의 동작 방법이 달라질 수 있다는 것이다. 텍..
시작하기에 앞서 본 글은 java 국비지원 과정을 듣고 있는 학생이 쓴 글로, 비숙련자가 공부한 내용을 바탕으로 정리한 글이기 때문에 내용에 다소간에 오류가 있을 수 있습니다. 해당 문법의 개념에 대해 설명하고 있기 때문에 설명하는 텍스트가 상당히 많습니다! 기술적인 정보보다는 개념을 이해하고자 적은 텍스트 기반의 글임을 알립니다! 자바는 객체 지향 프로그래밍 언어이다. 객체 지향 특징을 가진 언어로써 자바는 다음과 같은 특징을 갖는다. 추상화(abstraction) - 지하철 노선도와 같이 특정 필요한 정보만을 중심으로 실제를 간소화 한 것 캡슐화(encapsulation) - 보안 등의 이유로 데이터 혹은 기능을 하나로 묶어 관리하는 것 상속성(inheritance) - 하나의 클래스가 가진 특징을 ..
* 코딩도장이라는 사이트에서 Level 1짜리 문제풀이를 진행했다. * 코딩도장 사이트 : https://codingdojang.com/ 코딩도장 프로그래밍 문제풀이를 통해서 코딩 실력을 수련 codingdojang.com 1. 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라. package aloneSolvingExample; public class Multiples_of_3_or_5 { public static void main(String[] args) { // 1000 아래의 3과 5의 배수의 합을 구하시오. int sum = 0; for (int i = 1; i < 1000; i++) { if (i..
일러두기 연 복리를 상정하여 만든 계산기입니다. 금융에 대한 지식이 전무한 필자가 만든 계산기이기 때문에 실제로 사용하는 부분에는 적합하지 않을 수 있습니다 : / ㅎ.. 그동안 배운 Java 공부를 복습하고 싶어서 복리를 계산하는 미니미니한 프로젝트를 기획했다. 이를 위해 우선 메모장을 꺼내 복리에 대한 식을 세워봤다. 원금을 x, 이자율을 4.6%로 상정하고 년차에 따른 이자액 및 총 보유액을 계산해보았다. 그러자 (놀랍게도) 다음과 같은 규식성을 발견할 수 있었다. (저거 계산하는데 1시간 이상 쏟은 것 같다. 중간에 계산이 틀려서 식이 우주로 가는 바람에 머리를 꽤 썼다...) 위를 통해 얻은 규칙성을 수식으로 표현하면 다음과 같다. n년차 이자액 = (원금) x 0.046 x 1.046(n-1)..
1. 생활코딩 수업 오늘은 생활코딩의 JAVA 객체 지향 프로그래밍을 학습했다. 어제부터 공부했는데, 제법 어려워서 어제 다 공부하지 못한 것을 오늘 다 공부했다. (어제는 공부하는데 머리가 너무 아파서 포기했었다. 내 전공(역사) 공부할때는 머리가 아프다는 느낌을 받은 적이 딱히 없었는데, 코딩을 공부 할때는 진짜로 말 그대로 머리가 아프다;; 생소한 지식이어서 그런 것 같다. 주제와는 상관 없으니 이하 각설.) 객체지향은 흥미롭다. 클래스의 권한을 한정하여 한 클래스가 다른 클래스에게 영향력을 행사하는 월권을 막을 수 있는 유용한 툴이다. 그리고 상위 객체와 하위 객체를 설정하여 객체간의 권한의 크기를 다르게 부여할 수 있다는 부분도 매우 흥미롭다. 오늘은 클래스보다는 조금 더 추상적인 인스턴스에 대..
1. 생활코딩 JAVA2 - Method Method에 대해 배웠다. 함수가 자바에서는 method라고 불린다는 것과, method를 사용함으로써 코드의 중복을 줄이고 유지 및 보수하기 용이한 코드를 짤 수 있다는 것이 흥미로웠다. Javascript에서 함수를 공부할 때도 흥미로웠었는데 JAVA의 method가 javascript의 함수와 상당히 유사하다는 점에 놀랐다. 언어 하나를 제대로 배우면 다음 언어를 배우는 것은 어렵지 않다는 표현이 이래서 있는 것 같다는 생각을 했다. + JAVA가 객체지향언어라는 것이 무슨 의미인지 조금 이해할 수 있게 됐다. 객체는 Class와 Instance를 포괄하는 개념으로 일종의 폴더? 같은 개념인 것 같다. Class에는 Method와 변수가 들어 있고, 그 C..