분류 전체보기
-
동적 웹 페이지를 구현하기 위한 JSP와 ServletWeb 2021. 10. 10. 10:50
👉 서론 학부생 때 수강했던 과목은 많았지만 실제 현업에서의 프로그래밍에 대해 깊이있게 다뤘던 수업은 많지 않았다. 3학년 1학기 때 Model1 구조 기반으로 실습했었는데 그 때는 웹개발이란 원래 그런건 줄 알고 모든 프로젝트를 JSP를 사용해서 jsp 파일 안에 비즈니스 로직을 때려넣었었다... 심지어 4학년 2학기에 스프링을 처음 써봤는데 컨트롤러가 뭔지도 모르고 RequestMapping되는 방식을 몰라서 한참을 헤맸던 기억이 난다 물론 이번년도에 공부했던 것 처럼 JSP, 서블릿, MVC 패턴, Spring, Spring Boot에 대해 왜 이런 기술이 나왔는지 핵심 철학은 무엇인지 차근차근 배웠다면 더 좋았겠지만 오히려 '아 이 땐 이렇게 했었는데 잘못된 방식이었구나'를 느낄 수..
-
POJO(Plain Old Java Object)와 JavaBeanProgramming/Java 2021. 10. 8. 19:00
POJO(Plain Old Java Object) 특정 프레임워크에 종속되지 않은 순수한 자바 객체 속성, 메서드에 대한 어떠한 네이밍 규칙도 없다. Java EE와 같은 무거운 프레임워크들이 서비스 시장을 점유했을 때, 해당 프레임워크에 종속된 (무거운) 객체를 사용해야 했던 것에 반발해서 나오게 된 개념이다. Spring Framework는 POJO를 기본 개념으로 채택했다. public class EmployeePojo { public String firstName; public String lastName; private LocalDate startDate; public EmployeePojo(String firstName, String lastName, LocalDate startDate) { ..
-
Java에서 Thread를 사용하는 방법Programming/Java 2021. 10. 4. 01:19
애플리케이션의 구현이 복잡해지면서 CS 기초 특히 트랜잭션, 쓰레드를 제대로 이해해야 겠다고 느꼈다. 그래서 쓰레드의 정의, 자바에서의 쓰레드 사용법, Thread-Safe 구현 방식, Thread-Safe Collections 같이 자바에서의 쓰레드 활용에 대해 리스트로 정리하고자 한다. Thread-safe에 대한 내용이 길어질 것 같아서 이 글에서는 Java에서의 Thread 선언까지만 다룰것이다. 프로세스와 쓰레드 프로세스는 실행 중인 프로그램의 단위를 말한다. 현재 OS의 특성 상 동영상을 보면서 동시에 문서 작업을 하는 것과 같은 다중 동시 작업을 지원해야 할 때 여러 프로세스가 메모리에 동시에 적재되고 번갈아가며 실행된다. 프로세스 또한 여러 작업 단위를 동시에 실행해야 할 수 있다. 프로세..
-
Spring AOP(Aspect-Oriented Programming)의 이해Spring 2021. 10. 3. 19:11
Aspect-Oriented Programming Aspect-oriented Programming(AOP) complements Object-oriented Programming(OOP) by providing another way of thinking about program structure 관점 지향 프로그래밍은 프로그램 구조에 대한 다른 사고방식을 제공해서 객체 지향 프로그래밍을 보완한다 👉 Aspect Oriented Programming with Spring Spring Framework Docs의 AOP를 설명하는 첫 문단이다 절차 지향 프로그래밍과 객체 지향 프로그래밍의 관계처럼 OOP와 AOP를 분리하지 말라는 뜻이기도 하다 OOP의 모듈화 단위가 Class라면 AOP의 모듈화 단위는 ..
-
@(Annotation)을 이용한 Spring Container ConfigurationSpring 2021. 10. 2. 20:39
이 글은 아래의 공식 문서를 참조해서 작성했습니다 https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-java Core Technologies In the preceding scenario, using @Autowired works well and provides the desired modularity, but determining exactly where the autowired bean definitions are declared is still somewhat ambiguous. For example, as a developer looking at ServiceConfig, how do docs.sp..
-
Filter와 Interceptor의 차이Spring 2021. 9. 30. 00:01
Filter 필터란 리소스에 대한 요청(서블릿/정적 콘텐츠)이나 리소스의 응답 또는 둘 다에 대해 필터링 작업을 수행하는 개체를 말한다. // javax.servlet Interface Filter { void destroy(); void doFilter(ServletRequest request, ServletResponse response, FilterChain chain); void init(FilterConfig filterConfig); } doFilter 메서드에서 필터링 작업을 수행한다. 모든 필터는 초기화 매개변수를 얻을 수 있는 FilterConfig 객체에 대한 액세스 권한을 가지고 있으며 필터링 작업에 필요한 리소스를 로드하는 데 사용할 수 있는 ServletContext에 대한 참조를..
-
[Programmers]괄호 회전하기(Python)/StackProblem Solving/Programmers 2021. 9. 26. 22:43
https://programmers.co.kr/learn/courses/30/lessons/76502# 코딩테스트 연습 - 괄호 회전하기 programmers.co.kr def parenthesesString(p): s=[] v={'[':0, '{':1, '(':2, ']':0, '}':1, ')':2} for k in p: if k in ['[', '{', '(']: s.append(v[k]) else: if len(s)!=0 and s[-1]==v[k]: s.pop() else: return 0 if len(s)!=0: return 0 return 1 def solution(s): answer = 0 for i in range(len(s)): answer+=parenthesesString(s[i:]+..
-
Color를 이용해서 Self-Balancing을 구현하는 Red-Black TreeData Structure 2021. 9. 24. 01:45
자료구조와 알고리즘을 공부한 사람이라면 레드블랙트리에 대해 한번쯤은 들어봤을 것 이다 포인터가 중간보스라면 레드블랙트리가 최종보스라고 생각하는데 .. 3부작 정도로 나눠서 레드블랙트리를 정리하려고 한다 레드블랙트리가 무엇인지에 대해 알기 전에, 레드블랙트리가 어디에서 사용되는지에 대해 두 가지를 소개하자면 Java Collection API의 Map Interface 구현체인 HashMap의 Seperate Chaining 구현에서 사용한다. 👉 Key값의 Collision이 발생할 경우 같은 Hash값을 가지는 원소들을 Collection으로 관리하는데, 이 때 원소의 개수가 많아지면 Red-Black 트리를 이용해서 관리하여 연산 시간을 O(log)으로 관리한다 Linux의 기본 스케줄러인 CFS 스..