ππ₯π₯ λΌμΌλ¦¬μ μ½λ λΆμ€λ¬κΈ° ππ₯π₯
riley published on included in Etc nginx CORS νμ±ν νκΈ° nginxμμ CORS(Cross-Origin Resource Sharing) μ€μ μ νμ±ννλ€. nginx μ€μ νμΌ 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 32 # # Wide-open CORS config for nginx # location / { if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # # Custom headers and headers various browsers *should* be OK with but aren't # add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; # # Tell client that this pre-flight info is valid for 20 days # add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; } if ($request_method = 'GET') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; } }
riley published on included in Java μλ° κΈ°λ³Έ μμ§ μκ² μ 리νκΈ°! π€
νλ‘μΈμ€μ μ€λ λ νλ‘μΈμ€(process) : μ΄μ체μ μμ μ€ν μ€μΈ νλμ μ ν리μΌμ΄μ
μ μλ―Έ λ©ν° νμ€νΉ(multi tasking) μ΄μ 체μ μμ λ κ°μ§ μ΄μμ λ€μ€ μμ
(νλ‘μΈμ€)λ₯Ό λμμ μ²λ¦¬νλ κ²μ μλ―Έ. μ΄μ 체μ μμλ λ©ν° νμ€νΉμ ν μ μλλ‘ CPU λ° λ©λͺ¨λ¦¬ μμμ μ μ ν ν λΉνκ³ λ³λ ¬λ‘ μ€νμν¨λ€. ν λΉλ°μ λ©λͺ¨λ¦¬λ₯Ό κ°μ§κ³ μ€ννκΈ° λλ¬Έμ λ
립μ μ΄λ€. λ©μΈ μ€λ λ μλ° μ ν리μΌμ΄μ
μ λ©μΈ μ€λ λ(main thread)κ° main() λ©μλλ₯Ό μ€ν νλ©΄μ μμ. λ©μΈ μ€λ λλ νμμ λ°λΌ μμ
μ€λ λλ₯Ό λ§λ€μ΄ λ³λ ¬λ‘ μ€ν κ°λ₯νλ€.
μ΄μ ν΄λΉ μ 보λ₯Ό μ
λ ₯νκ³ μ°κ²°μ 보λ₯Ό ν΄λ¦μ μλμ κ°μ μλ¬κ° λ°μνμλ€. Database "/Users/riley/test" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146
λ¬Έμ ν΄κ²° λ¨κ³ μλ λ§ν¬λ₯Ό ν΅νμ¬ test λΌλ μ΄λ¦μ μλ‘μ΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ±ν΄μ€μΌλ‘μ¨ ν΄κ²°νμλ€.
http://www.h2database.com/html/tutorial.html#creating_new_databases 1 2 # μ€μΉκ²½λ‘λ‘ μ΄λ cd /Users/riley/Utils/h2/bin μ΄λνλ©΄ h2-λ²μ λͺ
jar νμΌμ΄ μλ€. h2 μμ μλμ κ°μ΄ μ€νν΄μ€λ€.
1 java -cp h2-1.4.199.jar org.h2.tools.Shell URL μ jdbc:h2:~/test λ‘ μ§μ νμλ€. jdbc:h2:~/test λ‘ μ μ URL μ μ€μ νμμ§λ§ μ΄ν리μΌμ΄μ
μμ μ μμ URL μ jdbc:h2:tcp://localhost/~/test λ‘ μ μν΄μΌνλ€.
riley published on included in AWS λͺ©ν πππ
AWSμμ Cent OS 7λ‘ ν
μ€νΈ μλ²λ₯Ό ꡬμΆνλ€. μ½μμ μκ²½λ‘ AWS EC2 μΈμ€ν΄μ€ μΆκ°νκΈ° 1. μ½μ λμ보λμμ μΈμ€ν΄μ€ μμμ μ ννλ€. 2. Amazon Machine Image(AMI)μμ μΈμ€ν΄μ€ ν
νλ¦Ώμ μ ννλ€. κ²μ μ°½μ centosλ₯Ό κ²μ ν μνλ λ²μ μ μ ννλ€. 3. μΈμ€ν΄μ€ μ ν μ ν νμ΄μ§μμ νλμ¨μ΄ ꡬμ±μ μ ννλ€. μΌλ¨ λ ν리ν°μ΄λκΉ… t2.microλ₯Ό μ ν π€ 4. π€·π»ββοΈ κ²ν ν μμ(Review and Launch) λ²νΌμ ν΄λ¦νμ¬ κ΅¬μ±μ μλ£νλ€. 5. 보μ κ·Έλ£Ή κ΅¬μ± 6. μΈμ€ν΄μ€ μμ κ²ν νμ΄μ§μμ μμμ μ ννλ€.
μμνμΈμ! λ컀/μΏ λ²λ€ν°μ€ μ±
μ 리 π³π³π³
λ컀(docker)λ 리λ
μ€ μ»¨ν
μ΄λμ μ¬λ¬ κΈ°λ₯μ μΆκ°ν¨μΌλ‘μ¨ μ ν리μΌμ΄μ
μ 컨ν
μ΄λλ‘μ μ’ λ μ½κ² μ¬μ©ν μ μκ² λ§λ€μ΄μ§ μ€νμμ€ νλ‘μ νΈμ΄λ€. GO μΈμ΄λ‘ μμ±λμ΄ μμΌλ©° 2013λ
3μμ 첫 λ²μ§Έ 릴리μ€κ° λ°νλ μ΄ν μ§κΈκΉμ§ κΎΈμ€ν κ°λ°λκ³ μλ€.
λ컀μ κ΄λ ¨λ νλ‘μ νΈ
Docker Compose Private Registry Docker Machine Kitematic λ컀λΌκ³ νλ©΄ Docker Engine νΉμ λ컀μ κ΄λ ¨λ λͺ¨λ νλ‘μ νΈλ₯Ό μλ―Ένλ€. λ컀 μνκ³μ μλ μ¬λ¬ νλ‘μ νΈλ€μ λ컀 μμ§μ μ’ λ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν κ²μ λΆκ³Όνλ©° ν΅μ¬μ΄ λλ κ²μ λ컀 μμ§μ΄λ€.
μλ° ORM νμ€ JPA νλ‘κ·Έλλ° νμ΅ λ΄μ© μ 리ν ν¬μ€ν
μ
λλ€.
μΌλλ€ μΌλλ€ κ΄κ³λ μν°ν°λ₯Ό νλ μ΄μ μ°Έμ‘°ν μ μμΌλ―λ‘ μλ° μ»¬λ μ
(Collection, List, Set, Map ) μ€ νλλ₯Ό μ¬μ©νλ€.
μΌλλ€ λ¨λ°©ν₯ [1:N] μΌλλ€ λ¨λ°©ν₯ κ΄κ³λ JPA 2.0 λΆν° μ§μνλ€. μΌλλ€ λ¨λ°©ν₯μ κ²½μ° λ°λνΈμμ ν
μ΄λΈμ μΈλν€λ₯Ό κ΄λ¦¬νλ νΉμ΄ν λͺ¨μ΅μ΄ λνλλ€. Team.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Entity public class Team { @Id @GeneratedValue @Column(name = "TEAM_ID") private String id; private String name; @OneToMany @JoinColumn (name = "TEAM_ID") // MEMBER ν
μ΄λΈμ TEAM_ID (FK) private List<Member> members = new ArrayList<Member>(); } Member.