2022/04 8

스프링 4 경험하기

기존 스프링을 스프링5, 스프링 부트로 편하게 개발하였는 데 일상 글에서 말했다시피 스프링의 히스토리를 조금이나마 알고, 얕게 경험해보고자 스프링 4를 스프링 부트없이 직접 의존성을 주입해주는 등 스프링 부트에서는 자동으로 되어있는 것들을 직접 해보았다. 스프링 버전은 4.2.4 릴리즈를 사용하였으며, jdk는 1.8, aspectJ는 1.6, slf4j는 1.6.6, apache.titles는 3.0.7 버전으로 사용하였다. pom.xml는 다음과 같이 구성하였다. (너무 길기때문에 파일 참고) 그리고 default welcome 페이지는 기본 제공 JSP(index.jsp)를 사용하였다. 애플리케이션 config과 dispatcher를 설정하기 위해 web.xml에 다음과 같이 작성하여 설정하였다. ..

Spring 2022.04.30

정렬 알고리즘

정렬을 해결하는 데 여러 알고리즘을 사용하고, 어떤 알고리즘이 어떤 상황에 적절한 상황인지는 판별하기 다소 어렵다. 물론 다음과 같은 표가 있어 어느 정도 유추는 가능하나, 앞서 말한 좋은 상황, 나쁜 상황을 알기에는 부족하다. 그렇기에 직접 자바로 이를 테스트를 진행할 프로그램을 작게나마 만들었다. testcase패키지는 테스트 케이스이며 즉, 상황(문제)을 임의적으로 넣어둔 클래스들이 모여있다. Sort 인터페이스는 모든 정렬 알고리즘의 공통 영역이다. algorithm 패키지는 위 7가지 정렬 알고리즘을 구현한 클래스들이 모여있다. StopWatch 클래스는 시간을 계산할 수 있는 클래스이다. GitHub - iqpizza6349/sort-algorithm Contribute to iqpizza63..

일상이에요

요즘 일상을 너무 자주 쓰는 게 하는 걱정이 들 정도로 일상 글을 자주 올리는 것 같다. 현재 CS 관련해서 공부하고 있으며, SpringFramework에 대해서 다시 공부하고 있다. 아무래도 CS는 취업 및 그리고 기본적으로 알아둬야할 필요가 있다고 생각이 들어 공부 중이고, SpringFramework은 스프링의 히스토리를 공부하고자 스프링4에 대해서 공부하고 정리하고 있다. 많은 것들이 자동화와 추상화가 되어 너무 편하게 작업을 하다보니, 왜 자동화와 추상화가 필요한지를 잊어버렸다. 그리고 더 이상 이것에 대해서 질문을 던지지않고, 그냥 그런가 보다. 하는 자신을 되돌아보면서 이러면 안되겠다는 생각이 들어 공부 중이다. 덕분에 스프링 기초부터 찬찬히 다시 보고, 정리하고 있다. (스프링5보다는 스..

일상 2022.04.26

일단 마시고 본다. (상속)

자바를 개발하다 보면 상속이라는 개념을 배우게 됩니다. 그리곤 extends Object 가 있다는 것만 기억하게 되고 상속을 잊어버립니다. (전부가 그렇다는 것은 아니지만 제 친구는 잊어버렸습니다. 실제로 추상클래스 상속하라고 했더니 클래스 상속 어떻게 하는 건데? 인터페이스여야지만 상속되는 거 아니었음? 라고 했던 비하인드가 있습니다.(그친구는 개발에 흥미만 있는 친구입니다.)) 상속은 자바에 있어 굉장히 중요한 개념입니다. 부모가 가진 것을 자식에게 물려줄 수 있다는 점, 그리고 protected로 부모와 자식외에는 접근조차 불가한 접근 제어자까지 있습니다. 또, 부모에서 받은 것들을 재정의할 수 있다는 점에서 더 중요함을 알려줍니다. 예시를 들자면, Machine과 Robot으로 간단하게 들 수 ..

공부/Java 2022.04.25

일상이에요

요즘 3학년 선배들이 취업을 하신다고 면접을 봤거나 준비한다는 얘기를 자주 듣는다. 그래서 요즘 학교에서 가장 자주 내뱉는 말이 취업할 수 있을 까?이다. 아무래도 기사들을 읽어보면 요즘 직업계고 졸업생들이 취업률이 점차 낮아지고 있어 그런 걸 수도 있다. 또, 선배들이 하시는 얘기를 들어보면 기초가 중요하다. CS가 중요하다는 등의 얘기를 듣곤 하는 데 아무래도 기초기가 약하다고 생각이 들어 더 그런 것 같다. 친구끼리 ~이거 뭐야? 라고 물어봤을 때, 갑자기 머리가 새하애지는 듯 분명 그걸 사용해서 개발해본 경험 혹은 기록을 하였음에도 불구하고 기억이 나지않는 경우가 많았다. (물론 요즘은 이런 것들 역시 내 자신이 부족하다고 느껴서 정리를 더 자주 하고 있다. [물론 노션에...]) 그렇기에 현재 ..

일상 2022.04.23

일상이에요

보름 넘게 포스팅을 하지 않고 Notion으로만 정리한 오잎클로버입니다. 요즘 할 일이 굉장히 많아 Notion을 적는 것도, 블로그에 공부한 것을 올리는 것도 힘드네요. 개인 프로젝트, 덕지덕지 CNS 3기 프로젝트, 급식의 민족 CNS 신입생 입학원서 프로젝트, IDA 나르샤 프로젝트, 끼리끼리 (Flock) 일단 우선순위를 정해자면 다음과 같습니다. IDA 급식의 민족 Flock 덕지덕지 학교에서 진행하는 프로젝트이자, 동아리의 대표하는 프로젝트이고, 실제로 사용되고 있는 서비스(프로젝트)이기에 우선순위가 가장 높습니다. (학교 입학 원서 내에는 민감한 개인정보들을 다루어야 하기에 보안을 특히 신경 써야 하는 동시에 양이 방대합니다.) (그리고 레거시가 좀 개판이라... 리펙토링을 한다고 보긴 힘든..

일상 2022.04.18

[공부] 좋은 개발자가 되기 위한 팁

여러 글들을 읽다보니 "좋은 개발자"와 관련된 글들이 있어 지인 및 제가 생각했을 때(라곤 했지만, 그냥 제 개인적인 생각과 지인 피셜을 합친 결과물입니다.) 1. 에러(예외) 메시지를 읽는다. 많은 주니어 개발자, 그리고 제 주변에 있는 친구들만 봐도 에러(예외) 메시지를 읽지않고 그냥 복사 & 붙여넣기를 하여 해결하는 경우가 대다수입니다. 문제를 해결하는 데 있어 빠르게 찾고 문제 원인을 찾을 수 있기때문에 꼭 읽어야한다고 생각합니다. 2. 테스트 케이스를 작성한다. 테스트 케이스를 정의하고 테스트를 진행했다는 것만으로도 충분히 해당 코드를 작성한 개발자에게 신뢰감을 줍니다. (메인 코드만 봐서는 제대로 작동하는 지 어떠는 지 제대로 파악하는 것은 어렵다.) 또, 테스트 케이스를 작성하는 것으로 미리..

공부 2022.04.02