개발62 [Shell Script] 출력 내용의 맨 뒤에 붙는 '2>&1' 의 뜻 Linux 환경에서 서버를 관리 및 운영하다 보면, 쉘 스크립트를 작성할 일이 매우 많습니다 (.sh 파일). 여기서는 수많은 문법을 통해 다양한 기능을 지원하는데요. 예전에 제가 작성한 쉘 스크립트 코드를 보면 이런 내용이 있습니다. nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 & repository 디렉토리 내의 jar 파일을 실행하고, 그 결과를 nohup.out이라는 파일에 기록합니다. 여기서 2>&1이 무슨 의미를 가질까요? Linux에서는 실행되는 프로그램에게 '파일 디스크립터' 라는 것을 할당해 줍니다. 기본적으로 할당되는 파일 디스크립터는 총 3개로, 아래와 같습니다. 파일 디스크립터 정의 0 표준 입력 (standard input) 1 표준 출력 (stan.. 2022. 3. 28. [Spring] 스프링의 DB 접근 기술 간단 소개 개요 2003년에 스프링이 최초로 공개된 이래로, 스프링은 DB에 접근하는 방법을 꾸준히 발전시켜 왔습니다. 객체지향 관점에서 개발하는 스프링과, 관계를 중심으로 데이터를 저장하는 RDBMS는 접근 방식부터 차이가 있기 때문에, 이 둘을 함께 이용하여 개발하기란 쉽지 않습니다. 이 글에서는 Java와 스프링의 DB 접근 기술이 어떻게 발전되어 왔는지 순서대로 나열하여 소개해 보고자 합니다. (iBatis/MyBatis는 이 글에서는 다루지 않았습니다.) 순수 JDBC Spring JdbcTemplate JPA 스프링 데이터 JPA 1. 순수 JDBC JDBC는 Java Database Connectivity의 약자로, Java 환경에서 DB에 접근하기 위한 표준 API입니다. JDBC는 Spring 프레.. 2022. 3. 16. [Spring] 의존성 주입의 세 가지 방법 @Deprecated 이 글은 오래되었으며, 제가 이후 더 공부하고 나서 새로 작성한 글이 있습니다. 이 글보다 더 자세하고 깊이 있게 작성되어 있으니 새로 작성한 글을 참고해 주세요! (2022. 07. 11) 앞서 스프링의 의존성 주입에 대한 글을 몇 가지 쓴 바 있습니다. (IoC와 DI, 테스트 코드와 의존성 주입, Bean 의존 관계 설정) 이러한 의존성을 주입하는 방법이 대표적으로 세 가지가 있는데요. 각 세 가지 방법에 대해 다루어 보고자 합니다. 1. 필드 주입 2. setter 주입 3. 생성자 주입 1. 필드 주입 필드 주입은 아래와 같은 방식으로 이루어집니다. public class PurchaseController { @Autowired private PurchaseService p.. 2022. 3. 10. [Spring] Bean 등록 및 의존 관계 설정하기 개요 Spring에서는 객체를 bean (빈)이라는 이름으로 부릅니다. 이러한 bean은 Spring이 시작할 때 Spring container에 등록되어, Spring에 의해 관리되고 쓰여집니다. 앞서 스프링의 MVC 구조에 의해 언급했었는데요. View에 원하는 내용을 그리기 위해서는 Controller를 작성해야 합니다. Controller는 Service에 작성된 메소드를 호출하여, 요구되는 역할을 수행합니다. Service는 Repository에 접근하여, 데이터를 읽어 오거나, 저장 및 수정합니다. 만약 특정 사이트의 상품 주문 기능이 있다면, Controller는 View를 이용해 화면을 나타내는 역할을 합니다. Controller는 Service를 이용해서 실제 주문을 수행하고, Servi.. 2022. 3. 9. [Spring] 스프링에서의 테스트 코드와 의존성 주입 의존성 주입 (Dependency Injection; DI)에 대해 글을 작성한 바 있습니다. (글은 여기를 참고) 실제로 의존성 주입이 언제 발생하는지 예시를 하나 들어서 설명해 보고자 합니다. Service 및 테스트 코드 작성 아래와 같은 Service 클라스가 있다고 합시다. MemberService.java public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원 가입 public Long join(Member member) { //같은 이름이 있는 중복 회원 X validateDuplicatedMember(member); //중복 회원 검증 mem.. 2022. 3. 5. [Spring] 스프링 웹 개발의 기초 개요 지금까지 Spring Boot를 이용해 간단한 서비스를 만드는 과정을 체험해 보았고, 어렴풋이 Spring 개발은 어떻게 진행되고, 어디에 어떤 클라스를 작성하는지 알게 되었습니다. Spring을 어느 정도 체감하였으니, 이제 내부 구조, 동작 방식 등 이론적인 내용을 알아볼 때라고 생각됩니다. Spring으로 웹 서비스 개발을 할 때, 컨텐츠를 보여 주는 방법은 크게 세 가지가 있습니다. 정적 컨텐츠 MVC API 이 세 방식에 대해 각각 간단한 소개를 해 보려고 합니다. 더 자세한 내용인 추후 공부하며 알아갈 예정입니다. 정적 컨텐츠 정적 컨텐츠라고 함은, 변화가 없는 컨텐츠를 뜻합니다. 사진, 문서 등 있는 그대로를 보여주는 것을 정적 컨텐츠를 보여준다고 하며, 어떤 사용자가 와도 같은 내용을.. 2022. 3. 3. 이전 1 2 3 4 5 6 7 8 ··· 11 다음