전체 글 (40) 썸네일형 리스트형 컴파일 언어와 인터프리터 언어 컴파일 언어와 인터프리터 언어 개인적으로 프로그래밍 공부를 할 때 어떠한 개념의 역사에 대해서 이해하고 나면 좀 더 기억에 남는 편이다. 그래서 역사를 간단히 적겠다. 컴퓨터 구조에 따라 사용하는 기계어가 달라지며 그에 따라 기계어에 대응되어 만들어지는 어셈블리어도 각각 다르게 된다. 초기 컴퓨터 프로그램들은 모두 어셈블리어로 작성했다. 그러나 어셈블리어는 사용하는 컴퓨터 구조에 따라 달라진다. 이러한 점으로 인해 새로운 아키텍처가 적용된 CPU가 등장한다면 매번 같은 프로그램을 새로 나온 CPU에 맞는 어셈블리어로 다시 작성해야 했다. 이러한 번거로움으로 인해 통일된 언어체계로 작성된 코드의 필요성이 대두되고, 여기서 고급 프로그래밍 언어가 등장하게 된다. 하지만 컴퓨터는 고급 언어로 작성된 코드를 바.. StringBuffer와 StringBuilder StringBuffer와 StringBuilder StringBuffer / StringBuilder 클래스는 문자열을 연산(추가하거나 변경) 할 때 주로 사용하는 자료형이다. StringBuffer / StringBuilder를 쓰는 이유 String 자료형만으로도, + 연산이나 concat() 메서드를 통해 문자열을 이어 붙일 수 있다. 하지만 덧셈(+) 연산자를 이용해 String 인스턴스의 문자열을 결합하면 내용이 합쳐진 새로운 String 인스턴스를 생성하게 되어 공간의 낭비뿐만 아니라 속도 또한 매우 느려지게 된다. 따라서 내부적으로 버퍼(buffer)라고 하는 독립적인 공간을 가지게 되어, 문자열을 바로 추가할 수 있어 공간의 낭비도 없으며 문자열 연산 속도도 매우 빠르다는 특징이 있다. 또.. String이란? String이란? String 클래스는 문자열을 다루는 클래스이며 immutable 하다는 특징이 있다. immutable은 불변이라는 단어로 String 객체에 값이 초기에 할당되면 그 값을 변경되지 않는 것을 의미한다. * String 객체가 불변객체(Immutable)인 이유 Java에서 가장 많이 사용되는 Data Type 중 하나가 바로 String 객체이다. 때문에 메모리에 대한 고민을 안 할 수가 없었다. 따라서 재사용될 가능성이 높다고 판단하여 같은 값일 경우 어플리케이션 당 하나의 String 객체만을 생성 두어 JVM의 Heap 메모리 관리를 효율적으로 하자고 했다. String 객체 생성방법 1. 리터럴을 이용하여 String 객체 생성 String a1 = "a"; 2. new 연산.. Call by value, Call by reference 정리와 차이 Call by value, Call by reference 정리와 차이 Call by Value 값을 호출하는 것을 의미합니다. 전달받은 값을 복사하여 처리합니다. 즉 전달받은 값을 변경하여도 원본은 변경되지 않습니다. Call by Reference 참조에 의한 호출을 의미합니다. 전달받은 값을 직접 참조합니다. 즉 전달받은 값을 변경할 경우 원본도 같이 변경이 됩니다. 자바에서는 오직 Call by Value로만 동작합니다. Call by value와 Call by reference의 차이에 대해서 명확하게 이해하기 위해선 method가 실행될 때 stack 영역에 쌓이는 스택 프레임이라는 개념이 중요하다. * 스택 프레임이란(stack frame)? 하나의 메서드에 필요한 메모리 덩어리를 묶어서 스.. [22.09.27] 사용자 그룹 설정 페이지 보호되어 있는 글입니다. python Dictionary python Dictionary 파이썬 기초를 공부하던 도중 연습 문제에서 간단한 문제를 겪었다. 문제는 다음과 같다. 딕셔너리 개념을 공부하면서 다차원 딕셔너리로 저장된 value값을 가져와서 해당 value값, 배열 안에 있는 데이터를 가져와야 하는 문제였다. 그래서 'key1'이라는 딕셔너리 value값을 가져오는데까지는 성공했고 해당 배열의 인덱스를 입력해 값을 가져올려고 했다. 예를 들어 d6.get('c').get('key1')[1] 과 같은 식으로 불러오면 어떠한 값이라도 나와야 하는데 다음과 같은 오류가 떴다. 10분 정도 헤매다가 문제의 원인을 알 수 있었다. 바로 이 부분!! 파이썬에서 리스트를 중괄호로 감싸고 있었기 때문에 인덱싱이 불가했던 것이다. 중괄호로 감싸는 것은 Object가.. Oracle Session에 대해서 Oracle Session에 대해서 Spring 프로젝트를 진행하기에 앞서 이클립스를 사용한 스프링 프로젝트와 오라클을 연동하는 과정을 경험했습니다. 연동하는 과정에서 새로 생성한 계정에 대해서 CREATE SESSION에 대한 권한을 부여했음에도 불구하고 계속해서 권한이 없다는 오류가 떴습니다. 그래서 몇 시간을 머리를 싸매고 고민하면서 카페 앞에 세워져 있는 나무라도 벌목하고 싶다는 생각이 드는 찰나 세션 설정을 변경해주고 다시 권한을 부여하고 서버를 돌려봤더니 정상적으로 잘 돌아갔습니다. 그래서 궁금해졌습니다. Oracle에서 Session의 역할이 무엇인가. Oracle Session이란? 사용자가 오라클 데이터베이스에 접속을 하게 되면 세션이 생성됩니다. 이 세션은 사용자가 데이터베이스에서 접속.. Spring @Controller와 @RequestMapping Spring @Controller와 @RequestMapping @Controller 스프링 프레임워크의 컨트롤러는 사용자가 화면 단에서 입력이나 어떤 이벤트를 발생시켰을 경우, 그 이벤트에 맞는 화면이나 비즈니스 로직을 실행할 수 있도록 업데이트를 해주도록 하는 역할을 하고 있습니다. 스프링 프레임워크의 컨트롤러의 역할은 아래와 같습니다. 1. Data receive 2. Interpret 3. Validate input data 4. Update View 5. Modify Model 저번 MVC 패턴 관련 글에도 남겼듯이 Controller는 Model과 View를 이어주는 다리 역할이라고 보시면 됩니다. 2022.06.09 - [IT 개발 관련/JavaSpring] - MVC 패턴 MVC 패턴 MV.. 이전 1 2 3 4 5 다음