본문 바로가기

개발

[Spring]AOP(관점지향프로그래밍) 입문 스프링 프레임워크의 주요 특징 중 하나로 언급되는 것이 관점지향프로그래임(AOP)이다. 관점지향이란 무엇인가? 보통 자바로 구현하는 프로그래밍을 객체지향 프로그래밍(OOP)이라고 하는데, 이것과는 무엇이 다른가? 실무를 함에 있어, 모든 로직에 특정 기능을 추가해야 한다고 생각해보자, 이미 구현된 서비스상에 수많은 클래스에 모든 메소드를 추가할 것인가? 또는 하나의 로직을 객채로 만들었다고 한들.. 그 로직을 호출하는 부분을 모든 서비스에 붙여넣어주어야 하는가? 개발자의 중요한 덕목(?)중 하나는 바로 귀찮음이다. 이러한 귀찮은 행위를 반복하지 않기 위해 고민하고 발전해 나가는 것이 개발자일 것이다. 다행히도 스프링 프레임워크는 AOP를 통해 이러한 문제를 해결할 수 있다. 아래는 김영한 팀장님의 인프런.. 더보기
[Jpa]처음 접하는 Jpa 실무에서 jdbc(JdbcTemplate)와 mybatis만 사용하다가 이번 인프런 스프링 강의를 통해 Jpa를 처음 접해보게 되었다. 원래 개발자가 직접 쿼리를 작성하지 않고 객체를 통해 DB와 통신하는 기술임은 알고 있었지만, 직접 구현하여 보니 더 새롭게 느껴졌다. 사전에 설정이 필요하긴 하지만.. 단순히 DB에 접근하는 로직만 먼저 살펴보자면 먼저 도메인으로 생성한 변수들에 대해 @Entity어노테이션 설정과 primary key에 해당하는 값을 @Id로 지정한다 (여기에서 DB상의 id가 자동으로 증가하는 값으로 설정되어 있으므로..IDENTITY로 지정) Repository에서 EntityManager 객체를 import하여 생성자로 주입해준다. 이후 각 메소드들이 가지고 있는 기능을 생성한 .. 더보기
[Spring]form을 통해 값을 받을때 클래스와 변수로.. 지금까지 form 태그를 통해 넘겨준 값을 받을때는 늘 HttpServletRequest 객체를 통해 getParameter 메소드를 통해서 값을 넘겨받았었다. 이번 인프런 강의를 수강하면서 넘겨주는 input 값의 name 속성과 같은 이름의 변수명으로 받을 수 있음을 알게 되었다. 위와 같이 "name"이라는 input을 넘겨주고... 자바 클래스로 form 클래스를 생성해주고 마찬가지로 name 변수를 생성후 getter/setter 설정을 해준다 그 후 컨트롤러단에서 form 클래스를 매개변수로 하고 getter로 값을 받아올 수 있다 결국 스프링 구조에 대한 이해가 아직 부족하기 때문에 생소하게 느껴지는 것이다. 정답은 역시 공부..또 공부.. 더보기
[Spring]컴포넌트스캔 vs 스프링 빈 직접 등록 Controller, Service, Repository를 스프링이 인식할 수 있도록 등록해주는 방법은 두가지가 있다. 하나는 주로 편하게 사용하는 컴포넌트 스캔 원리를 사용하는 것이고 다른 하나는 자바빈으로 생성되도록 설정하여 직접 등록해주는 방법이다 전자는 @Component 어노테이션으로 가능한데, 주로 각 클래스의 용도에 맞게 어노테이션을 명명해주어도 된다. 즉, @Controller, @Service, @Repository 어노테이션은 모두 @Component를 내장하고 있다. 그리고 각 클래스가 해당 어노테이션을 통해 컴포넌트 스캔을 하고 있다면 클래스에서 생성한 객채에 @Autowired를 통해 객체 생성(주입)이 가능해진다. 그리고 자바 코드를 통한 Bean 생성 방법은 @Configura.. 더보기
[Linux]간단 명령어 - which 요즈음은 웹서버와 was를 같이 두기도 하지만, 종종 고객사의 요구에 따라 웹서버를 따로 두기도 한다. 최근 주말에 웹서버가 분리된 서버의 재기동을 하면서, 평소에 하던대로 was만 기동하였더니 역시 제대로 동작하지 않아 애를 먹었다. 서버 구성도를 알고 있었음에도 불구하고 웹서버 구동을 간과한 것이다. 아파치 웹서버를 사용중이었는데, 팀장님을 통해 구동해야 하는 명령어의 위치를 파악할 수 있는 which 명령어를 전해들었다. which 명령어를 통해 아파치서버의 위치를 파악했고 무사히 웹서버를 기동할 수 있었다. 더보기
[Spring]스프링 공부 시작 우아한형제들 개발팀장이신 김영한 팀장님의 스프링 강의(인프런)가 요즘 인기가 많다고 하여 관심있게 보다가 우선 무료로 들을 수 있는 기초 강의부터 시작해보기로 했다. 평소에 늘 사용하는 스프링이지만 내가 과연 스프링에 대해 제대로 알고 있는가? 하면 당연히 대답은 "NO"다 MVC패턴, 컨테이너 등 아주 기본적인 개념과 흐름만으로 개발을 해오고 있기 때문이다. (사실 개발을 하고 있다고 하기에도 민망한 수준이다) 이번 기회에 기초부터 확실히 잡아보고 나아가 실력향상까지 도모해 보고자 한다. 더보기
[React.js]Deploy 간단하게 영화리스트 앱을 완성한 후 githut에 배포해보았다. 먼저 github에 배포할 수 있도록 해주는 API를 설치한다. 명령어 : npm i gh-pages 다만 이 경우에 원격저장소와 연결을 해주어야 함. (git remote -v 로 연결된 원격저장소 확인 가능) 이후 package.json 파일에서 "homepage": "https://{github아이디}.github.io/{원격저장소명}" 를 추가한 후 아래의 명렁어도 scripts 내에 추가해 준다. 이후 npm run deploy 로 빌드와 동시에 배포가 가능! 더보기
[JavaScript]Array.map() 자바스크립트의 배열을 요소로 뿌려줄 때 map을 사용했다. map을 사용하면 첫번째 인자를 통해 배열 내의 요소를 하나씩 꺼내올 수 있는데 매개변수를 통해 자유롭게 가공이 가능하다. * 주의할 점은 맵으로 구성하는 요소(HTML태그)에는 반드시 key 값이 필요하다는 점이다. 더보기