목록분류 전체보기 (279)
HwangHub
이번엔 자바에서의 변수에 대해 자세히 알아보려 합니다. 변수는 자바에서 데이터를 저장하고 관리하는 데 중요한 역할을 합니다. 이 글을 통해 변수의 종류와 활용법에 대해 이해하시고, 실제 코딩에서 더 효율적으로 활용하시기 바랍니다. 변수란? 변수는 자바에서 메모리 공간에 값(value)를 할당하여 데이터를 활용할 수 있도록 도와주는 도구입니다. 이를 통해 우리는 데이터를 저장하고, 읽고, 변형하는 데 사용됩니다. 변수는 크게 기본형(primitive type)과 참조형(reference type) 두 가지로 구분합니다. 기본형 변수 기본형 변수는 타입에 따라 정해진 크기의 메모리 공간을 할당받고, 그 공간에 '값'을 직접 저장합니다. 기본형 변수는 다음과 같이 8가지가 있습니다. boolean (1byte..
자바에서는 기본형 변수외에 참조형 변수를 활용할 때 'pass by value'라는 용어를 사용하곤 합니다. 그러나 이 'pass by value'는 기본형 변수를 전달할 때의 'pass by value'와는 다소 차이가 있습니다. 기본형 변수를 'pass by value'로 전달할 때는 변수의 실제 값이 복사되어 전달됩니다. 그러나 참조형 변수를 'pass by value'로 전달할 때는 변수가 참조하고 있는 객체의 주소(참조 값)가 복사되어 전달됩니다. 즉, 이 경우 'value'는 참조 '값'이며, 이 참조 값이 복사되어 전달되는 것이기 때문에 여전히 'pass by value'라는 용..
웹은 지속적으로 발전하며 그에 따라 웹 표준도 끊임없이 발전하고 있습니다. 그러한 발전의 일환으로 HTML5에서는 시맨틱 태그라는 새로운 개념이 도입되었습니다. 그렇다면, 시맨틱 태그가 등장한 배경은 무엇이었을까요? 그리고 이들 시맨틱 태그는 각각 어떤 의미를 가지고 있을까요? 시맨틱 태그의 등장 시맨틱(semantic)이란 '의미'를 뜻합니다. 즉, 시맨틱 태그는 웹 페이지의 구조를 명확하게 설명하는 역할을 합니다. 기존의 HTML에서는 , 등의 태그를 사용하여 웹 페이지를 구성했습니다. 아직까지도 많은 웹 페이지가 남발된 태그로 구성되어 있습니다. 하지만 이런 태그들은 구조적인 의미를 가지지 않아, 웹 페이지의 각 문단의 의미를 파악하기 어렵게 만들고, 유지보수성을 저하시킵니다. 그래서 HTML5에서..
우리는 타이핑을 하면서 수 많은 엔터를 입력한다. 근데 Enter 입력 표현은 OS마다 다르다는 사실... 놀랍게도 나는 몰랐다. (컴퓨터의 세상을 넓고도 험악하다.) 걍 나중에 혹시 또 기억 안나면 보려고 간단하게 적어둔다. 리눅스 계열은 \r (캐리지 리턴)만 윈도우는 \r\n (캐리지 리턴 + 라인 피드(=뉴라인)) 둘다 한줄평 아, 그래서 맨날 git bash에서 찡얼거렸구나
외부, 내부, 인라인 적용 스타일이 존재할 때, 인라인 > 내부 > 외부 순으로 스타일 적용 우선순위를 가진다. 외부 스타일시트 : head 태그 안에
절대 경로 file system : "드라이브부터" 파일이 있는 실제 경로를 모두 표현 (file:///C:/SSAFY/work-front/saffy.png) network : "프로토콜, 도메인부터" 파일이 있는 실제 경로를 모두 표현 (https://www.naver.com/blah/blah) 상대 경로 특정 경로를 기준으로 파일이 있는 relative한 위치를 표현 ("./ssffy.png") .. 상위 ./ 현재(생략 가능) /fdsa 하위 경로 ~: file:///C:/Users/{현재 유저}/와 동일한 의미 웹 주소는 브라우저에 표시되는 도메인 주소가 기준임. (중요) 예를 들어 https://naver.com:8080/context-path/path1/path2 가 있다고 할 때, 상대 경로..
컴퓨터는 기본적으로 0과 1로 이루어진 이진 데이터를 처리합니다. 이러한 이진 데이터를 사람이 이해할 수 있는 문자로 변환하기 위해 인코딩이 사용됩니다. 아스키부터 유니코드까지 컴퓨터 인코딩의 역사는 미국에서 컴퓨터를 개발하면서 시작되었습니다. 처음에는 간단한 영어 문자를 숫자로 변환하는 아스키(ASCII) 코드가 사용되었습니다. 아스키 코드는 7비트로 표현되는데, 이는 128개의 다른 문자를 표현할 수 있음을 의미합니다. 이는 대소문자 알파벳, 숫자, 일부 특수 문자를 포함합니다. 그러나, 아스키 코드로는 다양한 언어와 특수 기호를 모두 표현할 수 없었습니다. 이를 해결하기 위해 아스키 코드를 확장하여 국제 규격에 맞게 일부 특수 기호들(pound 등)을 추가한 인코딩 코드인 ISO-8859-1이 등장..
앞으로 싸피에서 myBatis를 공부할 예정인데, 지금까지는 Spring의 대표적인 ORM인 JPA에 대해서만 사용해 왔기 때문에 이와 관련된 간단한 궁금증이 생겼다. 이에 따라 간단하게 짚고 넘어가려 한다. myBatis는 SQL Mapper이고 JPA는 ORM기술이다. (즉, myBatis는 ORM이 아니다. 둘은 차이가 있다.) SQL Mapper 쿼리의 실행결과를 미리 지정하여 두고 이를 객체로 매핑하는 기술을 말한다. 즉, 쿼리를 개발자가 직접 작성해야 한다. ORM 쿼리를 개발자가 직접 작성하지 않아도 ORM에서 객체를 해석하여 쿼리를 생성해준다. (복잡한 쿼리가 필요한 경우에는 직접 작성하는 경우도 있음) ORM은 객체지향 언어와 관계형 데이터베이스 간의 패러다임 갭을 해소하고자 등장한 기술..
datasource url에 localhost:3306/mydb와 같이 입력해 뒀는데, datasource url을 해석하지 못하는 에러가 발생했다. 일단 datasource url은 정확했다. (당연히 여러 원인이 있겠지만) 사실 127.0.0.1이 localhost와 동일한 의미인데, 혹시나 하고 127.0.0.1로 해보니 연결은 되는 걸 확인할 수 있었다. 아무래도 127.0.0.1을 localhost(루프백 호스트)로 인식하는 게 제대로 동작하고 있지 않는 것 같았다. 문제 파악하기 어디서 문제가 있나 살펴보던 중 pom.xml에서 xmlns:xsi에 http://www.w3.org/2001/XMLSchema-instance로 지정되어 있었는데, xsi가 http로 지정되어 있으니까 다른 xmln..
항상 스프링부트 + gradle 조합으로 개발하다보니, maven을 이용한 프로젝트를 진행해보지 않았었다. 이번에 싸피를 하면서 myBatis와 maven 프로젝트를 하게 될 것 같은데, 이번 기회에 pom.xml 혐오를 멈춰보고자 한다. 우선, 불편함을 지우지 위해서는 어느정도 pom.xml과 서로 알아가는 시간이 필요할 것 같아서 들여다 보기 시작했다. gradle로 빌드 파일을 설정해오면서 봤던 의존성 설정이나 빌드 설정 등은 대략 이해가 가는데, project 태그의 xmlns 부분은 어색하게 느껴졌다. 따라서 이를 한번 알아보기로 했다. POM이란? POM은 Project Object Model을 의미한다. maven으로 빌드를 진행하는 프로젝트의 설정 파일을 pom.xml이라고 하여 작성한다...