코딩 공부204 [Java] AssertJ AssertJ AssertJ는 풍부한 assertions 세트와 유용한 오류 메시지를 제공하고 테스트 코드 가독성을 향상시키며, IDE내에서 매우 쉽게 사용할 수 있도록 설계된 Java 라이브러리 입니다. 지원되는 자바 버전 AssertJ Core 3.x 에는 Java 8 이상이 필요 AssertJ Core 2.x 에는 Java 7 이상이 필요 Maven org.assertj assertj-core 3.xx // 버전 정보 입력 test Gradle testImplementation("org.assertj:assertj-core:3.xx.xx") // 버전 정보 입력 - assertThat 값을 검증하고 예상 결과와 비교합니다. 즉, 특정 값을 테스트하고, 예상 값과 일치하는지 여부를 판단합니다. 만약 .. 2023. 5. 18. Django Django Python 프로그래밍 언어로 작성되는 웹 애플리케이션의 개발 속도를 가속화할 수 있는 무료 오픈 소스 프레임워크입니다. 장고를 통해 제작된 대표적인 웹사이트로는 인스타그램 NASA Spotify 요기요 등이 존재합니다. 특징 1. MTV 장고는 MVC (Model-View-Controller)을 기반으로 한 프레임 워크이다. 하지만 장고에서는 View를 Template, Controller를 View라고 부른다. 장고에서 View는 데이터를 가져오고 변형하는 컴포넌트인 반면에 Template은 데이터를 사용자에게 보여주는 컴포넌트입니다. 그래서 장고를 흔히 MVT (Model-View-Template) 프레임워크라고 부른다. 2. 자동으로 구성되는 관리자 화면 장고는 웹서비스 콘텐츠 즉 데.. 2023. 5. 11. [CS] 프로세스와 스레드 프로세스(Process) 실행중에 있는 프로그램(Program)으로 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 즉, 동적인 개념으로는 실행된 프로그램을 의미한다. 특징 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받는다. 기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없다. 한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야 한다. 스레드(Thread) 프로세스 내에서 .. 2023. 2. 25. [Java] JVM(Java Virtual Machine) JVM(Java Virtual Machine) Java 는 OS에 종속적이지 않다는 특징을 가지고 있다. OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하다. 그게 바로 JVM이다. 즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터이다. Java 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야한다. 하지만 Java는 이 JVM 이라는 가상머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(*.class)로 변환된다. (Java compiler 가 .java 파일을 .class 라는 Java.. 2023. 2. 14. [CS] 프레임워크와 라이브러리 프레임워크(Framework) 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술입니다. 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 애플리케이션을 개발합니다. 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 됩니다. 프레임워크의 특징 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있습니다. 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의합니다. 컴포넌트들은 재사용이 가능합니다. 높은 수준에서 패턴들을 조작화 할 수 있.. 2023. 2. 13. [Java] String, StringBuffer, StringBuilder String String클래스는 immutable(불변)하다는 특성이 있습니다. String클래스의 문자열을 저장하는 char[]을 보면 final로 선언되어 있다는 것을 확인할 수 있습니다. public final class String implements java.io.Serializable, Comparable, CharSequence { /** The value is used for character storage. */ private final char value[]; ... } 그 때문에, 한번 할당한 문자열을 변경하는 것은 불가능하며, 더하기 연산을 하여 붙일 시 새로운 객체가 생성되어 재할당 됩니다. String s = "hello"; System.out.println(s.hashCode(.. 2023. 2. 6. 이전 1 ··· 14 15 16 17 18 19 20 ··· 34 다음