본문 바로가기

웹프로그래밍

리눅스, 도커, AWS 리눅스(Linux) 웹 서비스는 어딘가 데이터센터에 있는 물리적 서버에 서버용 운영체제를 돌리면서, 그 위에 실행해서 운용합니다. 서버용 운영 체제로, 상용 고가 유닉스 시스템을 선호하는 곳도 있지만, 언젠가부터 리눅스가 많이 쓰이지요. 이제는 심지어, 금융권인 카카오 뱅크에서도 x86에 리눅스를 쓰는 게 화제가 되고 있으니, 사실상 다 써도 된다고 보셔도 될 것 같습니다. 저도 거의 리눅스만 쓰는 업계 출신이라서 그런지 “리눅스 쓰는 게 뭐가 어때서?”라는 생각인데, 금융권 분들은 파격이라고 여기나 봅니다. 아무튼, 서버 운영체제로 리눅스를 쓰면 되는데, 이 리눅스에는 배포판이라는 게 여러 종류 있습니다. 다 리눅스인데, 단체별로 어떻게 소프트웨어 패키지를 묶어서 배포하느냐가 다르고 아주 조끔씩 다르기.. 더보기
Spring PSA Portable Service Abstraction 환경의 변화와 관계없이 일관된 방식의 기술로의 접근 환경을 제공하려는 추상화 -> 스프링 웹 MVC @Transactional를 붙이면 Transaction처리가 됨 더보기
SPRING AOP 비즈니스 로직이 아닌 보안, 트랜잭션, 성능 검사(?) 다른 곳으로 빼서 한번에 관리 코드가 없지만 코드가 있는 것 처럼 실행된다. 방법 컴파일 A.java -> (AOP) -> A.class (AspectJ 로 컴파일로) 바이트코드 조작 A.java -> A.class ---(AOP) 메모리로 올릴 때 프록시 패턴(스프링 AOP) 디자인 패턴을 사용해서 AOP와 같은 효과를 내는 것 create annotation을 해서 aop 구현 @aspect 도 만들고 @around를 통해 공통코드가 들어감 or @after @before 등등.... 더보기
의존성 주입 Dependency Injection 생성자를 통해 객체를 만드는 대신에 @Autowired를 통해 빈으로 등록된 객체를 가져올 수 있다. 생성자 필드에서 Autowired로 받기 Setter에 붙이기 private final PetRepository pets; public OwnerController(OwnerRepository clinicService, PetRepository pets) { this.owners = clinicService; this.pets = pets; } final을 붙일 경우 다시 변수값이 바뀌지 않게 하기 위해 초기화 해주어야 한다. 더보기
Spring bean이란 ? Spring에서 POJO를 Beans라고 부른다. 보통 설정 메타 데이터(XML 파일)에 의해 생성된다. applicationcontext 가 알고있는 객체 bean cf) Applicationcontext -> 오브젝트 생성, 관계설정, 만들어지는 방식, 자동생성, 후처리등 여라가지 일을 하고 BeanFactory의 상속을 받고 있다. ApplicationContext는 Pre-loading을 하여 즉시 인스턴스를 만들고 BeanFactory는 lazy-loading을 하여 요청 받는 시점에서 인스턴스를 만든다. 등록하는 방법 Component Scanning @Repository @Service @Controller @Configuration @Component build 하면서 annotation이.. 더보기
Spring IOC Inversion of Control(제어권의 역전) 일반적인 의존성에 대한 제어권을 자기 자신이 가지고 있었다. class OwnerController{ private OwnerRepository repository = new OwnerRepository(); } 그런데 instance를 여러군데서 사용 한다거나 일일히 생성해서 사용하는데 불편함을 느껴 서 instance의 생성을 컨테이너에 맡겨서 일관적으로 진행한 후에 필요할 때만 @autowired, @inject 등으로 instance를 컨테이너로 부터 주입받아서 사용 instance의 생성 및 관리 주체자가 '사용자-나' -> 컨테이너 로 변했기 때문에 Inversion of Control, 제어의 역전이 되는 것이고 그 방법론으로 Depend.. 더보기
Thymeleaf란? "타임 리프"라고 읽는다. 텍스트, HTML, XML, Javascript, CSS 를 생성할 수 있는 View Template Engine이다. Spring Boot에서 사용이 권장되고 있다. th:xx형식으로 속성을 html태그에 추가하여 값이나 처리 등을 페이지에 심을 수 있다. 타임리프가 제일 많이 쓰인다고 한다.... 변수식 : ${} 메시지식 : #{} 링크식:@{} 객체의 변수식 : *{} cf) th:object="{object}" 로 설정 되어 object안에 있는 변수들 사용 더보기
HTML <form> 태그의 이해 폼은 입력된 데이터를 한 번에 서버로 전송합니다. 전송한 데이터는 웹서버가 처리하고 결과에 따른 또 다른 웹 페이지를 보여줍니다. 폼 태그 속성에는 action : 폼을 전송할 서버 쪽 스크립트 파일을 지정합니다. name : 폼을 식별하기 위한 이름을 지정합니다. accect-charset : 폼 전송에 사용할 문자 인코딩을 지정합니다. target : action에서 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에 열도록 지정합니다. 폼을 구성하는 다양한 엘리먼트 1. 폼 엘리먼트 그룹 , 태그 태그는 폼 태그 안에 관련 있는 폼 엘리먼트들을 그룹화할 때 사용 그리고 태그 하위에 태그를 사용하여 그룹화한 폼 엘리먼트들을 목적에 맞게 이름을 지정 예시) See the Pen form ex1 by h.. 더보기