목록개발 (17)
tlov
#개발 기존에는 MVC 패턴이 그저 스프링 개발 시에 웹의 기능을 분리해주기 위해 사용하는 '특정한' 디자인 패턴인 줄 알았습니다. 웹 개발 시에 사용하는 디자인 패턴 정도로 생각이 갇혀있던 겁니다. 근데, 우테코 6기 '코딩해듀오' 팀 분들의 페어 프로그래밍 행사에 참여했다가 MVC(Model-View-Controller) 패턴에 대한 생각이 확장되었습니다. 그래서 다시 한번 MVC를 정리해보고자 이 글을 작성합니다. MDN의 정의MVC는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다. 소프트웨어의 비즈니스 로직, 화면을 구분하는데 중점을 두며, 이러한 '관심사 분리'로 더 나은 업무의 분리와 향상된 관리를 제공합니다. 즉, 어플리케이션을 모델, 뷰, ..
#개발/자바/모던자바인액션 동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있습니다. 동작 파라미터란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록이다. 예를 들어, 나중에 실행될 메서드의 인수로 코드 블록을 전달할 수 있습니다. 결과적으로 코드 블록에 따라 메서드의 동작이 파라미터화 됩니다. 이를 이해하기 위해 책에 있는 하나의 예제를 통해 알아보겠습니다. 기존의 농장 재고목록 어플리케이션에 리스트에서 녹색 사과만 필터링 하는 기능을 추가한다고 가정합시다.enum Color { RED, GREEN }public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple..
Bean스프링 공식 문서에 따르면, 어플리케이션의 백본을 형성하고 Spring IoC 컨테이너에 의해 관리되는 객체들을 Bean이라고 부릅니다. 즉, Spring IoC 컨테이너에 의해 관리되고 인스턴스화되고 조립되는 객체를 의미합니다. 단순하게는 현재 어플리케이션 속 수많은 객체들 중 하나가 Bean이라고 생각하면 됩니다. Spring IoC Container스프링 IoC 컨테이너는 제어의 역전(Inversion of Control, IoC) 개념을 가지며 이는 Bean을 인스턴스화 하고, 구성하며 조립(assemble)하는 역할을 합니다. 그 중에서도 IoC의 특수한 형태(Specialized form of IoC)인 의존성 주입(Dependency Injection, ID)은 생성자, 클래스 속성 ..
네이버 쇼핑이나 지메일을 들어가 보면 이러한 페이지 목록들을 확인할 수 있다. 이러한 기능을 구현하는 기법을 페이징이라고 한다. 정확하게 말하면 전체 데이터에서 사용자가 요청한 일부 데이터를 원하는 정렬 방식으로 보여주는 것이다. 페이징이 없으면 우리는 대용량의 데이터를 모두 받아서 하나의 웹 페이지에 다 표현해야 한다. 네이버 쇼핑에서 모니터를 검색하면 약 500만 개의 모니터 구매처가 나오는데 이를 하나의 웹 페이지 모두 불러온다면 웹 페이지를 불러오는 시간도 늘어날뿐더러 그만큼 네트워크 트래픽도 증가한다. 또한, 많은 양의 모니터를 보여주다 보니 스크롤 길이도 상당할 것이다. 그렇기에 우리는 페이징 기법으로 웹 페이지에 전체 데이터 중 일부만을 가져와 사용자에게 보여주는 것이다. 기본적으로 페이징 ..
최근에 약 5주(8/16 ~ 9/13) 동안 jscode 모의면접으로 학습하는 운영체제 스터디에 참여했다. 취준을 본격적으로 시작하기에 앞서 3학년때 배웠던 운영체제를 제대로 한번 학습해 놓고 취준을 시작하면 추후에 면접을 준비할 때 좀 수월할 거 같아서 '명품 운영체제' 책을 구입했었는데, 막상 혼자 공부하려고 하니 당장 운영체제에 대한 중요도가 낮다고 생각되어 생각보다 진도가 안 나갔다. 그런 와중에 친구한테서 이런 스터디가 있다는 얘기를 들었고 면접도 한번 경험해보고 운영체제도 공부할 좋은 기회라 생각해서 신청하게 되었다. 활동 내용스터디는 총 5주동안 매주마다 모의 면접 예상 질문 리스트를 확인하고 금요일까지 해당 내용 범위를 공부한 뒤 금요일 오후 8시에 2시간씩 팀원들과 모의 면접을 진행하였..
JWT 토큰을 이용해 로그인 기능을 구현하기 앞서 구글링을 통하여 해당 방법을 이해하기 위해 글을 써봅니다. 인증과 인가인증(Authentication)사용자가 누구인지 확인하는 과정. (ex. 로그인) 인가(Authorization)사용자에 대해 자원 접근 권한같은 것을 허락하는 것. (ex. 카페 등급별 게시물) HTTPHTTP는 비연결성 및 무상태성이라는 특징을 가지는 프로토콜이다. 즉, 요청을 처리하고 난 후에는 요청을 한 클라이언트의 어떠한 정보도 남기지 않는다. 이러한 특징 덕분에 서버는 많은 클라이언트와의 연결을 유지하지 않아 서버의 자원도 아끼고 부담도 적다. 그러나, 연결을 유지하지 않기 때문에 방금 전 요청한 클라이언트가 다시 요청을 보내도 이전에 요청한 클라이언트인지 구분하지 못한다..
이화여자대학교 (반효경, 2014) - 운영체제 Computer를 Host라고도 함. 여기에 붙어 host에서 처리된 결과를 내놓거나 디스크를 읽는 등의 작업을 한다. 해당 i/o device의 작업 수행을 위해서 device controller 라는 것이 붙어있고 이 controller는 작업을 처리하면서 생긴 결과를 local buffer에 저장한다. 그리고, CPU에게 완료된 작업을 알려주기 위해 인터럽트를 건다. CPU는 메모리에 올라와 있는 기계어 명령 4바이트를 하나씩 계속 수행한다. 메모리 어디 있는 기계어를 읽냐면 CPU 내의 레지스터에서 Program Counter라고 하는 것이 있는데 얘는 실행할 명령어의 메모리 위치를 가지고 있음. CPU가 해당 명령어를 수행하면 PC는 다음 명령어..
이화여자대학교 (반효경, 2014) - 운영체제 이번 챕터는 컴퓨터 시스템에서 하드웨어가 어떻게 동작하고 프로그램들이 하드웨어 위에서 어떻게 돌아가는지 설명하는 것이 목표이다. 컴퓨터 시스템 구조- Computer [CPU, Memory]- I/O Device [Disk, Keyboard, Printer, Monitor] 메모리는 CPU의 작업 공간이다. CPU는 매 쿨럭마다 메모리에서 기계어를 하나씩 읽어 실행한다. I/O 디바이스들은 별개의 디바이스들이다. 키보드, 마우스 같은 것은 두드리면 전기 신호가 들어가므로 input device, 프린터 같은 것은 결과를 출력하므로 output device이다. Disk는 input/output device 역할을 둘 다 수행한다. i/o device는 각..