Programming70 [Spring Boot] H2 데이터베이스 사용해보기 (개념 / 환경 구성 / JPA 사용 예제) 서론 이번글에서는 테스트로 자주 사용하는 h2 database에 대해 알아보려한다. 사용 예제는 맨 아래의 git 링크로 들어가면 볼 수 있다. H2 Database란? h2는 우리가 흔히 볼 수 있는 RDBMS(관계형데이터베이스)이다. 근데 일반적인 DB와 다른점이라고 하면, H2는 메모리 데이터베이스 기반이며 휘발성데이터를 관리하는 DB이다. 보통 통용되는 데이터베이스는 DB 서버에 실제 메모리를 유지시키므로 영구적인 데이터를 사용할 수 있는 반면, H2는 데이터가 시스템 메모리에 저장이 되어 서버를 종료하거나, 재시작하면 해당 데이터가 삭제되는 데이터베이스이다. 그런데, 이 H2를 언제 쓸까? 특징을 알아보자. H2 특징 매우 빠른 속도를 지원하는 오픈 소스이다. 인 메모리 데이터베이스이다. 브라우.. Programming/Spring 2022. 3. 24. STS(Eclipse)에서 IntelliJ로 프로젝트 옮기는 방법 (Import / Export) 서론 이번 글에서는 STS에서 IntelliJ로 옮기는 방법에 대해 정리하려한다. 바로 알아보자. [이관 순서] 1. 프로젝트 우클릭 - Export 선택 2. Export - Archive File 선택 3. Browse 선택 후 저장할 곳을 선택후 [프로젝트이름.zip]으로 저장 4. 저장한 .zip파일을 복사 or 잘라내기 후 C드라이브- 사용자 - 계정 - ideaProjects 폴더에 붙여넣기 필자 경로 ex) C:\Users\jkan\IdeaProjects 5. IntelliJ 실행 후 프로젝트 Open -> 위의 ideaProjects 폴더에서 옮길 프로젝트 선택 Programming/Spring 2022. 3. 20. C# DNS 또는 IP를 이용한 Socket IP 설정 방법 (IPAdrress / IPEndPoint 설정) 서론 이번 글에선 C#에서 tcp/ip 통신 간 Server, Client의 Socket ip를 dns를 이용한 IPEndPoint를 설정하는 방법에 대해 정리하려한다. 평소 사용했던 IPEndPoint 설정 방법 IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000); 위 처럼 보통 Socket IP를 설정할 때 사용했던 소스인데, ip에 dns로 설정하니 IPEndPoint를 못찾는 에러가 발생했다. DNS와 IP를 둘다 호환할 수 있는 방법 string dns = "www.naver.com" //임시로 네이버로 잡았고 필요에 따라 dns 쓰면 됨. IPAddress bnetServerIP = Dns.GetHostAddresses(".. Programming/C# 2022. 3. 18. [JAVA] SOLID - 개방 폐쇄 원칙 OCP(Open Closed Principle) 서론 이번 글에서는 개방 폐쇄 원칙(OCP)에 대해 알아볼려한다. 바로 알아보자 :) 객체지향 설계 5대 원칙 SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Liskov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존성 역전 원칙 OCP(Open Closed Priciple) - 개방 폐쇄 원칙이란? 확장에는 열려있으나 변경에는 닫혀있어야 한다는 원칙이다. 이것이 무슨말일까 ? 우선 여기서 말하는 확장과 변경에 대해 알아보자.. Programming/Java 2022. 3. 15. [Spring] 전역 예외 처리 방법 (@ControllerAdvice, @ExceptionHandler) 서론 필자는 모든 예외사항을 고려하여 개발을 하는것은 불가능하다고 생각이 든다. 그래서 이 예외 처리는 정말 고마운 녀석이라는 생각이 든다. 이번 글에서는 Spring에서 예외처리 클래스를 생성하여 전역 또는 특정 패키지 별로 예외 처리를 할 수 있는 방법을 소개 하려한다. 예외 처리란 ? 우리는 항상 에러(Error)와 예외에 대해 나눠서 생각해야 한다. 여기서 에러는 "보통 발생 시 수습할 수 없는 심각한 오류"를 말하며, 예외는 "예외 처리를 통해 수습할 수 있는 덜 심각한 오류"를 말한다. 에러는 아예 발생하지 않게 처리를 해줘야 하는것에 반면, 예외는 try ~ catch문을 통하여 예외 발생 시 상황에 맞는 구현을 통해 예외 상황을 재활용 할 수 있게 해준다. [예외처리 예시] (예외처리 예시.. Programming/Spring 2022. 3. 13. [Spring] 쿠키와 세션의 차이점 서론 이번 글에서는 쿠키와 세션의 차이점에 대해 알아보려고한다. 각 개념은 이전 글에 작성해놓았으니 참고 바란다. 쿠키(Cookie) VS 세션(Session) 분류 쿠키(Cookie) 세션(HttpSession) 저장 위치 브라우저에 저장한다. 서버에 저장한다. 서버 부담 브라우저에 저장하여 서버에 부담이 없다. 서버에 저장하여 서버에 부담이 있다. 보안성 불리하다. (필요하면 암호화 사용) 유리하다. 서버 다중화 유리하다. 불리하다. 속도 빠르다. 느리다. 저장 형식 Text형식으로 저장된다. Object형식으로 저장된다. 만료 시점 쿠키 저장시 설정할 수 있다. (만료 시점 설정 가능) 브라우저 종료시 삭제한다. (기간 지정 가능) 용량 제한 총 300개 하나의 도메인 당 20개 하나의 쿠키당 4K.. Programming/Spring 2022. 3. 13. [Spring] 세션(Session)이란? (개념 / 특징 / 사용법) 서론 이번 글도 이전 글인 쿠키글과 마찬가지로 나 혼자 공부를 위해 작성하는것이니 지저분한 정리가 될 수 있다. 추 후 깔끔하게 정리를 꼭 해보도록 하겠다 :() 세션이란? 사용자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저를 종료하여 연결을 끝내는 시점까지 같은 사용자로부터 오는 일련의 요청을 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술이다. ---> 클라이언트 별로 각각의 상태 정보를 서버에서 저장하는 기술이다. 세션 특징 Browser마다 개별 저장소(Session객체)를 서버에서 제공(발급)한다. 각 클라이언트에게 고유한 ID를 부여한다. 웹서버에 컨테이너 상태를 유지하기 위한 정보를 저장한다. 세션 ID로 클라이언트를 구분하여 클라이언트 요구에 맞는 서비스를 제공한다.. Programming/Spring 2022. 3. 13. [Spring] 쿠키(Cookie)란? (개념 / 특징 / 사용법) 서론 쿠키에 대해 간략히 알아보려고한다. 이번 글에서는 정보 공유를 위한 정리보다는 일단 혼자 정리해보기위해 정리하는 글이기에 다소 보기에 지저분할 수 있다. (추 후 시간이 되면 더 자세한 내용으로 다듬어 보겠음) 쿠키란? 쿠키는 유저들의 효율적이고 안전한 웹 사용을 보장하기 위하여 웹사이트에 널리 사용되고 있다. 쿠키는 웹사이트 접속시 접속자의 개인장치에 다운로드 되고 브라우저에 저장되는 작은 텍스트 파일이다. 웹사이트는 쿠키를 통해 접속자의 장치를 인식하고, 접속자의 설정과 과거 이용내역에 대한 일부 데이터를 저장한다. 일반적으로 쿠키에는 만료일이 있다. 예를 들어, 브라우저를 닫는 경우 자동으로 삭제되는 쿠키도 있으며(세션 쿠키), 일부는 수동으로 삭제되기 전까지 남아있는 등 더 오랜기간 동안 컴.. Programming/Spring 2022. 3. 12. [JAVA] SOLID - 단일 책임 원칙 SRP(Single Responsibility Principle) 서론 최근 정보처리기사 공부를 진행하면서 오랜만에 해당 개념들을 접하게 됐는데 객체지향 언어를 개발하는 코더 입장에서 기본적인 설계 원칙도 잘 모르고 마구 개발을 한다라는 것이 얼마나 불운한 개발자로 성장할 것 인지 체감해볼 수 있었다. 이번 챕터에서는 SRP인 "단일 책임 원칙"에 대하여 정리해 볼 것이다. 객체지향 설계 5대 원칙 SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Liskov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Princi.. Programming/Java 2022. 3. 11. [JAVA] 문자열을 Reverse 하는 방법 서론 개발관련 웹 서핑을 하다가 String을 Reverse하는 방법을 질문하는 글을 접했다. 순간 String에서 기본적으로 reverse()라는 함수를 지원하지않을까? 라는 생각이 들어 입력해봤지만 그런 함수는 존재하지 않았다. 아래에서 해당 방법을 알아보자. 여러 방법이 있지만 가장 간단한 방법 한가지만 메모해두려고 한다. Stringbuilder 활용하기 public static void main(String[] args) throws NumberFormatException, IOException { String str = "abcdef"; StringBuilder sb =new StringBuilder(str); String reverse_str = sb.reverse().toString(); .. Programming/Java 2022. 3. 11. [JAVA] StringBuilder란? (개념 / 사용 이유 / 클래스 라이브러리 만들기 / 예제) 서론 해당 글의 내용은 굉장히 심플한 내용이고 기본적인 내용이기에 필자는 이 내용을 글로 정리를 할까 말까 고민을 했지만 이 시간에 정리 다 했겠다란 생각에 글쓰기 버튼을 눌렀다. 그럼 한번 알아보자. Stringbuilder 기능 String으로 되어있는 문자열을 합칠 수 있다. Stringbuilder 사용이유 우리는 String과 "+"를 이용하여 String을 합칠 수 있다. 그런데 StringBuilder를 사용하는 이유가 무엇일까? 그 이유는 아래와 같다. 우선 기존 방식인 String과 "+"을 사용한 방식을 살펴보자. String str = "안" + "녕"; //str 결과 : "안녕" StringBuilder sb = new StringBuilder(); sb.Append("안"); s.. Programming/Java 2022. 3. 8. C# Invoke와 BeginInvoke의 차이점 (목적 / 정의 / 사용 방법 / 예제) 서론 이번 글은 Winform Application에서 스레드 환경을 구성할 때 사용하는 기술인 Invoke와 BeginInvoke의 정의와 차이점에 대해 알아볼 것이다. 우선 해당 글을 작성하기 앞서 스레드를 이용하여 UI를 조작할 때 발생하는 크로스 스레드의 글과 관련 있으니 이전에 작성한 크로스 스레드 해결 방법의 글을 참고하고 해당 글을 읽으면 더 이해하는데 도움이 될 것 이라 생각한다. Invoke & BeginInvoke 목적 UI 컨트롤박스를 생성하게 되면 내부 스레드가 자동으로 생성되는데 별도의 스레드를 생성하여 해당 컨트롤 박스에 접근하려 하면 서로 다른 스레드가 하나의 컨트롤 박스 객체에 접근을 하게 되는데, 이 때 교착상태(크로스 스레드)가 발생하여 Invoke 또는 BeginInvo.. Programming/C# 2022. 2. 18. 이전 1 2 3 4 5 6 다음 💲 많이 본 글