본문 바로가기

전체 글213

[Spring] 계층 이해하기 3tier architecture는 크게 API layer(Presentation layer) Business layer(Domain layer) Data access layer 로 나뉩니다. 1. API Layer API layer는 web browser나 mobile 기기 등의 client로부터 들어오는 요청을 직접적으로 전달 받게 되는 계층을 의미합니다. (Client와 Application 사이의 가교 역할을 해줍니다) 그리고 Business logic layer와 상호작용하게 됩니다. * API는 두 software가 통신하게 하는 메커니즘을 의미합니다. * Back-end에서 application이라고 함은, 예를들어 모바일 기기에서 눈을 볼 수 있는 커피의 이름, 이미지 등의 정보 자체를 제.. 2022. 6. 23.
[Eclipse] Maven Error-Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer 해결하기 아래 링크로 들어가면 여러 방법이 나와있는데, 저는 pom.xml에 아래 코드 추가하여 해결이 되었습니다. 혹시 동일한 에러가 나타나는 경우에 참고하시면 될 것 같습니다. org.apache.maven.plugins maven-war-plugin 3.3.1 project name https://www.onhandtrick.com/could-not-initialize-class-org-apache-maven-plugin-war-util-webappstructureserializer-pom-xml/ Maven Error-Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer - Onhandtrick Could .. 2022. 6. 21.
java.net.BindException: Address already in use Mac 해결방법 테스트 중에 서비스를 실행하려는 port가 이미 사용 중이어서 생기는 에러라서 해당 port를 종료시켜주면 됩니다. terminal에서 $ lsof -i :포트번호 를 입력해서 나오는 PID번호를 확인합니다. 그런 다음에 $ kill -9 PID번호 로 강제 종료 시켜주면 됩니다! 2022. 6. 19.
[Spring] AOP 사용하기 AOP란, 사용 이유 AOP(Aspect Oriented Programming)은 layer에 관계없이 적용되어야 하는 기능을 다루기 위한 방법입니다. Web layer, business layer, data layer 등 특정 layer에만 국한되는 것이 아닌 기능들(영어로는 cross-cutting concerns이라고 합니다.)을 다루게 됩니다. 그런 기능들에는 logging, security, transaction등이 있습니다. 각 객체에 관심을 두는 OOP는 전체적으로 적용되는 기능을 포괄하는데는 약했고, AOP로 그런 단점을 보완할 수 있는 것입니다. AOP를 사용하면 layer별 method 실행 전, 후에 특정한 행위가 일어날 수 있도록 할 수 있습니다(영어로는 intercept라고 합니다.. 2022. 6. 18.
[Spring] IOC Container vs Application Container vs Bean Factory 간단 정리 안녕하세요 이번에는 Spring container의 종류에 대해서 간략하게 알아보겠습니다. IOC Container 란? IOC Container는 여러 종류의 container를 포괄하여 지칭하는 generic한 용어입니다. 그렇기 때문에 Application Container도 IOC Container이고, Bean Factory도 IOC Container입니다. Application Container vs Bean Factory Application Container와 Bean Factory, 이 둘의 차이는 무엇일까요? 간단히 차이점을 말하자면 Application Container가 더 많은 기능을 제공한다고 얘기할 수 있겠습니다. Bean Factory++라고도 불리는 Application C.. 2022. 6. 17.
[Spring] Spring 시작하기 Spring 살펴보기 한 번 Spring initalizer로 만든 Spring 파일은 일반 java 파일과 어떻게 다른지 간단하게 살펴보겠습니다. Spring initializer로 파일을 만들면 여러 파일들이 한 directory에 생성이 됩니다. 그 중에 main() method가 담긴 파일이 있는데, 일반 java 파일과는 다르게 그 java file의 class에는 @SpringBootApplication annotation이 붙어있습니다! 그리고 main() method안에는 SpringApplication.run()이 실행되고 있네요! 1 2 3 4 5 6 7 8 9 10 //기본적으로 생성되는 코드! @SpringBootApplication public class PracticeApplic.. 2022. 6. 17.
[Spring] Spring과 Spring boot 간단하게 알아보기 Spring Framework와 Spring boot란? Java Spring이라고 불리는 Spring Framework는 Java 기반의 웹 애플리케이션을 개발하는데 필요한 Framework입니다. Spring FW 이전 초창기 웹 애플리케이션 개발 시에 JSP(Java Server Page)를 사용했습니다. JSP는 프론트 사이드와 백 엔드 사이드의 코드가 한데 섞여 있어 유지보수가 굉장히 어려웠다고 합니다. 또 다른 방법으로는 Servlet이 있습니다. Java 코드와 client 코드가 분리되기는 했지만 구현해주어야 하는 코드의 양이 적지 않았습니다. 이러한 이전 방식의 단점들이 Spring FW가 등장하면서 많이 보완되었습니다. Client의 요청에 담긴 데이터를 꺼내오는 것, 캐릭터셋 지정 등.. 2022. 6. 16.
Join 알아보기 관련이 있는 column(field)을 기준으로 여러 테이블의 정보를 결합하고 싶다면 Join query를 사용할 수 있습니다. Join에는 그림에 나오는 것처럼 다양한 종류가 있습니다. 보통 Left join이나 Inner join이 자주 사용된다고 합니다. Left Join Left Join은 한 table에 담긴 모든 정보 + join 하는 다른 테이블의 정보를 열람할 수 있습니다. 예를 들어서, 아래와 같이 이름이 담긴 customer 라는 table과 이름과 가입 날짜가 적힌 dateOfJoin table이 있습니다. dateOfJoin table은 customer table에 기록된 손님들 중 dateOfJoin이 명시된 손님들의 이름과 가입 날짜를 데이터로 가지고 있습니다. 이런 경우에 c.. 2022. 6. 13.
Primary key & Foreign key 설정하기 RDB에서는 primary key와 foreign key라는 것을 사용합니다. 1. Primary key (pk) 프라이머리 키로 설정된 column의 데이터들은 중복되지 않는 값을 가집니다. 그렇기 때문에 프라이머리 키를 사용하면 모든 행에 고유한 id를 부여할 수 있게 됩니다. id 처럼 사용되기 때문에 id라고 주로 이름 붙이고는 합니다. primary key를 생성하는 방법은 table을 생성할 때 미리 만들 수도 있고, 기존에 생성된 table에 추가할 수도 있습니다. 1) table 생성 시에 같이 생성하기 CREATE TABLE users ( ID int NOT NULL, //pk될 column의 data는 null값을 가지면 안됩니다. LastName varchar(255) NOT NUL.. 2022. 6. 12.
반응형