블로그 이미지
플로거
Android/J2EE/Web/Spring/Database

calendar

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Notice

Statistics Graph
2017.08.16 11:24 Programming/Html 5

CSS3 text-overflow Property


Use of the text-overflow property:

div {
    text-overflow: ellipsis;
}

Definition and Usage

The text-overflow property specifies how overflowed content that is not displayed should be signaled to the user.

Default value:

clip

Inherited:

no

Animatable:

no. Read about animatable

Version:

CSS3le.textOverflow="ellipsis"

JavaScript syntax:

object.style.textOverflow="ellipsis"

CSS Syntax

text-overflow: clip|ellipsis|string|initial|inherit;

Property Values

Value

 Description

 clip

 Default value. Clips the text

 ellipsis

 Render an ellipsis ("...") to represent clipped text

 string

 Render the given string to represent clipped text

 initial

 Sets this property to its default value. 

 inherit

 Inherits this property from its parent element.


Example

<style> 

#div1 {

    white-space: nowrap; 

    width: 12em; 

    overflow: hidden;

    text-overflow: clip; 

    border: 1px solid #000000;

}


#div2 {

    white-space: nowrap; 

    width: 300px; 

    overflow: hidden;

    text-overflow: ellipsis;     

}

</style>


This document refers to W3Schools.com

저작자 표시 비영리 변경 금지
신고

'Programming > Html 5' 카테고리의 다른 글

ellipsis - CSS3 text-overflow Property  (0) 2017.08.16
실전 HTML 5 가이드 - Web Standards Korea  (0) 2010.12.26
posted by 훈즈 플로거
2017.08.02 11:22 Programming/Git

git checkout -b feature_x - “feature_x” 라는 branch 를 만들고 해당 branch 로 checkout

git checkout master - master branch 로 돌아오기

git branch -d feature_x - branch 삭제

git push origin <branch 명> - push 가 되지 않으면 다른 사람들이 접근이 안됨

git pull - 로컬 저장소를 원격 저장소에 맞춰 갱신

git merge <branch 명>

git tag 1.0.0


Discard / Revert / Reset

Discard(Undo) - git checkout -- <file name> -

Revert - Reverse Commit - 삭제 하지 않음, 순차적으로 진행.

Reset - 삭제, 여러 단계를 뛰어 넣어서 가능

저작자 표시 비영리 변경 금지
신고

'Programming > Git' 카테고리의 다른 글

Branch / Merge / Tag  (0) 2017.08.02
Git guide- https://rogerdudler.github.io/git-guide/index.ko.html  (0) 2017.08.02
Git 설치 - git-scm.com  (0) 2017.08.02
Git 기초  (0) 2017.07.25
GIT - the stupid content tracker  (0) 2017.07.25
posted by 훈즈 플로거
2017.08.02 11:17 Programming/Git

Git guide- https://rogerdudler.github.io/git-guide/index.ko.html


Git 저장소 만들기 - git init

  • 폴더를 하나 만들고, 그 안에서 git init 을 실행.  

Git 저장소 받아오기 - git clone /로컬/저장소/경로

  • git clone 사용자명@호스트:/원격/저장소/경로

Working direcotry, Working copy -> add

Unstaged / Staged(Index),

Uncommitted changes/ HEAD(commit)       

Git Commit - only local / Push - remote

Commit

  • git add <파일 이름>, git add  * ,  git commit -m “comment”(HEAD 에 반영)

  • 원격 저장소에 아직 반영(push) 안됨

  • CVS, SVN 과 차이가 있음.  

  • SourceTree 에서는 Commit 후 Push 를 진행해야만 함.

  • Push 시에 원격 저장소에 변경사항이 있을 경우 git pull  을 먼저 진행해야함.

  • Eclipse 에서는 Commit and push 로 한번에 진행할 수 있음.

git push origin master - 원격서버의 master 에 push

git remote add origin <원격 서버 주소> - 최초, 다른 저장소의 경우



저작자 표시 비영리 변경 금지
신고

'Programming > Git' 카테고리의 다른 글

