WEB개발 (69) 썸네일형 리스트형 [WEB기본] Gradle, Maven Maven과 Gradle은 둘 다 Java 프로젝트 빌드를 자동화하기 위한 도구입니다. 이들의 가장 큰 차이점은 Maven이 XML을 사용하여 프로젝트를 구성하고 빌드하는 반면, Gradle은 Groovy 또는 Kotlin DSL을 사용하여 프로젝트를 구성하고 빌드합니다. 이러한 차이점으로 인해 각각의 장단점이 있습니다. MAVEN Ant는 비교적 자유도가 높은 편(Ant : 전처리 / 컴파일 / 패키징 / 테스팅 / 배포 가능)이나 Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전반적인 프로젝트 관리 기능까지 포함. (Build Tool + Project Management) Maven의 장점: XML 구문이 간단하고 명확하여 이해하기 쉽습니다. Maven은 중앙 저장소에서 의존성을 다운로드.. [DB] Lock, Oracle Lock DataBase는 데이터를 영속적으로 저장하고 있는 시스템입니다. 이런 시스템은 같은 자원(데이터)에 대해서 동시에 접근하는 경우가 생길 수 밖에 없습니다. 이럴 경우 데이터가 오염 될 수 있는데 그렇게 되지 않도록 데이터의 일관성과 무결성을 유지해야할 필요가 있습니다. Lock Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법입니다. 트랜잭션이란 DB의 나누어지지 않는 최소한의 처리 단위입니다. 그리고 중요한 것은 DBMS마다 Lock을 구현하는 방식과 세부적인 방법이 다릅니다. 따라서 DBMS를 효과적으로 이용하기 위해서는 해당 DB의 Lock에 대한 이해가 요구됩니다. Lock의 종류 Lock의 종류로는 공유(Shared) Lock과 베타(Exclusive) Lock이 있습니다. 공유락은 다.. [DB] 트랜잭션 격리 수준(isolation level), Transaction(Spring Transactional, Propagation) 1. Transaction(트랜잭션)에 대한 이해 트랜잭션(Transaction)의 필요성 만약 데이터베이스의 데이터를 수정하는 도중에 예외가 발생된다면 어떻게 해야 할까? DB의 데이터들은 수정이 되기 전의 상태로 다시 되돌아가져야 하고, 다시 수정 작업이 진행되어야 할 것이다. 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것이 트랜잭션(Transaction) 이다. 트랜잭션은 더 이상 쪼갤 수 없는 최소 작업 단위를 의미한다. 그래서 트랜잭션은 commit으로 성공하거나 rollback으로 실패 이후 취소되어야 한다. 하지만 모든 트랜잭션이 동일한 것은 아니고 속성에 따라 동작 방식을 다르게 해 줄 수 있다. 예를 들어 1개의 새로운 데이터를 추가하는 와중에 에러가 .. [SPRING] AOP Spring AOP AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 모듈화 하겠다는 것이다. 예를 들어 핵심적인 관점은 비즈니스 로직이 될 수 있고, 부가적인 관점은 핵심 로직을 실행하기 위해 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있다. AOP는 흩어진 관심사(Crosscutting Concerns)를 모듈화 할 수 있는 프로그래밍 기법이다 이때 예를 들어 클래스 A의 주황색 블록 부분을 수정해야 한다면 클래스 B, C의 주황색 부분도 일일이 찾아 수정해야 한다. 이런 식으로 소스 코드상에서 계속 반복해서 사용되는 부.. [SPRING] BEAN 1. BEAN : Spring에서 POJO(plain, old java object)를 ‘Beans’라고 부른다.Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성된다.Beans는 우리가 컨테이너에 공급하는 설정 메타 데이터(XML 파일)에 의해 생성된다.컨테이너는 이 메타 데이터를 통해 Bean의 생성, Bean Life Cycle, Bean Dependency(종속성) 등을 알 수 있다.애플리케이션의 객체가 지정되면, 해당 객체는 getBean() 메서드를 통해 가져올 수 있다. 2. Spring Bean 정의 주요 속성class(필수): 정규화된 자바 클래스 이름id: bean의 고유 식별자scope.. [JS] Async, Await, Fetch, PromiseAll async와 await async와 await라는 특별한 문법을 사용하면 프라미스를 좀 더 편하게 사용할 수 있습니다. async 함수 async 키워드부터 알아봅시다. async는 function 앞에 위치합니다. async function fetchData(url) { try { const response = await fetch(url); // API 요청 보내기 const data = await response.json(); // JSON 데이터 파싱하기 return data; // 데이터 반환 } catch (error) { console.log('Error:', error); } } // fetchData 함수 호출하기 fetchData('https://jsonplaceholder.typico.. [Spring] 주석2 (Annotation) @Resource, @Autowired, @Inject, @Qulifier, @Configuration, @PropertySource @Resource, @Autowired, @Inject, @Qulifier @Resource@Inject@Autowired의존JavaJavaxSpring사용 가능 위치- 필드- 파라미터가 한 개인 setter- 필드- 생성자- setter- 필드- 생성자- setterBean 검색우선순위이름 -> 타입타입 -> 이름타입 -> 이름Bean 강제 지정@Resource(name="ID")@Inject@Named("ID")@Autowired@Qualifier("ID")Bean 없을 경우예외 발생예외 발생@Autowired(required=false) 처리하면 예외 발생 방지.. [Spring] MessageSource 다국어 MessageSource는 Spring에서 국제화(i18n)를 지원하기 위한 인터페이스로, 애플리케이션에서 다국어 메시지를 쉽게 관리할 수 있도록 도와줍니다. 보통 messages.properties 같은 파일을 사용하여 여러 언어에 대한 메시지를 정의하고, 필요할 때 해당 메시지를 가져올 수 있습니다. 1. MessageSource 설정 Spring Boot에서는 기본적으로 messages.properties 파일을 읽습니다.다국어 지원을 위해 messages_ko.properties, messages_en.properties 등을 추가할 수 있습니다. #pathspring.messages.basename=i18n/messagesspring.messages.encoding=UTF-8 src/main/.. 이전 1 2 3 4 5 6 7 8 9 다음