승농

· 코딩/Java
논 블로킹 알고리즘(Non-blocking Algorithms) 이 글은 원 저자 Jakob Jenkov의 허가로 포스팅된 번역물이다.원문 URL : http://tutorials.jenkov.com/java-concurrency/non-blocking-algorithms.html 동시성에서의 논 블로킹 알고리즘이란 쓰레드간의 공유된 상태(자원) parkcheolu.tistory.com 동시성에서 스레드간 공유 상태(자원)로의 접근이 발생할 때... 블로킹과 논블로킹 알고리즘이 어떻게 동작하는지 알아보자. 1. 블로킹 동시성 알고리즘 Thread B가 lock한 데이터에 Thread A가 접근하면 blocked되어 대기한다. Thread B가 unlock을 해주면 대기 중이던 Thread A가 다시 lo..
· 코딩/Java
1. synchronized, volatile 1-1. synchronized 자바에서 멀티스레드로 인해 동기화를 제어해야하는 경우가 있는데, 가장 흔히 아는 Synchronized 키워드에 대해 먼저 알아보자. Java의 동기화 Synchronized 개념 정리#1 Java의 동기화 -Synchronized 키워드의 사용Java를 프로그래밍 하다면 multi-thread로 인하여 동기화를 제어해야하는 경우가 생깁니다.그래서 흔히 Synchronized 키워드를 사용하는데요그냥 multi-thread로 동시 tourspace.tistory.com 이 블로그에 잘 나와있는데... 마지막 예시를 내 마음대로 수정해서 적용해보았다. public class SyncBlock { private Map map1 =..
0. TogeDocs에 대해... 0-1. 개요 SSAFY에서 동시편집 기능을 포함한 프로젝트를 개발한 적이 있다. https://github.com/tmddnrdl333/TogeDocs GitHub - tmddnrdl333/TogeDocs: 개발자를 위한 API 통합 서비스, TogeDocs 개발자를 위한 API 통합 서비스, TogeDocs. Contribute to tmddnrdl333/TogeDocs development by creating an account on GitHub. github.com 프로젝트를 한 마디로 소개하면, 개발자를 위한 API 통합 서비스이고, 주 기능은 API 명세서의 동시편집이었다. 설계 단계에서는 실현 가능성을 따지지 않고 만들고 싶은 주제를 구상하고자 했고, 주제..
1. REST API란? REpresentational State Transfer의 약자로, 2000년도에 Roy Fielding의 박사 논문에서 최초로 소개되었다. 로이 필딩은 HTTP 주요 저자 중 한 사람으로, 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 한다. 2. REST의 구성 자원(Resource) 행위(Verb) 표현(Representations) 쉽게 말해, REST는 URI를 통해 자원을 표시하고. HTTP Method를 이용해 자원의 행위를 규정하여 그 결과를 받는 것을 말한다. 3. REST API 설계 가장 중요한 두 가지 항목은 아래와 같다. URI는 정보의 자원을 표현해야 한다. 자원에 대한 행위는 HTTP Method로 표현한다. 3-1. 기억할 것들..
0. 개요 다양한 형태의 Class들을 객체화하는 3가지 패턴이 있다. 점층적 생성자 패턴 자바 빈즈 패턴 빌더 패턴 세 가지에 대해 간략히 알아보고 싶다면 아래 블로그를 참고하자. https://wildeveloperetrain.tistory.com/29 https://wildeveloperetrain.tistory.com/30 1. 자바빈즈 패턴 필자가 현재 사용하고자 하는 자바빈즈 패턴과 그 사용법에 대해 간단히 Alaboja. 1-1. 자바빈즈 패턴이란? 매개변수가 없는 생성자로 객체를 만든 후 Setter 메서드들을 호출해서 원하는 매개변수의 값을 설정하는 방식이다. 장점: 코드가 길지만 인스턴스 생성이 쉽다. 가독성이 좋다. 단점: 객체 하나를 만들기 위해 많은 메서드를 호출해야 한다. 객체가..
0. MyBatis와 MyBatis-Spring MyBatis는 Spring이나 Java에 국한되지 않은 독립적인 프레임워크이다. (더 정확히 말하면, Spring과는 그냥 상관이 없는 프레임워크이고, Java에서 많이 쓰지만 C#, Ruby 등에서도 사용이 가능하다.) 그리고 MyBatis-Spring은, MyBatis를 SpringFramework에 더 쉽게 사용하게 해주는 연동 모듈이다. 0-1. MyBatis란? Java객체와 SQL문을 자동으로 Mapping해주는 ORM(Object Relation Mapping) 프레임워크 접근성이 좋고, 코드가 간결해진다. (jdbc의 모든 기능을 제공하기 때문에, jdbc 코드를 많은 부분 대체할 수 있다.) 오픈소스이고 무료이다. 하지만 테이블이 변경되고..
· 코딩/Java
0. 출처 [Java] JVM 구조와 메모리 영역 - Method, Heap, Stack Area 1. JVM 동작 과정 JVM은... 많이 알겠지만 Java Virtual Machine이고, 자바 바이트 코드를 OS에 맞게 해석해주는 역할을 한다. 또 메모리 관리도 담당한다. (GC는 Java 7부터 힙 영역의 객체들을 관리하는 역할을 한다.) 자바 코드가 JVM을 통해 실행되기 때문에 플랫폼에 구애받지 않는다는 것이 장점이라는 것도? 많이 알고 있을 것이다. 메모리 영역을 알아보려면, JVM이 자바 코드를 어떻게 OS에서 실행하는지 그 과정을 알아볼 필요가 있다. 자바 코드(.java 파일)는 컴파일러가 자바 바이트 코드인 .class 파일로 변환된다. .class 파일을 JVM의 클래스 로더에게 보..
· 코딩/Java
0. 출처 [Java] 자바 static의 의미와 사용법 1. 정적(Static)이란? '고정된'이라는 의미를 가지고 있다. static 변수와 메서드를 만들 수 있는데, 다른 말로 정적 필드, 정적 메서드라고 하고, 합쳐서 정적 멤버라고도 한다. (클래스 멤버라고도 한다.) 이들은 객체(인스턴스)에 소속된 멤버가 아니라, 클래스에 고정된 멤버이다. 때문에 클래스 로더가 클래스를 로딩해서 메서드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스 로딩이 끝나는 즉시 사용이 가능해진다. Static영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든 참조할 수 있는 장점이 있지만? Garbage Collector의 관리 영역 밖이기 때문에, 프로그램 종료시까지 메모리가 할당된 채로 ..
· 코딩/Java
※ 주의: 뇌피셜 적당량 함유 삐슝빠슝 java 에서 interface에 대해 간단히 정리해보자면... 1. 선언되는 멤버 변수는 모두 상수, public static final 이 생략된 형태로 선언된다. 2. 선언되는 메소드는 모두 추상, public abstract 가 생략된 형태로 선언된다. 근데... 놀랍게도 JDK1.8 부터는 추상이 아닌 메소드를 작성할 수 있게 된다... 그 역사에 대해 간단히 말하자면... 원래 있던 수 많은 라이브러리 중, 기존 interface에 "어 하나만 추가할까..." 하면 와르르멘션이 된다. 왜냐면 그 interface를 구현하던 수 많은 클래스들이 그 추가한 하나의 추상 메소드를 정의해줄 의무를 갖게 되면서 다 빨간줄이 그일 것이기 때문... 그래서 대안으로,..
· PS - BOJ
1408 24 XX:XX:XX 형태의 시간 두개가 주어지고, 두 시간 사이 간격을 XX:XX:XX형태로 출력하는 문제 import java.util.Scanner; public class bj1408_0131 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String A = sc.next(); String B = sc.next(); int ha = A.charAt(0) * 10 + A.charAt(1); int hb = B.charAt(0) * 10 + B.charAt(1); int ma = A.charAt(3) * 10 + A.charAt(4); int mb = B.charAt(3) * 10 + B.char..
승농
'승농' 태그의 글 목록 (2 Page)