Branch / Merge / Tag  (0) 2017.08.02
Git guide- https://rogerdudler.github.io/git-guide/index.ko.html  (0) 2017.08.02
Git 설치 - git-scm.com  (0) 2017.08.02
Git 기초  (0) 2017.07.25
GIT - the stupid content tracker  (0) 2017.07.25
posted by 훈즈 플로거
2017.08.02 10:52 Programming/Git

Source Code - https://github.com/git/git

Linux - $yum install git-core

Ubuntu - $apt-get install git

Mac 에 설치하기 - https://git-scm.com/download/mac

Window - https://git-scm.com/download/win

SourceTree - www.sourcetreeapp.com

저작자 표시 비영리 변경 금지
신고

'Programming > Git' 카테고리의 다른 글

Branch / Merge / Tag  (0) 2017.08.02
Git guide- https://rogerdudler.github.io/git-guide/index.ko.html  (0) 2017.08.02
Git 설치 - git-scm.com  (0) 2017.08.02
Git 기초  (0) 2017.07.25
GIT - the stupid content tracker  (0) 2017.07.25
posted by 훈즈 플로거
2017.07.25 17:52 Programming/Git

Git 핵심

  • Git 을 배우려면 Subversion 이나 Perforce 같은 다른 VCS 를 사용하던 경험을 지워야..
  • Git 은 미묘하게 달라서 다른 VCS 에서 쓰던 개념으로는 헷갈림.
  • 델타(각 파일에 대한 변화)가 아니라 스냅샷 
  • Git 은 커밋하거나 상태를 저장할 때마다 파일이 존재하는 그 순간이 중요.
  • 크기가 아주 작아 성능이 탁월하다.
  • Git은 성능을 위해 파일을 저장하지 않고, 이전 상태의 파일에 대한 링크를 저장한다.


Git의 세가지 상태 - Committed, Modified, Staged

  • Committed - 데이터가 로컬 데이터베이스에 안전하게 저장.
  • Modified -  수정한 파일을 Commit 하지 않은 것. 
  • Staged - 현재 수정한 파일을 곧 Commit 할 것이라고 표시.


저작자 표시 비영리 변경 금지
신고

'Programming > Git' 카테고리의 다른 글

Branch / Merge / Tag  (0) 2017.08.02
Git guide- https://rogerdudler.github.io/git-guide/index.ko.html  (0) 2017.08.02
Git 설치 - git-scm.com  (0) 2017.08.02
Git 기초  (0) 2017.07.25
GIT - the stupid content tracker  (0) 2017.07.25
posted by 훈즈 플로거
2017.07.25 11:50 Programming/Git

Git ( ɡ ɪ t / ) -  컴퓨터 파일의 변경 내용을 추적 하고 여러 사람이 사용하는 파일에 대한 작업을 조율 하는 버전 관리 시스템 (VCS)입니다 .  주로 소프트웨어 개발에서 소스 코드 관리에 사용되지만 , 파일의 변경 내용을 추적하는 데 사용할 수 있습니다. 분산 개정 관리 시스템 으로서 속도, 데이터 무결성, 및 분산 된 비선형 워크 플로우에 대한 지원을 목표로합니다. 

Git은 리눅스 커널 개발을 위해 2005 년 리누스 토발즈 (Linus Torvalds) 에 의해 만들어졌으며 다른 커널 개발자들은 초기 개발에 기여했습니다.  2005 년 이래로 현재 유지 관리자는 Junio ​​Hamano 입니다.

대부분의 다른 분산 버전 제어 시스템과 마찬가지로 대부분의 클라이언트 - 서버 시스템 과 달리 모든 컴퓨터의 모든 Git 디렉토리 는 네트워크 액세스 나 중앙 서버와 관계없이 완전한 기록 및 전체 버전 추적 기능을 갖춘 본격적인 저장소 입니다. 

리눅스 커널과 마찬가지로 Git은 GNU General Public License 버전 2 의 조건에 따라 배포되는 자유 소프트웨어 입니다.  

출처 - 위기백과  https://en.wikipedia.org/wiki/Git



Creator - Linux 개발 커뮤니티(특히 Linux 창시자 Linus Torvalds)


장점


  • 빠른 속도

  • 단순한 구조

  • 비선형적인 개발(수천 개의 동시 다발적인 브랜치)

  • 완벽한 분산

  • Linux 커널 같은 대형 프로젝트에도 유요할 것(속도나 데이터 크기 면에서)

