객체 지향 프로그래밍 (OOP: object-oriented programming)우리가 살고 있는 실제 세계와 비슷하게 소프트웨어를 작성해 보자는 것. 가령... 텔레비전, 리모콘은 하나의 객체(object)라고 할 수 있다. 그리고 이들은 메시지(message)를 통해 상호작용한다. 소프트에어도 이렇게 만들어 보자는 것! 객체상태와 동작을 가지고 있다. 상태(state): 객체의 속성이다.동작(behavior): 객체가 취할 수 있는 동작(기능)이 상태와 동작은 소프트웨어에서는 필드, 메서드로 표현할 수 있다. 필드(field): 객체 안의 변수. 객체의 상태를 저장한다.메소드(method): 객체 안의 함수. 특정한 작업을 수행한다. 그렇다면 이건 뭘까? 절차 지향 프로그래밍 (Procedural..
원하는 문구를 입력해 주세요. 내용으로 들어갑니다.
1. Docker의 세 가지 데이터 유형 1.1 애플리케이션 코드&환경 (Application Code&Environment)내용개발자가 작성한 소스 코드package.json의 종속성(dependencies)실행 환경 설정저장 방식위치: 이미지(Image)접근 권한: 읽기 전용(Read-Only)이미지 빌드 시 코드가 복사됨한 번 빌드되면 변경 불가능변경하려면 이미지를 다시 빌드해야 함왜 읽기 전용인가?실행 중인 애플리케이션이 자신의 소스 코드를 편집해서는 안 되기 때문이다. 1.2 임시 애플리케이션 데이터 (Temporary App Data)내용애플리케이션 실행 중 생성되는 데이터사용자가 입력폼에 입력한 데이터메모리의 변수에 저장되는 데이터컨테이너가 종료되면 사라져도 되는 데이터저장 방식위치: 컨테..
1. 컨테이너와 파일 복사하기 (docker cp) 1.1 docker cp 명령어란?실행 중인 컨테이너와 로컬 호스트 간에 파일이나 폴더를 복사할 수 있는 명령어이다. 컨테이너를 재시작하거나, 이미지를 다시 빌드하지 않고도 파일을 주고받을 수 있다. 1.2 로컬->컨테이너로 복사하기기본 문법: docker cp [소스 경로] [컨테이너명]:[목적지 경로]예제:# dummy 폴더의 모든 내용을 컨테이너의 test 폴더로 복사docker cp dummy/. goalsapp:/test# 특정 파일만 복사docker cp dummy/test.txt goalsapp:/test폴더가 컨테이너 내부에 존재하지 않으면, 자동으로 생성됨. 1.3 컨테이너->로컬 복사 기본 문법: docker cp [컨테이너명]:[소스..
자바 프로그램의 일반적인 구조 public class Examplepublic class Example { // 이 영역에 원하는 내용을 구현한다.}public: 이 클래스는 누구든 사용 가능하다.class: 이것은 클래스이다!Example: 클래스의 이름 public static void main(String[] args) 메소드 main()이 시작되는 문장이다.메소드(method): 특정 기능을 수행하는 코드들의 집합. 클래스 안에 선언된 함수(function)모든 클래스가 이런 메소드를 가지는 것은 아니지만, 하나의 자바 프로그램에는 이 메소드를 지닌 클래스가 반드시 하나는 있어야 한다.이 main() 메소드에서 자바 프로그램의 실행이 시작되고, main()의 마지막 문장을 실행한 후 종료된다. ..
열심히 개발만 해 왔지, 정작 'Java'라는 언어에 대해서 제대로 알고 있는지? 좀 더 알고 써야 할 것 같다는 생각이 들어 다시 책을 펼쳐 본다! 자바(Java) 언어 보통 프로그래밍 언어로 만들어진 프로그램은, 특정 CPU의 기계어로 변환된다. CPU마다 기계어가 서로 다르므로 다른 컴퓨터에서는 실행되지 않는다. 이것이 플랫폼 종속이다. 하지만? 자바는 플랫폼에 종속되지 않는다.왜냐하면, 자바는 VC(Virtual Machine)를 사용하기 때문이다. 자바 컴파일러는 소스 프로그램을 가상 컴퓨터의 기계어로 번역하고, 가상 컴퓨터의 기계어는 자바 가상 기계(JVM)에 의해 실행된다. 자바 개발 도구 일반적으로 자바 컴파일러와 JVM, 디버깅 도구, 각종 유틸리티 등의 도구들을 JDK(Java ..
스프링으로 개발하다 보면 모든 메소드에 로그를 찍거나, 실행 시간을 측정하거나, 권한을 체크하는 일이 많다.매번 똑같은 코드를 복사-붙여넣기 하는 대신, AOP를 사용하면 한 번만 작성해도 모든 곳에 적용할 수 있다. 1. AOP가 필요한 이유 1.1 반복되는 코드들public class UserService { public void createUser(String name) { log.info("createUser 시작"); // 매번 반복 // 실제 로직 User user = new User(name); userRepository.save(user); log.info("createUser 끝"); // 매번..