개요 Team.Lifestyle이라는 GSM의 학생들끼리 모인 팀이 있다 팀활동중 온라인 스터디를 진행하게 되었고 스터디 주제로 이 주제를 선정하게 되었다. 다들 스프링 시큐리티를 공부하면서 필터와 인터셉터에 대해서는 한번씩 들어보았을 것이다. 둘이 다른건 알겠지만 무엇이 다른지 제대로 설명못하는 나와 다른 백엔드 개발자들을 위해 한번에 정리해보도록 하겠다. 그리고 한번 AOP 관점으로도 알아보자 자바로 웹 개발을 하다보면, 공통적으로 처리해야 할 업무들이 많다. 서블릿 필터 (Servelt Filter) 필터는 간단히 말해서 HTTP요청과 응답을 변경, 재사용이 가능한 코드이다. 객체의 형태로 존재하며 클라이언트로부터 오는 요청과 최종 자원 사이에 위치해 클라이언트의 요청 정보를 변경할 수 있다. 필터..
Developer Perspective
개요 학교 내 만들어진 팀중 Lifestyle이라는 팀이 있다. 난 그곳의 리더로서 온라인 스터디라는걸 진행했다. 물론 참여자는 두명뿐이였지만.. 처음이니까 뭐 가볍게 하자는 마인드로 어쨌든 온라인 스터디의 메커니즘은 이렇다. 참여한 인원의 수만큼 스터디 주제를 정한다. -> 인원마다 하나씩 주제를 배정받는다 -> 1시간 스터디 후 발표 그래서 나는 이번에 AOP라는 주제를 받게되었고 정리해보려 한다. AOP(Aspect Oriented Programming) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 공통 관심 기능을 분리해 반복되는 부분을 추출해 핵심 로직에 영향을 미치지 않고 소스의 중복을 줄이는 기법으로 기존 OOP에서 공통 관심 기능을..
개요 스프링 AOP, Filter, Interceptor과 같은 개념을 공부하면서 디스패처 서블릿에 대한 얘기가 나오는데 아직 디스패처 서블릿에 대한 개념이 부족한 것 같아 한번 개념과 동작과정을 정리해보려고 한다. Servlet (Java Servlet) 자바 서블릿이란 자바를 사용해 웹을 등족으로 생성하는 서버측 프로그램 혹은 그 사양을 말한다. 흔히 서블릿이라고 불리며 자바 서블릿은 웹 서버의 성능을 향상시키기위해 사용되는 자바의 클래스 일종이다. 즉, 서블릿은 클라이언트의 요청을 처리, 그 결과를 반환하는 웹 프로그래밍 기술이다. Dispatcher-Servlet dispatch는 "보내다" 라는 뜻을 가지고있고 이러한 단어를 포함해 디스패처 서블릿은 HTTP로 들어오는 모든 요청을 가장 먼저 받..
개요 스프링 프레임워크를 사용하는 개발자라면 IoC, DI, Container, Bean 이 네가지는 반드시 알아가야할 개념이라고 생각한다. 그렇기에 이시간에 완벽하게 정복 해보도록 하자 IoC (Inversion of Control) IoC란 Inversion of Control의 약어로 해석하면 제어의 역전이다. 말 그대로 메서드나 객체의 호출작업을 개발자가 결정하는 것이 아닌 외부에서 결정되는 것이다. 장점 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 짜게한다. 가독성 및 코드중복과 유지보수를 더욱 편하게 할 수 있게 해준다. 일반적인 의존성에 대한 제어권: 개발자가 직접 의존성을 만듦 -> 의존성은 쉽게 말해서 어떠한 객체가 사용해야 할 객체라고 할 수 있고, 이것을 직접 생..
개요 자바 면접 질문들을 찾아보던중 StringBuilder와 StringBuffer의 차이를 설명해보라는 내용이 있었다. 그렇기에 이 주제로 한번 정리를 해보려고 한다. 자바의 문자열 클래스 자바에선 문자열 클래스가 String, StringBuffer, StringBuilder로 3가지가 있다. 그리고 이 3가지 클래스들은 각자의 차이점이 존재한다. String vs StringBuilder, StringBuffer Java에서 String 객체는 한번 값이 할당되면 그 공간은 변하지 않는다. 하지만 StringBuilder, StringBuffer 객체는 한번 값이 할당되더라도 한번 더 다른 값이 할당되면 할당된 공간이 변하는 특성을 가지고 있다. 여기서 할당된 공간이 변하지 않는 특성은 불변성이라..
개요 JVM(Java Virtual Machine)은 자바 프로그램 실행환경을 만들어 주는 소프트웨어이다. 자바 개발자라면 반드시 알아야하는 이 JVM을 한번 부셔보려고 한다. JVM 일단 JVM이란 위에서 말했듯 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 자바 코드를 컴파일하면 .class 바이트 코드로 만들어진다. 이 코드가 JVM 환경에서 실행된다. JVM은 자바 실행 환경 JRE Java Runtime Environment안에 포함되어있다. 현재 사용하는 컴퓨터에 맞는 운영체제에 JRE가 설치되어 있다면 JVM이 있다는 뜻이다. JVM 특징 JVM을 왜 사용하는 것일까? JVM을 사용하면 하나의 바이트코드 즉 .class로 모든 플랫폼에서 동작할 수 있는 이점이 있다. .class 파일은..
개요 이제 진짜로 GSM 1학년 생활은 끝을 맺었고 나는 이제 2학년으로 올라가게 된다. 이 글은 내가 1학년 생활을하면서 후회했던점과 지금 내가 과거에 나를 만나게 된다면 해주고픈 조언을 끄적여볼 것이다. 이제 새로 들어오는 GSM 신입생들은 이 글을 읽고 더욱 나은 학교생활과 미래를 위해 참고해주었으면 좋겠다. 본 글은 학교를 오게된 이유나 학교 일정과 같은 정보들은 상세하게 적지 않았다. 그저 이러한 상황속에서 이러한 일들과 나의 결정이 있었다는 것만 판단해주었으면 한다. 그러면 이제 한번 나의 1학년생활을 회고하며 조언을 해보도록 하겠다. 입학전 입학 전 1월 ~ 3월 사이 나는 학교에 오기전 정보처리기능사 필기를 취득하였고 c언어를 살짝 예습했다. 정보처리기능사 필기를 따고 들어간 것은 정말 잘..
개요 2023년 1월 14일 ~ 1월 15일동안 열린 고등학생들만 참가하는 해커톤 "하이톤"을 끝내고 학교에 와서 이 글을 끄적여본다. 이번 하이톤을 진행하며 많은 것을 느꼈고 성장했다. 육체적으로도 정신적으로도 진화했던 기회였다. 아직 2023년이 된지 거의 3주 정도밖에 지나지 않았지만 이번 하이톤이 나에게 있어서는 2023년에 가장 기억에 남는 경험중 하나라고 확신한다. 대회에 참가하기 전 학교 선배에게서부터 고등학생들만 모여 진행되는 해커톤이 있다고 들었고 신청 폼까지 받게 되었다. 나는 아직 1학년이기도 하고 부족하다고 생각되는점도 많아서 참가를 해야하나 말아야하나 깊이 고민을 하는 시간을 가졌다. 그러다 학교 선배분중 한명께서 충분히 너는 나갈만하다고 괜찮다고 말해주셔 용기를 내 신청폼을 작성..