<< 버전 관리 시스템의 진화 >>

LVCS  ->  CVCS  ->  DVCS  로 발전되어 가고 있음


 LVCS(로컬 버전 관리 시스템  - RCS

CVCS(중앙 버전 관리 시스템) - CVS, Subversion, Perforce

DVCS(분산 버전 관리 시스템) - Git, Mecurial, Bazaar, Darcs


저작자 표시 비영리 변경 금지
신고

'Programming > Git' 카테고리의 다른 글

Branch / Merge / Tag  (0) 2017.08.02
Git guide- https://rogerdudler.github.io/git-guide/index.ko.html  (0) 2017.08.02
Git 설치 - git-scm.com  (0) 2017.08.02
Git 기초  (0) 2017.07.25
GIT - the stupid content tracker  (0) 2017.07.25
posted by 훈즈 플로거
2017.07.16 01:03 Programming/Spring

성능을 개선하고 순환하는 의존성을 해결하기 위해 필요한 로컬 세션 캐싱을 제외하고 기본적으로 캐시가 작동하지 않는다. Mabatis 캐싱을 활성화하기 위해서 SQL 매핑 파일에 한줄을 추가하면 된다.

<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>

이 설정은 60 초마다 캐시를 지우는 FIFO 캐시를 생성한다. 이 캐시는 결과 객체 또는 결과 리스트를 512개까지 저장하고 각 객체는 읽기 전용이다. 캐시 데이터를 변경하는 것은 개별 쓰레드에서 호출자간의 충돌을 야기할 수 있다.

  • 매핑 구문 파일내 select 구문의 모든 결과가 캐시 될 것이다.

  • 매핑 구문 파일내 insert, update 그리고 delete 구문은 캐시를 지울(flush) 것이다.

  • 캐시는 Least Recently Used (LRU) 알고리즘을 사용할 것이다.

  • 캐시는 스케줄링 기반으로 시간순서대로 지워지지는 않는다. (예를들면. no Flush Interval)

  • 캐시는 리스트나 객체에 대해 1024 개의 참조를 저장할 것이다. (쿼리 메소드가 실행될때마다)

  • 캐시는 읽기/쓰기 캐시처럼 처리될 것이다. 이것은 가져올 객체는 공유되지 않고 호출자에 의해 안전하게 변경된다는 것을 의미한다.

사용가능한 캐시 전략은 4가지


  • LRU – Least Recently Used: 가장 오랜시간 사용하지 않는 객체를 제거

  • FIFO – First In First Out: 캐시에 들어온 순서대로 객체를 제거

  • SOFT – Soft Reference: 가비지 컬렉터의 상태와 강하지 않은 참조(Soft References )의 규칙에 기초하여 객체를 제거

  • WEAK – Weak Reference: 가비지 컬렉터의 상태와 약한 참조(Weak References)의 규칙에 기초하여 점진적으로 객체 제거

  • 디폴트 값은 LRU 이다.

flushInterval 은 양수로 셋팅할 수 있고 밀리세컨드로 명시되어야 한다. 디폴트는 셋팅되지 않으나 플러시(flush) 주기를 사용하지 않으면 캐시는 오직 구문이 호출될때마다 캐시를 지운다.

size는 양수로 셋팅할 수 있고 캐시에 객체의 크기를 유지하지만 메모리 자원이 충분해야 한다. 디폴트 값은 1024 이다.

readOnly 속성은 true 또는 false 로 설정 할 수 있다. 읽기 전용 캐시는 모든 호출자에게 캐시된 객체의 같은 인스턴스를 리턴 할 것이다. 게다가 그 객체는 변경할 수 없다. 이건 종종 성능에 잇점을 준다. 읽고 쓰는 캐시는 캐시된 객체의 복사본을 리턴 할 것이다. 이건 조금 더 늦긴 하지만 안전하다. 디폴트는 false 이다.


cache 적용시 디폴트 와 non-cache

  • select

flushCache 이 값을 true 로 셋팅하면 구문이 호출될때마다 로컬, 2nd 레벨 캐시가 지워질것이다(flush). 디폴트는 false이다.

 useCache 이 값을 true 로 셋팅하면 구문의 결과가 2nd 레벨 캐시에 캐시 될 것이다. 디폴트는 true이다.

  • insert, update and delete

flushCache 이 값을 true 로 셋팅하면 구문이 호출될때마다 캐시가 지원질것이다(flush). 디폴트는 false 이다.

  • non-cache (cache 가 적용된 mapper 내의 특정 쿼리에 대한 )

select 구문에서는 useCache=false, insert, update and delete 에서는  flushCache = true 를 명시적으로 준다.


결론적으로 MyBatis cache 를 적용하기 위해서는

MyBatis 설정

  • cacheEnabled ( 설정에서 각 매퍼에 설정된 캐시를 전역적으로 사용할지 말지에 대한 여부 )  디폴트 true

각각의 Mapper

  • 각 매퍼별 <cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/> 설정 구문 추가

  • cache 대상 select 구문에는 별도의 기술이 필요없음

  • non-cache 대상 구문에만  select 구문에서는 useCache = false,

  • insert, update and delete 에서는  flushCache = true 를 명시적으로 준다.


저작자 표시 비영리 변경 금지
신고

'Programming > Spring' 카테고리의 다른 글

MyBatis Cache  (0) 2017.07.16
Spring Application Config  (0) 2017.05.10
Project Lombok  (0) 2016.04.01
posted by 훈즈 플로거
TAG cache, mybatis, Web
2017.05.10 16:30 Programming/Spring


Spring Application Config

<!-- Uncomment and add your base-package here: -->

<context:component-scan base-package="com.example" />

<!-- default-servlet-handler -->

<mvc:default-servlet-handler />

 

<!-- message-converter : utf-8 for post method -->

<mvc:annotation-driven>
  <mvc:message-converters>
   <bean class="org.springframework.http.converter.StringHttpMessageConverter">
    <property name="supportedMediaTypes">
     <list>
      <value>application/json;charset=utf-8</value>
     </list>
    </property>
   </bean>
   <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
  </mvc:message-converters>
  
  <mvc:path-matching registered-suffixes-only="true"/>
 </mvc:annotation-driven>

 

<!-- annotation-config -->

<context:annotation-config />


 <!-- DataSource -->

<util:properties id="prop" location="classpath:properties/database.xml" />

<bean id="dataSourceSpied" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="#{prop['jdbc.driverClassName']}" />

<property name="url" value="#{prop['jdbc.url']}" />

<property name="username" value="#{prop['jdbc.username']}" />

<property name="password" value="#{prop['jdbc.password']}" />

<property name="defaultAutoCommit" value="#{prop['jdbc.defaultautocommit']}" />

<property name="maxActive" value="#{prop['jdbc.maxActive']}" />

<property name="minIdle" value="#{prop['jdbc.minIdle']}" />

<property name="maxIdle" value="#{prop['jdbc.maxIdle']}" />

<property name="maxWait" value="#{prop['jdbc.maxWait']}" />

<property name="testOnBorrow" value="#{prop['jdbc.testOnBorrow']}" />

<property name="testWhileIdle" value="#{prop['jdbc.testWhileIdle']}" />

<property name="timeBetweenEvictionRunsMillis" value="#{prop['jdbc.timeBetweenEvictionRunsMillis']}" />

<property name="validationQuery" value="#{prop['jdbc.validationQuery']}" />

<property name="poolPreparedStatements" value="#{prop['jdbc.poolPreparedStatements']}" />

</bean>


<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">

<constructor-arg ref="dataSourceSpied" />

<property name="logFormatter">

<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">

<property name="loggingType" value="SINGLE_LINE" />

<property name="sqlPrefix" value="SQL         :  " />

</bean>

</property>

</bean>


<!-- Mybatis -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource" />

<property name="transactionFactory">

<bean class="org.apache.ibatis.transaction.managed.ManagedTransactionFactory" />

</property>

<property name="configLocation" value="classpath:mybatis/sqlMapConfig.xml" />

</bean>

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">

<constructor-arg index="0" ref="sqlSessionFactory" />

</bean>


<!-- Transaction -->

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource" />

</bean>


<!-- Auto Scan -->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="com.example" />

</bean>


저작자 표시 비영리 변경 금지
신고

'Programming > Spring' 카테고리의 다른 글

MyBatis Cache  (0) 2017.07.16
Spring Application Config  (0) 2017.05.10
Project Lombok  (0) 2016.04.01
posted by 훈즈 플로거
2016.04.01 11:16 Programming/Spring


https://projectlombok.org/


http://jnb.ociweb.com/jnb/jnbJan2010.html



Installation


java -jar lombok.jar

Screenshot of the Lombok Installer




Maven

Adding lombok to your pom file

<dependencies>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.16.18</version>
		<scope>provided</scope>
	</dependency>
</dependencies>
<!-- 아래 정보도 필요할 수 있음 -->
<repositories>
    <repository>
        <id>projectlombok.org</id>
        <url>http://projectlombok.org/mavenrepo</url>
    </repository>
</repositories>


Maven > Update Project..



Lombok features.

val

Finally! Hassle-free final local variables.

@NonNull

or: How I learned to stop worrying and love the NullPointerException.

@Cleanup

Automatic resource management: Call your close() methods safely with no hassle.

@Getter/@Setter

Never write public int getFoo() {return foo;} again.

@ToString

No need to start a debugger to see your fields: Just let lombok generate a toString for you!

@EqualsAndHashCode

Equality made easy: Generates hashCode and equals implementations from the fields of your object..

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor

Constructors made to order: Generates constructors that take no arguments, one argument per final / non-nullfield, or one argument for every field.

@Data

All together now: A shortcut for @ToString@EqualsAndHashCode@Getter on all fields, and @Setter on all non-final fields, and @RequiredArgsConstructor!

@Value

Immutable classes made very easy.

@Builder

... and Bob's your uncle: No-hassle fancy-pants APIs for object creation!

@SneakyThrows

To boldly throw checked exceptions where no one has thrown them before!

@Synchronized

synchronized done right: Don't expose your locks.

@Getter(lazy=true)

Laziness is a virtue!

@Log

Captain's Log, stardate 24435.7: "What was that line again?"



저작자 표시 비영리 변경 금지
신고

'Programming > Spring' 카테고리의 다른 글

MyBatis Cache  (0) 2017.07.16
Spring Application Config  (0) 2017.05.10
Project Lombok  (0) 2016.04.01
posted by 훈즈 플로거
2013.05.03 11:33 Programming/Mysql


MySql 에서 현재시각을 위한 함수 sysdate() 와 now()


두 함수 모두 현재시각을 반환하지만, 몇가지 차이가 있음.


하나의 SQL 문에서 여러번 now()가 사용된 경우, now() 는 동일한 결과를 반환, 

sysdate()는 동일 SQL 문 내에서도 호출되는 시점에 따라 결과값이 달라짐.


example> select now(), sysdate(), sleep(5), now(), sysdate();


result>

 now()  sysdate()  sleep(5)  now()  sysdate()
 2013-05-03 오전 11:18:31  2013-05-03 오전 11:18:31

5

 2013-05-03 오전 11:18:31  2013-05-03 오전 11:18:36


sleep(5)를 통해 중간에 5초동안 대기 시킴.


위 결과에서 보듯이, 첫번째 now() 두번째 now() 는 동일한 시간을 보여주지만,

첫번째 sysdate()와 두번째 sysdate()는 sleep(5) 시간만큼의 차이를 보여줌.


[sysdate() 사용시 발생할 수 있는 문제점]

1. 다중 Database  Master/Slave  형태의  Database 구성시 Master 와 Slave간의 시간이 다르게 되는 상황이 발생할 수 있음.

2. sysdate() 컬럼 비교시  index가 효율적으로 사용되지 못하고 Full Table Scan 이 실행된다.


[solution]

sysdate() 대신 now()를 사용하거나, mysql 설정에서  -sysdate-is-now 옵션을 설정하여 sysdate()와 now() 함수를 동일하게 적용할 수 있다.


참조 http://blog.hibrainapps.net/122



저작자 표시 비영리 변경 금지
신고

'Programming > Mysql' 카테고리의 다른 글

MySql 에서의 현재시각 sysdate vs now  (0) 2013.05.03
posted by 훈즈 플로거
prev 1 2 3 next

티스토리 툴바